On Tue, 22 Apr 2025, Li-Wen Hsu wrote:
First, sorry if the experiment is not accurate or even doesn't make
sense. Performance test is hard, anyway.
I found that it seems the iwlwifi(4) performance has a noticeable
difference when acting as iperf receiver or sender.
I believe I have reported assymetric numbers before.
Questions:
- which FreeBSD version and kernel are you running?
- what's your AP thinking about your rates?
- and what does sysctl compat.linuxkpi.80211.wlan0 think
while running iperf? (*)
- are you using TCP or UDP for testing?
- if you are doing TCP did you clear your hostcache first or keep an
eye on TCP stats?
- how clean is your radio environment?
- are you simply running the same tests from one place adding -R
(assuming iperf3 and not iperf) or do you actually swap client
and server?
(*) I am asking as my pesky AP at VHT160 (which is not yet in the tree)
goes back to nss=1; while this should translate to the same rate as
VHT80 with nss=2 in practise it does not seem to (below with TCP and a
DEBUG kernel):
rxrate: flags 6<VHT_MCS,SGI> bw 5(160) legacy 0 kbit/s mcs 9 nss 1
he_dcm 0 he_gi 0 he_ru_alloc 0 eht_gi 0
txrate: flags 6<VHT_MCS,SGI> bw 5(160) legacy 0 kbit/s mcs 9 nss 2
he_dcm 0 he_gi 0 he_ru_alloc 0 eht_gi 0
AP says in this case:
1733.3 Mbit/s, 160 MHz, VHT-MCS 9, VHT-NSS 2, Short GI
866.7 Mbit/s, 160 MHz, VHT-MCS 9, VHT-NSS 1, Short GI
I can do TX:
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.01 sec 498 MBytes 417 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 498 MBytes 417 Mbits/sec receiver
and RX:
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.02 sec 434 MBytes 363 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 432 MBytes 362 Mbits/sec receiver
Doing UDP TX see here:
https://lists.freebsd.org/archives/freebsd-wireless/2025-April/003150.html
So you notice that my TX is better than my RX in this case.
That said we still have a lot of air to go faster, but first let's get
stable where we are. Removing the taskqs, doing RSS, TSO offload, checksum
offload handling in LinuxKPI, yadda yadda, is all different stories.
Going from 5 to 50 to 500 Mbit/s likely an improvement in the last
few months ;-)
My setup is straightforward: laptop - AP - router.
Laptop: AX210 with iwlwifi(4)
Router: Intel I226-V with igc(4)
When iwlwifi(4) being the receiver:
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 614 MBytes 515 Mbits/sec 94 sender
[ 5] 0.00-10.01 sec 614 MBytes 514 Mbits/sec receiver
When iwlwifi(4) being the sender:
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.02 sec 166 MBytes 139 Mbits/sec 464 sender
[ 5] 0.00-10.02 sec 166 MBytes 139 Mbits/sec receiver
--
Bjoern A. Zeeb r15:7