You are not logged in.

#1 2019-06-25 22:05:16

Brocellous
Member
Registered: 2017-11-27
Posts: 146

[SOLVED] default_qdisc sysctl has no effect

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

#2 2019-07-04 05:16:13

dtaht
Member
Registered: 2019-07-04
Posts: 1

Re: [SOLVED] default_qdisc sysctl has no effect

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

#3 2019-07-04 16:50:37

Brocellous
Member
Registered: 2017-11-27
Posts: 146

Re: [SOLVED] default_qdisc sysctl has no effect

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

Board footer

Powered by FluxBB