Hi Jonathan,

On Mar 18, 2015, at 09:41 , Jonathan Morton <[email protected]> wrote:

>> 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.

        Great.

> 
>> 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.

        Excellent.

> 
> 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.

        Well, I should not have put a number in, I know, I was mainly trying to 
push for a batching mode to distribute the timer and context switching costs 
over more work done, like the batching patches Jesper got into the kernel. I 
guess I should look at the cake code and try to understand what is happening ;)
        I think with HTB latency starts to suffer once the shaped rates exceed 
the hardware’s capabilities, so I think of this as a trade-off between latency 
and bandwidth; if cake does not show this behavior but just bounds the 
effective bandwidth instead of increasing latency the whole configurable 
tradeoff idea might make not much sense ;)

> 
>> 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
> 

_______________________________________________
Codel mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/codel

Reply via email to