e1000e :Detected Hardware Unit Hang:


ちょっと古めのラックサーバに ubuntu18.04 をインストールして動かしていたら
dmesg に「e1000e :Detected Hardware Unit Hang:」が大量に出るようになった。
トラフィックがない時にも出ている。

ネット上には tso off などの情報があるが解決しない。

https://downloadcenter.intel.com/ja/download/15817/Intel-Network-Adapter-Driver-for-PCIe-Intel-Gigabit-Ethernet-Network-Connections-Under-Linux-
から最新ドライバーをダウンロードしてビルドするためREADMEを読んでいたら以下を発見する。

既知の問題/トラブルシューティング
============================
82573(V / L / E)TXユニットハングメッセージ

82573チップセットを備えたいくつかのアダプターは、「TX unit hang」メッセージを表示します
e1000edriverでの通常の操作。 TSOが有効になっている場合に問題が発生する
および無効になっていますが、これは、
EEPROM。ベンダーへのチップセットの初期リリースには、EEPROMビットがありました。
機能を有効にしました。問題が発見された後、新しいアダプタは
EEPROMの機能を無効にしてリリースされました。

lspci で確認すると確かに 82573V と 82573L を使用している。
READMEの記述に従い

# ethtool -e enp15s0
Offset Values
------ ------
0x0000: 00 e0 81 b1 b7 f1 30 0b 47 f6 02 10 ff ff ff ff
0x0010: ff ff ff ff 6b 22 11 52 f1 10 9a 10 86 80 de ac

0x001e が de はだめで df になる必要がある。
スクリプトをダウンロードして実行する。

# wget http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh

# bash fixeep-82573-dspd.sh enp15s0
enp15s0: is a "82573L Gigabit Ethernet Controller"
This fixup is applicable to your hardware
executing command: ethtool -E enp15s0 magic 0x109a8086 offset 0x1e value 0xdf
Change made. You MUST reboot your machine before changes take effect!

# ethtool -E enp15s0 magic 0x109a8086 offset 0x1e value 0xdf

再起動したことろ、2度と「e1000e :Detected Hardware Unit Hang:」は出なくなった。

結局、ドライバーを更新せずにパッチだけの対応で完了した。

初期チップの不良とは、それをパッチで修正できるとは Intel やりますね。