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