[Cake] Possible BUG - parent backlog incorrectly updated in case of NET_XMIT_CN

Eric Dumazet eric.dumazet at gmail.com
Sun Jun 12 12:31:25 EDT 2016

On Sat, 2016-06-11 at 19:41 +0300, Jonathan Morton wrote:
> > On 11 Jun, 2016, at 12:11, Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk> wrote:
> > 
> > And now there's a version 2 of Eric's fix: http://marc.info/?l=linux-netdev&m=146507012302643&w=2
> > 
> > Does this change apply to cake?
> I suppose this answers the question of which packet’s size should be
> used in the correction factor.  Of course, by this time in the enqueue
> process, the original packet length has been replaced by the
> overhead-corrected one in Cake, though I can save a copy for this
> purpose.
> And there’s also the problem that we might not need to drop packets as
> large as the incoming packet in order to fit the latter into the queue
> - so this corrected correction may be *negative* (the queue is longer
> than before) - but qdisc_tree_reduce_backlog() only takes an unsigned
> parameter here.

That's a very minor detail.

If the code does :

reduce_backlog(unsigned quantity)
	q->backlog -= quantity;

Then the fact that @quantity is signed or unsigned is irrelevant.

You can submit a patch if you want ;)

> IMHO the NET_XMIT_CN semantics are broken.  It might be better to drop
> support for it, since it should rarely be triggered.

What exact part is broken ?
Semantic looks good to me.

Implementations might be broken after recent Cong Wang patches.

More information about the Cake mailing list