Hi Jonathan,
> On Jun 23, 2020, at 17:21, Jonathan Morton <[email protected]> wrote:
>
>> On 23 Jun, 2020, at 5:41 pm, Toke Høiland-Jørgensen <[email protected]> wrote:
>>
>> Right, well if you're not running out of CPU I guess it could be a
>> timing issue. The CAKE shaper relies on accurate timestamps and the
>> qdisc watchdog timer to schedule the transmission of packets. A loaded
>> system can simply miss deadlines, which would be consistent with the
>> behaviour you're seeing.
>>
>> In fact, when looking into this a bit more, I came across this commit
>> that seemed to observe the same behaviour in sch_fq:
>> https://git.kernel.org/torvalds/c/fefa569a9d4b
>>
>> So I guess we could try to do something similar in CAKE.
>
> Actually, we already do. The first version of Cake's shaper was based
> closely on the one in sch_fq at the time, and I modified it after noticing
> that it had a very limited maximum throughput when timer resolution was poor
> (eg. at 1kHz on an old PC without HPET hardware, we could only get 1k pps).
> Now, any late timer event will result in a burst being issued to catch up
> with the proper schedule. The only time that wouldn't work is if the queue
> is empty.
This nicely and effortlessly explains why cake unlike HTB+fq_codel
maintains the set bandwidth better under CPU load (but then these burst also
increase latency under load a bit more; then again again, we had to make the
burst buffering for HTB configurable so it would not be as bad in dropping
bandwidth on the floor). But I assume that you bound the bursts somehow, do you
remember your bust sizing method by chance? (For HTB/TBF sqm now simply allows
the user to configure a maximum burst service time im microseconds, that at
least allows to make a conscious trade-off).
>
> If the patches currently being trialled are not sufficient, then perhaps we
> could try something counter-intuitive: switch on "flows" instead of
> "flowblind", and enable the ack-filter. That should result in fewer small
> packets to process, as the ack-filter will coalesce some acks, especially
> under load. It might also help to select "satellite" AQM parameters,
> reducing the amount of processing needed at that layer.
>
> - Jonathan Morton
>
> _______________________________________________
> Cake mailing list
> [email protected]
> https://lists.bufferbloat.net/listinfo/cake
_______________________________________________
Cake mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/cake