From: Patrick McHardy <[EMAIL PROTECTED]>
Date: Mon, 20 Nov 2006 14:08:41 +0100 (MET)

> [NET_SCHED]: Fix endless loops caused by inaccurate qlen counters (part 1)
> 
> There are multiple problems related to qlen adjustment that can lead
> to an upper qdisc getting out of sync with the real number of packets
> queued, leading to endless dequeueing attempts by the upper layer code.
> 
> All qdiscs must maintain an accurate q.qlen counter. There are basically
> two groups of operations affecting the qlen: operations that propagate
> down the tree (enqueue, dequeue, requeue, drop, reset) beginning at the
> root qdisc and operations only affecting a subtree or single qdisc
> (change, graft, delete class). Since qlen changes during operations from
> the second group don't propagate to ancestor qdiscs, their qlen values
> become desynchronized.
> 
> This patch adds a function to propagate qlen changes up the qdisc tree,
> optionally calling a callback function to perform qdisc-internal
> maintenance when the child qdisc becomes empty. The follow-up patches
> will convert all qdiscs to use this function where necessary.
> 
> Noticed by Timo Steinbach <[EMAIL PROTECTED]>.
> 
> Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]>

Applied to net-2.6.20, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to