I don’t have the Framework Laptop 13", AMD AI 300 Series, so take this with a grain of salt. I actually saw improvement with upstream stable 6.14.3 kernel compared to upstream stable 6.14.2.
Testing info below, but generally, performance seemed to improve with successive kernel versions (yay, stabilizing!). 6.15.2 with May firmware performed the best, so hopefully this improvement translates to the Framework platforms as well
My testing scenario includes the following:
- mt7925 radio in an Intel-based CPU system
- mt7996-based WiFi 7 AP (no MLO)
- AP configured to 40MHz at channel 36 (surprisingly unused where I’m at)
- Station configured to WPA2, no PMF (802.11w)
- Kernels built from tagged versions in the Linux stable tree
- Single-direction, 1Gbps-configured
iperf3
UDP traffic with 10 parallel streams (iperf3 --bind-dev wlan0 -b 1G -P 10 -u
, add-R
to do opposite direction)
I tested each of the following kernels with mt7925 firmware from March, April, and May (available in the Linux firmware repo on kernel.org). I skipped over a few 6.14 kernels, as there really aren’t many ‘mt76’ or ‘mt7925’ driver fixes/updates until 6.14.8 and 6.14.9 and none after.
- 6.14.2
- 6.14.3 (includes successive connection failing fix)
- 6.14.9 (includes IPv6 and multicast traffic drop fix)
- 6.15.2
For folks looking to reproduce or especially detailed info:
- Query driver and firmware information with
ethtool -i wlan0
command (use-S
instead for interface statistics) - Link rate and related information (MCS, NSS) can be queried using the
iw wlan0 link
command. Note that you’ll need to get a recent version to display EHT (WiFi 7) information. I like running it in a loop likewatch -n .1 "iw wlan0 link"
wpa_supplicant
config below (wpa_supplicant -c wlan0.conf -i wlan0
)- Using a secondary sniffer radio, saw that 6.14.2 would not do upload traffic with block ACKs (frame aggregation) with all firmware versions. 6.14.3 did, though, which seemingly explains the substantial increase in upload throughput.
# Only used if you're also using 'wpa_cli'
ctrl_interface=/var/run/wpa_supplicant
network={
# Need to use 'wpa_passphrase' to generate WPA2 'psk'
# e.g. 'wpa_passphrase ssid password'
ssid="ssid"
psk=XXXXXXX
# Can force to specific band using BSSID
#bssid=xx:xx:xx:xx:xx:xx
pairwise=CCMP
key_mgmt=WPA-PSK
ieee80211w=0
}