<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/sched/sch_api.c, branch linux-2.6.23.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.23.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.23.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2007-11-16T16:27:36Z</updated>
<entry>
<title>Fix advertised packet scheduler timer resolution</title>
<updated>2007-11-16T16:27:36Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-10-24T03:55:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e20e6446bdf5afd61b1139efca510a187b3d1c38'/>
<id>urn:sha1:e20e6446bdf5afd61b1139efca510a187b3d1c38</id>
<content type='text'>
patch 3c0cfc135829b98f7a4894938652f9ef78e24237 in mainline

The fourth parameter of /proc/net/psched is supposed to show the timer
resultion and is used by HTB userspace to calculate the necessary
burst rate. Currently we show the clock resolution, which results in a
too low burst rate when the two differ.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>[NET]: Fix sch_api to properly set sch-&gt;parent on the root.</title>
<updated>2007-07-31T09:28:19Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-07-31T00:11:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ffc8fefaf289fa485bc5c33e71572e6ce559d569'/>
<id>urn:sha1:ffc8fefaf289fa485bc5c33e71572e6ce559d569</id>
<content type='text'>
Fix sch_api to correctly set sch-&gt;parent for both ingress and egress
qdiscs in qdisc_create().

Signed-off-by: Patrick McHardy &lt;trash@kaber.net&gt;
Signed-off-by: Peter P Waskiewicz Jr &lt;peter.p.waskiewicz.jr@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET_SCHED]: act_api: qdisc internal reclassify support</title>
<updated>2007-07-15T07:02:31Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-07-15T07:02:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=73ca4918fbb98311421259d82ef4ab44feeace43'/>
<id>urn:sha1:73ca4918fbb98311421259d82ef4ab44feeace43</id>
<content type='text'>
The behaviour of NET_CLS_POLICE for TC_POLICE_RECLASSIFY was to return
it to the qdisc, which could handle it internally or ignore it. With
NET_CLS_ACT however, tc_classify starts over at the first classifier
and never returns it to the qdisc. This makes it impossible to support
qdisc-internal reclassification, which in turn makes it impossible to
remove the old NET_CLS_POLICE code without breaking compatibility since
we have two qdiscs (CBQ and ATM) that support this.

This patch adds a tc_classify_compat function that handles
reclassification the old way and changes CBQ and ATM to use it.

This again is of course not fully backwards compatible with the previous
NET_CLS_ACT behaviour. Unfortunately there is no way to fully maintain
compatibility *and* support qdisc internal reclassification with
NET_CLS_ACT, but this seems like the better choice over keeping the two
incompatible options around forever.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET_SCHED]: Revert "avoid transmit softirq on watchdog wakeup" optimization</title>
<updated>2007-07-15T03:49:26Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-07-15T03:49:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0621ed2e4edbe2f6f83dafbf85eecefae7aaf2e8'/>
<id>urn:sha1:0621ed2e4edbe2f6f83dafbf85eecefae7aaf2e8</id>
<content type='text'>
As noticed by Ranko Zivojnovic &lt;ranko@spidernet.net&gt;, calling qdisc_run
from the timer handler can result in deadlock:

&gt; CPU#0
&gt;
&gt; qdisc_watchdog() fires and gets dev-&gt;queue_lock
&gt; qdisc_run()...qdisc_restart()...
&gt; -&gt; releases dev-&gt;queue_lock and enters dev_hard_start_xmit()
&gt;
&gt; CPU#1
&gt;
&gt; tc del qdisc dev ...
&gt; qdisc_graft()...dev_graft_qdisc()...dev_deactivate()...
&gt; -&gt; grabs dev-&gt;queue_lock ...
&gt;
&gt; qdisc_reset()...{cbq,hfsc,htb,netem,tbf}_reset()...qdisc_watchdog_cancel()...
&gt; -&gt; hrtimer_cancel() - waiting for the qdisc_watchdog() to exit, while still
&gt;		        holding dev-&gt;queue_lock
&gt;
&gt; CPU#0
&gt;
&gt; dev_hard_start_xmit() returns ...
&gt; -&gt; wants to get dev-&gt;queue_lock(!)
&gt;
&gt; DEADLOCK!

