Řešení 1:
Zkuste prosím zavést jádro s pcie_aspm=off
parametr jádra.
Řešení 2:
Z readme ovladače Intel:downloadmirror.intel.com/9180/eng/README.txt
82573 (V/L/E) TX jednotky zavěšení zpráv
Několik adaptérů s čipovou sadou 82573 zobrazuje zprávy „TX unit hang“ během normálního provozu s ovladačem e1000. Problém se objevuje při aktivovaném i deaktivovaném TSO a je způsoben funkcí správy napájení, která je povolena v EEPROM. Dřívější vydání čipových sad pro dodavatele měly bit EEPROM, který tuto funkci umožňoval. Poté, co byl problém objeven, byly vydány novější adaptéry s deaktivovanou funkcí v EEPROM.
Pokud narazíte na problém v adaptéru a čipová sada je založená na 82573, můžete ověřit, že váš adaptér potřebuje opravu pomocí nástroje ethtool:
# ethtool -e eth0
Offset Values
------ ------
0x0000 00 12 34 56 fe dc 30 0d 46 f7 f4 00 ff ff ff ff
0x0010 ff ff ff ff 6b 02 8c 10 d9 15 8c 10 86 80 de 83
^^
Hodnota na offsetu 0x001e (de) má bit 0 nenastavený. To umožňuje problematickou funkci úspory energie. V tomto případě musí EEPROM číst "df" na offset0x001e.
Jednorázová oprava EEPROM je k dispozici jako skript shellu. Tento skript ověří, zda je adaptér použitelný pro opravu a zda je oprava potřebná nebo ne. Pokud je oprava vyžadována, aplikuje změnu na EEPROM a aktualizuje kontrolní součet. Pokud byly v EEPROM provedeny změny, musí uživatel po použití opravy restartovat systém.
Příklad výstupu skriptu:
# bash fixeep-82573-dspd.sh eth0
eth0: is a "82573E Gigabit Ethernet Controller"
This fixup is applicable to your hardware
executing command: ethtool -E eth0 magic 0x109a8086 offset 0x1e value 0xdf
Change made. You *MUST* reboot your machine before changes take effect!
Skript lze stáhnout na adrese http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh
Řešení 3:
Jako hrobník bych rád vykopal toto staré vlákno, abych se podělil o své řešení pro Ubuntu. Stáhněte si nejnovější síťový ovladač Intel (3.4.0.2 v době psaní tohoto článku). Dekomprimujte jej, přidejte věc na řádek v Makefile, získejte opravu, použijte opravu, nainstalujte, načtěte modul a nakonec restartujte. Hodně štěstí.
wget https://downloadcenter.intel.com/download/15817/Intel-Network-Adapter-Driver-for-PCIe-Intel-Gigabit-Ethernet-Network-Connections-Under-Linux-?product=60019
tar -zxvf e1000e-3.4.0.2.tar.gz
vi e1000e-3.4.0.2/src/Makefile
## Locate line 152: EXTRA_CFLAGS += $(CFLAGS_EXTRA)
## Append -fno-pie
## Download the patch from https://sourceforge.net/p/e1000/bugs/_discuss/thread/9048ab8e
## wget/curl won't work here. THANKS SOURCE FORGE.
patch -p0 < e1000e-3.4.0.2-timer-updates.patch
cd e1000e-3.4.0.2/src/
sudo make install
sudo rmmod e1000e && sudo modprobe e1000e
sudo reboot
Tento balík byl dokončen na Ubuntu 18.04, jádro 4.15.
Řešení 4:
Měl jsem stejný problém s e1000e na Ubuntu 18.04.1, 4.15.0-36 kernel a nic nepomohlo. Aktualizoval jsem ovladač přímo z intel na 3.4.2.1-NAPI, bez jakýchkoli vylepšení. Všechny věci uvedené v tomto a jiném vlákně nepomohly. Z přečtení této zprávy o chybě Ubuntu jsem odhadl, že jsem vymyslel řešení, jak výrazně snížit velikost ringbufferu:
sudo ethtool -G eth0 rx 256 tx 256
Tím je problém pro mě zcela vyřešen a zdá se, že to vůbec neovlivňuje výkon (používání na počítači, pouze základní srovnávací testy).