You are not logged in.
So I noticed today that I have qdisc noqueue on my wireless interface
$ tc qdisc
qdisc noqueue 0: dev lo root refcnt 2
qdisc noqueue 0: dev wlp2s0 root refcnt 2
which I thought was odd, because I remember fq_codel being the default and I didn't change it.
I checked my sysctl just in case, but I didn't modify anything there:
$ sysctl net.core.default_qdisc
net.core.default_qdisc = fq_codel
$ rg -Nv '^(#|$)' /etc/sysctl.d /usr/lib/sysctl.d
/usr/lib/sysctl.d/50-default.conf
kernel.sysrq = 16
kernel.core_uses_pid = 1
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.promote_secondaries = 1
net.core.default_qdisc = fq_codel
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
fs.protected_regular = 1
fs.protected_fifos = 1
/usr/lib/sysctl.d/10-arch.conf
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 524288
/usr/lib/sysctl.d/50-coredump.conf
kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e
I also don't see anything related or even error-like in my journal:
$ journalctl -b -g qdisc
-- Logs begin at Mon 2019-03-18 09:47:29 PDT, end at Tue 2019-06-25 14:27:40 PDT. --
-- No entries --
I tried applying the qdisc myself and it seems to work
$ sudo tc qdisc add dev wlp2s0 root fq_codel
$ tc qdisc show dev wlp2s0
qdisc fq_codel 8001: root refcnt 5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
Though iirc the default was some sort of multiqueue thing, and I don't think this is it.
Is fq_codel still the default on your guys' machines? Based on the above, I should have fq_codel right? Unfortunately I don't know when this started, I don't exactly check the qdisc a lot. I checked the systemd version release notes though and no mention.
I'm using systemd-networkd / iwd if it matters, but I tried booting with iwd disabled and wpa_supplicant@wlp2s0 enabled instead, no dice. Some additional info if it helps:
$ uname -a
Linux rxps 5.1.14-arch1-1-ARCH #1 SMP PREEMPT Sat Jun 22 16:28:48 UTC 2019 x86_64 GNU/Linux
$ sudo lspci -kvnn | sed -n '/Network/,/^$/ p'
02:00.0 Network controller [0280]: Intel Corporation Wireless 8265 / 8275 [8086:24fd] (rev 78)
Subsystem: Intel Corporation Dual Band Wireless-AC 8265 [8086:1010]
Flags: bus master, fast devsel, latency 0, IRQ 141
Memory at edc00000 (64-bit, non-prefetchable) [size=8K]
Capabilities: [c8] Power Management version 3
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [40] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number cc-2f-71-ff-ff-cd-ca-94
Capabilities: [14c] Latency Tolerance Reporting
Capabilities: [154] L1 PM Substates
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
Last edited by Brocellous (2019-07-04 16:53:00)
Offline
congrats. you are the first person in the real world to notice intel added support for fq_codel for wifi (written up here: https://lwn.net/Articles/705884/ ) in linux 5.1. this version kills the qdisc entirely (as you saw) and moves fq_codel
into to mac layer where it has even less buffering and better packing of aggregates. A downside of this is that
the fq_codel statistics move into "aqm" files in /sys/debug/kernel/
I'd love 5.0 vs 5.1 benchmarks.....
Offline
Fascinating. Thanks for the reply. The obscured statistics is an unfortunate side effect but I think we can accept it for performance. I'll mark this as solved.
Offline
I'll mark this as solved.
Because I had the same issue, found this thread and got not really educated what actually the solution was, I summarise here what I was told privately to have it explicitly clear, also for prospective others:
> The point is that it is not applied. The fq_codel algorithm is now applied in the wireless driver, and noqueue is the correct qdisc for the wireless interface.
Regards!
Offline