[Codel] The next slice of cake

Jonathan Morton chromatix99 at gmail.com
Wed Mar 18 04:41:41 EDT 2015


> I wonder, are the low priority classes configured with a guaranteed minimum bandwidth to avoid starvation? And will they opportunistically grab all left over bandwidth to fill the pipe? Then speed test should just work as long as there is no competing traffic…

The problem is that, in the present version, *only* the bulk/background class can use the full pipe.  Best effort gets a large fraction as its limit, but it’s not full.  Existing speed tests use best-effort traffic, and that’s not likely to change soon.

The next version should change that.

> I am probably out of my mind, but couldn't it help if cake would allow a fixed cycle mode where it would process 50ms or so worth of packets pass them to the interface, and then sleep until the next 50ms block start. This should just be a fallback mode to not degrade badly under overload…

There is already such a mode to cope with limited-resolution timers and the existing overheads.  Without it, the Pentium-MMX is limited to a rather low rate (since it then has to wait for a timer interrupt for alternate packets).  At 50Mbps+, it’s not too far off what it can bridge without shaping (60Mbps+).  For some reason, the little CPE boxes still lose more performance than that to shaping.

Note that due to the very nature of shaping, the link is always either effectively idle (in which case an arriving packet is dispatched immediately, without waiting for a timer), or overloaded (in which case packets are delivered according to a schedule).  The question is whether the shaping rate also overloads the hardware.

In any case, bursting for fifty whole milliseconds at a time would absolutely *destroy* cake’s latency performance.  I’m not going to do that.  Accommodating timer performance is the only concession to bursting I’m willing to make.

> I think the highest priority band should only get its bandwidth quota, and have no silent priority demotion; but otherwise I think that idea that classes can pick up unused bandwidth sounds sane, especially for best effort and background.

Let’s see how well it works this way.  It should be fairly easy to adjust this aspect of behaviour later on.

 - Jonathan Morton




More information about the Codel mailing list