[Bug 2003027] Re: fq_codel qdisc compiled but not enabled on 22.10
Dave Taht
2003027 at bugs.launchpad.net
Fri Aug 30 18:39:40 UTC 2024
BQL ended up in the virtio-net driver in a recent kernel release and showed
significant benefits with fq_codel on the test suite they used.
At one level I don´t mind this fix not making the default next release, in
that perhaps we could get some informed testing of before/after
particularly with things like wireguard, or udp based applications. It
would be really great to see it also come out for older releases.
I am not in a position to write a regression test though, if you were
asking me.
Thanks for all your efforts in getting this out there.
On Wed, Aug 28, 2024 at 7:56 AM Robie Basak <2003027 at bugs.launchpad.net>
wrote:
> Accepting for 24.04. It is unfortunate to have to change behaviour in
> this way, but this seems preferable than to switch to the reported-worse
> qdisc just for 24.04, and also preferable to do sooner rather than later
> in 24.04's lifetime, given that the .1 release is due this week.
>
> However, if this is important enough to make a change in a stable
> release, and given that it regressed accidentally in Ubuntu, then it's
> important enough to have a regression test for. Consider this a slap on
> the wrist for not having included a test already. Given the above it's
> not appropriate to block pending a test being added, but it should be
> considered part of the necessary work to fix this properly regardless.
> Please get that done to prevent this from regressing again in the
> future. I filed bug 2078101 to track this.
>
> I appreciate that it's tricky to write a test that might need a VM to
> pick up kernel defaults to fully validate this, but we could at least
> have an autopkgtest that ensures that /etc/sysctl.d/ contains the
> expected net.core.default_qdisc setting and not any duplicate settings.
> You could also include checks for anything else that is Ubuntu-specific
> in there.
>
> ** Changed in: procps (Ubuntu Noble)
> Status: In Progress => Fix Committed
>
> ** Tags added: verification-needed verification-needed-noble
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/2003027
>
> Title:
> fq_codel qdisc compiled but not enabled on 22.10
>
> Status in Ubuntu:
> Fix Released
> Status in procps package in Ubuntu:
> Fix Released
> Status in The Noble Numbat:
> Confirmed
> Status in procps source package in Noble:
> Fix Committed
> Status in The Oracular Oriole:
> Fix Released
> Status in procps source package in Oracular:
> Fix Released
>
> Bug description:
> [ Impact ]
> Starting with Ubuntu 22.10, the default qdisc regressed to pfifo_fast.
> This is due to a change we merged from Debian, removing systemd's
> /usr/lib/50-default.conf file. pfifo_fast does not prevent bufferbloat
> issues, severely degrading networking performance on Ubuntu systems.
>
> [ Test Plan ]
> On an Ubuntu VM, check that net.core.default_qdisc is set to 'fq_codel'.
> `tc qdisc show` should also confirm fq_codel is being used.
>
> halves at noble-vm:~$ sysctl net.core.default_qdisc
> net.core.default_qdisc = fq_codel
>
> halves at noble-vm:~$ tc qdisc show
> qdisc noqueue 0: dev lo root refcnt 2
> qdisc mq 0: dev enp5s0 root
> qdisc fq_codel 0: dev enp5s0 parent :1 limit 10240p flows 1024 quantum
> 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
>
> [ Where Problems Could Occur ]
> Users relying on the default pfifo_fast qdisc could see different
> networking behavior. Although fq_codel should be an across-the-board
> improvement over pfifo_fast, we could monitor network latency stats and
> throughput to make sure no weird regressions arise from the qdisc scheduler.
>
> [ Other Info ]
> Instead of adding a sysctl.conf file, Debian has decided to change their
> default kernel configs to use fq_codel. This has the disadvantage of being
> "hidden" from end users, instead of being a queryable setting in e.g.
> /etc/sysctl.d/, and all kernel documentation still refers to pfifo_fast as
> being the default.
>
> Systemd's /usr/lib/50-default.conf file includes a lot of other
> settings that are either overruled elsewhere (e.g. from procps) or are
> entirely missing from our stable releases. Introducing a diff from
> Debian to ship this file only for the net.core.default_qdisc changes
> seems excessive, so having a dedicated place under procps where other
> similar toggles are already present seems like the more appropriate
> solution.
>
> --
> [ Original Description ]
> fq_codel has been the default in ubuntu since #1436945
>
> It is also now the default in debian. Somewhere between 22.04 and
> 22.10 though, it stopped being enabled by systemd? (it used to be
> enabled there via a sysctl), and thus 22.10 (I tried both ubuntu
> server and ubuntu studio) doesn't have it on. I rather *immediately*
> noticed this huge regression (I run my ethernet at 100Mbit, and thus
> immediately saw 400+ms latency) - and I hope it can be fixed in the
> next release?
>
> it can also be made the default via compiling it into the kernel as a
> kernel default.
>
> Aggh! death to fifos!
>
> root at localhost:~# sysctl -a | grep qdisc
> net.core.default_qdisc = pfifo_fast
>
> disc pfifo_fast 0: dev eth0 parent :1 bands 3 priomap 1 2 2 2 1 2 0 0 1
> 1 1 1 1 1 1 1
> Sent 5250 bytes 53 pkt (dropped 0, overlimits 0 requeues 0)
> backlog 0b 0p requeues 0
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+bug/2003027/+subscriptions
>
>
--
Artists/Musician Campout Aug 9-11
https://www.eventbrite.com/e/healing-arts-event-tickets-928910826287
Dave Täht CSO, LibreQos
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to procps in Ubuntu.
https://bugs.launchpad.net/bugs/2003027
Title:
fq_codel qdisc compiled but not enabled on 22.10
Status in Ubuntu:
Fix Released
Status in procps package in Ubuntu:
Fix Released
Status in The Noble Numbat:
Confirmed
Status in procps source package in Noble:
Fix Committed
Status in The Oracular Oriole:
Fix Released
Status in procps source package in Oracular:
Fix Released
Bug description:
[ Impact ]
Starting with Ubuntu 22.10, the default qdisc regressed to pfifo_fast. This is due to a change we merged from Debian, removing systemd's /usr/lib/50-default.conf file. pfifo_fast does not prevent bufferbloat issues, severely degrading networking performance on Ubuntu systems.
[ Test Plan ]
On an Ubuntu VM, check that net.core.default_qdisc is set to 'fq_codel'. `tc qdisc show` should also confirm fq_codel is being used.
halves at noble-vm:~$ sysctl net.core.default_qdisc
net.core.default_qdisc = fq_codel
halves at noble-vm:~$ tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc mq 0: dev enp5s0 root
qdisc fq_codel 0: dev enp5s0 parent :1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
[ Where Problems Could Occur ]
Users relying on the default pfifo_fast qdisc could see different networking behavior. Although fq_codel should be an across-the-board improvement over pfifo_fast, we could monitor network latency stats and throughput to make sure no weird regressions arise from the qdisc scheduler.
[ Other Info ]
Instead of adding a sysctl.conf file, Debian has decided to change their default kernel configs to use fq_codel. This has the disadvantage of being "hidden" from end users, instead of being a queryable setting in e.g. /etc/sysctl.d/, and all kernel documentation still refers to pfifo_fast as being the default.
Systemd's /usr/lib/50-default.conf file includes a lot of other
settings that are either overruled elsewhere (e.g. from procps) or are
entirely missing from our stable releases. Introducing a diff from
Debian to ship this file only for the net.core.default_qdisc changes
seems excessive, so having a dedicated place under procps where other
similar toggles are already present seems like the more appropriate
solution.
--
[ Original Description ]
fq_codel has been the default in ubuntu since #1436945
It is also now the default in debian. Somewhere between 22.04 and
22.10 though, it stopped being enabled by systemd? (it used to be
enabled there via a sysctl), and thus 22.10 (I tried both ubuntu
server and ubuntu studio) doesn't have it on. I rather *immediately*
noticed this huge regression (I run my ethernet at 100Mbit, and thus
immediately saw 400+ms latency) - and I hope it can be fixed in the
next release?
it can also be made the default via compiling it into the kernel as a
kernel default.
Aggh! death to fifos!
root at localhost:~# sysctl -a | grep qdisc
net.core.default_qdisc = pfifo_fast
disc pfifo_fast 0: dev eth0 parent :1 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 5250 bytes 53 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+bug/2003027/+subscriptions
More information about the foundations-bugs
mailing list