December 31, 2020

wifi low upload speed


絶対忘れる自信があるのでメモっておく。

少し前から Wifi の調子が悪い。 具体的には upload スピードが異様に遅い。環境は以下の通り。

$ uname -r
5.9.16-200.fc33.x86_64
$ rpm -qa |grep iwl
iwl2000-firmware-18.168.6.1-116.fc33.noarch
iwl7260-firmware-25.30.13.0-116.fc33.noarch
$ lspci  |grep -i wireless
00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 11)
$ dmesg |grep -i Wireless
[  150.889351] Intel(R) Wireless WiFi driver for Linux
[  151.133692] iwlwifi 0000:00:14.3: Detected Intel(R) Wireless-AC 9560 160MHz, REV=0x318

どうやら 209913 – Low upload speed に引っかかっている模様。 TCP Segmentation Offload(TSO) をオフすると治るという報告が上がっているので試したら、テキメンに効いた。

$ sudo ethtool -K wlp0s20f3 tso off
$ sudo ethtool -k wlp0s20f3 |grep tcp
tcp-segmentation-offload: off
    tx-tcp-segmentation: off
    tx-tcp-ecn-segmentation: off [fixed]
    tx-tcp-mangleid-segmentation: off
    tx-tcp6-segmentation: off

NIC へのオフロードをやめて、kernel 側で処理したほうがマシということは、オフロードする際に余計なもの付けているか、何か必要な情報を握り潰しているとかそんな塩梅なのかなと思っている。 このコミット Linux kernel stable tree / net: tso: add UDP segmentation support 外すと治るとのコメントもあるので前者説が濃厚?いま時点では Close してないので引き続き見守ることにする。

ともかく毎回ブートするたびに ethtool 叩くの面倒くさいし忘れるので、udev に以下のようなルールを作成し自動的にアクティベートするようにした。

$ cat /etc/udev/rules.d/90-tso-off.rules 
ACTION=="add", SUBSYSTEM=="net", NAME=="wlp*", RUN+="/usr/sbin/ethtool -K $name tso off"

事象が治ったらこれは御役御免なのでこのファイルは削除すること。(忘れそう)

© Kazuhisa Hara 2014-2022