The entire optimization is a bit questionable IMO, it moves potentially
large parts of NET_TX_SOFTIRQ work to TIMER_SOFTIRQ/HRTIMER_SOFTIRQ,
which kind of defeats the separation of them.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Acked-by: Ranko Zivojnovic &lt;ranko@spidernet.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET_SCHED]: Remove unnecessary includes</title>
<updated>2007-07-11T05:16:41Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-07-03T05:49:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ba48053831d5b89ee2afaefaae1c06eae80cb05'/>
<id>urn:sha1:0ba48053831d5b89ee2afaefaae1c06eae80cb05</id>
<content type='text'>
Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET_SCHED]: Remove CONFIG_NET_ESTIMATOR option</title>
<updated>2007-07-11T05:16:37Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-07-03T05:46:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=876d48aabf30e4981653f1a0a7ae1e262b8c8b6f'/>
<id>urn:sha1:876d48aabf30e4981653f1a0a7ae1e262b8c8b6f</id>
<content type='text'>
The generic estimator is always built in anways and all the config options
does is prevent including a minimal amount of code for setting it up.
Additionally the option is already automatically selected for most cases.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET]: Rework dev_base via list_head (v3)</title>
<updated>2007-05-03T22:13:45Z</updated>
<author>
<name>Pavel Emelianov</name>
</author>
<published>2007-05-03T22:13:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7562f876cd93800f2f8c89445f2a563590b24e09'/>
<id>urn:sha1:7562f876cd93800f2f8c89445f2a563590b24e09</id>
<content type='text'>
Cleanup of dev_base list use, with the aim to simplify making device
list per-namespace. In almost every occasion, use of dev_base variable
and dev-&gt;next pointer could be easily replaced by for_each_netdev
loop. A few most complicated places were converted to using
first_netdev()/next_netdev().

Signed-off-by: Pavel Emelianov &lt;xemul@openvz.org&gt;
Acked-by: Kirill Korotaev &lt;dev@openvz.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET_SCHED]: ingress: switch back to using ingress_lock</title>
<updated>2007-04-26T05:29:08Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-04-17T00:07:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd44de7cc1d430caef91ad9aecec9ff000fe86f8'/>
<id>urn:sha1:fd44de7cc1d430caef91ad9aecec9ff000fe86f8</id>
<content type='text'>
Switch ingress queueing back to use ingress_lock. qdisc_lock_tree now locks
both the ingress and egress qdiscs on the device. All changes to data that
might be used on both ingress and egress needs to be protected by using
qdisc_lock_tree instead of manually taking dev-&gt;queue_lock. Additionally
the qdisc stats_lock needs to be initialized to ingress_lock for ingress
qdiscs.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET_SCHED]: Eliminate qdisc_tree_lock</title>
<updated>2007-04-26T05:29:07Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-04-17T00:02:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0463d4ae25771aaf3379bb6b2392f6edf23c2828'/>
<id>urn:sha1:0463d4ae25771aaf3379bb6b2392f6edf23c2828</id>
<content type='text'>
Since we're now holding the rtnl during the entire dump operation, we
can remove qdisc_tree_lock, whose only purpose is to protect dump
callbacks from concurrent changes to the qdisc tree.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET_SCHED]: qdisc: remove unnecessary memory barriers</title>
<updated>2007-04-26T05:27:58Z</updated>
<author>
<name>Patrick McHardy</name>
</author>
<published>2007-03-23T18:30:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c95e939508e64863a1c5c73a9e1a908784e06820'/>
<id>urn:sha1:c95e939508e64863a1c5c73a9e1a908784e06820</id>
<content type='text'>
We're holding dev-&gt;queue_lock in qdisc_watchdog_schedule and
qdisc_watchdog_cancel, no need for the barriers.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
