[Bloat] Excessive throttling with fq

Neal Cardwell ncardwell at google.com
Wed Feb 19 08:52:16 EST 2020


On Wed, Feb 19, 2020 at 1:58 AM Alexey Ivanov <savetherbtz at gmail.com> wrote:
>
> FWIW, we recently noticed a similar issue with our CUBIC senders after
> we've enabled FQ on them (4.15 kernel.)
>
> Disabling train detection in hystart did fix the problem:
>
> # echo 2 > /sys/module/tcp_cubic/parameters/hystart_detect
>
> [1]
> https://github.com/torvalds/linux/blob/master/net/ipv4/tcp_cubic.c#L76-L77

Yes, Hystart was not designed to work with pacing, so when fq is used
Hystart ACK train detection needs to be disabled.

Eric Dumazet made some recent fixes (Linux v5.6) to make Hystart
dynamically adapt to the presence of pacing to avoid this issue:

473900a504e5 tcp_cubic: optimize hystart_update()
35821fc2b41c tcp_cubic: remove one conditional from hystart_update()
cff04e2da308 tcp_cubic: switch bictcp_clock() to usec resolution
42f3a8aaae66 tcp_cubic: tweak Hystart detection for short RTT flows
ede656e84658 tcp_cubic: make Hystart aware of pacing
f278b99ca6b2 tcp_cubic: refactor code to perform a divide only when needed

neal



More information about the Bloat mailing list