[sisyphus] Что же делать с интеловской сетевухой?
Alexei V. Mezin
alexei.mezin на gmail.com
Чт Авг 19 21:16:33 MSK 2021
Или с systemd? Или с etcnet?
Дано: компьютер с интеловской сетевухой, обслуживается модулем e1000e,
система p9.
Под малейшей нагрузкой сетевуха "подвисает", выглядит вот так:
[635.855986] e1000e 0000:00:19.0 lan: Detected Hardware Unit Hang:
TDH <e6>
TDT <12>
next_to_use <12>
next_to_clean <e2>
buffer_info[next_to_clean]:
time_stamp <100051428>
next_to_watch <e6>
jiffies <100051ec0>
next_to_watch.status <0>
MAC Status <80283>
PHY Status <792d>
PHY 1000BASE-T Status <3800>
PHY Extended Status <3000>
PCI Status <10>
В интернетах пишут, что давно известный то ли баг, то ли фича
интеловских драйверов, и что даже в 5.10.ххх это очередной раз
исправили. Но нет, во всяком случае на всех std-un-def из p9 глючит.
Рекомендуют ethtool -K <IFNAME> gso off gro off tso off, и это
действительно помогает. Но вызывать команду ручками каждый раз после
перезагрузки неудобно.
Попытки использовать /etc/net/ifaces/lan/ethtool ни к чему не привели.
Почему-то не работает. Ок, решил попробовать так:
# cat /etc/systemd/network/70-lan.link
[Match]
MACAddress=00:15:17:d4:ae:4e
[Link]
TCPSegmentationOffload=false
GenericSegmentationOffload=false
GenericReceiveOffload=false
После перезагрузки получаю
# ethtool -k lan | egrep "tcp-seg|segmentation-offload"
tcp-segmentation-offload: on
tx-tcp-segmentation: on
generic-segmentation-offload: off
То есть gso выключилось, как и просили. А tso нет. Гугл говорит, что в
далеком 2017 году был некий баг на systemd
https://github.com/systemd/systemd/issues/6854
Ну прям один в один. Однако, баг какой-то мутный, почему-то в нем
ссылаются на другие параметры, а потом просто закрывают. Как понять, что
происходит? Баг закрыли, но не исправили? Исправили и снова сломали? Он
тут вообще не при чем, и что-то в системе мешает изменить параметры
сетевухи на этапе загрузки?
Подробная информация о списке рассылки Sisyphus