X86 device, which network chip should be chosen for "headache-free" functioning?

Hi !
i installed openwrt on a HP 600 G1 Tiny device with the onboard intel I217-LM Nic and i was geting the well known (since years now) problem about the " e1000e ethx: Detected Hardware Unit Hang" when performing an nperf.com speed test. Looks like i don't have any problem when performing a speedtest.net test...
with nperf.com the connexion is lost when at 50/75% of the downloading test, no problem for uploading. my connexion is Fiber 1 000/500Mbps.

Over internet there are many workaround posted, main solutions are about disabling offloading or TCP Checksum with the ethool command :

ethtool -K eth0 tx off rx off
ethtool -K eth0 gso off gro off tso off tx off rx off rxvlan off txvlan off sg off

or adding this line in grub :

pcie_aspm=off

or disabling C1E power saving mode in the Bios settings.

in my case, with this device, disabling offloading worked, but the curve during the speedtest looks like a real roller coaster, and at the end the average downloading is not very good.

In some forums, some people say that it is a defective network card and that it should simply be swaped. Well so i tried with another devices, same model : HP 600 G1 and HP 800 G1 : same result.

I tried with a Lenovo M920Q Tiny, with intel I219-LM....... Same result once again.

So WTF is going on with intel Nics ?? 4 different devices and same error : "Detected Hardware Unit Hang"
Do we have to go with realtek nics ??

Edit: i just bought a cheap used I350-T4 based card, let's see what will happen with this one....

I have a couple of older Dell desktops with this problem in the e1000e chip on the motherboard. tso off is all that is needed to avoid the "Hardware Unit Hang" crash. Install ethtool and add a line to /etc/rc.local: ethtool -K eth0 tso off

Realtek chips avoid bugs in their optimization hardware by-- not having any optimization hardware. The RTL8111 is little more than a bit pump. They will use a lot more CPU per packet than Intel.

1 Like

When you do this, can you download a big file, let's say 5Gb, in a stable way, without it being a roller coaster? This is not the case for me. it's not a workaround, it replaces a problem with another one.

i have an USB3-RJ45 adapter with this chip, and i don't have any problem here...

That particular machine is connected to a cable ISP at 120 / 20 Mb so I really can't evaluate high speed performance.

with the I217-LM or I219-LM on the board, and my USB network adapter with the RTL8152, at 1 000/500Mbps during the speedtest, with HTOP runing, i can see no more than 10% cpu load with my I5 9400T. So if realtek chips are a solution, i'd prefer go with that instead of having to tinker some settings.

btw why this is not necessary with windows ? these devices are working well without needing to tinker anything in the drivers on windows OS.

Next thing i didn't try is the setting in grub, i don't know where to put it in openwrt ?
and i can't disable C1E in my HP 600/800. i think i can do it in the Lenovo M920Q, will try this asap.

add it as a last param to the linux line, in /boot/grub/grub.cfg (or grub2.cfg perhaps).

you could also try a Broadcom NIC, if you want to avoid Intel, and Realtek.

isn't it a brand to avoid with openwrt ?

Yeah, but not for server grade NICs.

you can always check what's supported by the kmod-tg3 module/package.

on my Lenovo M920Q, i have the ASPM setting in the bios, so i disabled it. it didn't change anything :
see how the curve crash, not even at 50% of the downloading test
image

Now with :
ethtool -K eth0 tso off
as suggested by @mk24 , that's accepteptable, at least it works...but my MT7622 device is doing better for 86€ !!! it's frustrating to have a powerful pc that doesn't do as well as a 86€ router with which I have a perfectly stable curve
image

With :

ethtool -K eth0 tx off rx off

which is what i was using before @mk24 suggestion
image

That is exactly the reason why I won't chime into the blind praise of Intel ethernet cards over Realtek. I've first experienced this issue in 2007 (EDIT: no, that must have been 2-3+ years earlier already, with a e1000 addon PCi card) with e1000 and PCI cards, but also much newer e1000e PCIe aren't immune to this issue either - and when it happens, it causes real data corruption and data loss (e.g. on servers). Given that Intel is writing the e1000/ e1000e drivers themselves, they don't get to blame inadequate linux drivers either - and I've never seen issues like those with Realtek network cards...

Over the years I've fixed this issues differently, either by adding r8168 cards or patching the on-card eeprom of the intel card to disable features permanently (powersaving), but this doesn't instill much confidence in the hardware.

Yes, Intel might do a little more offloading than Realtek, but this isn't really a problem with 1 GBit/s cards on x86_64 - and the r8169 module isn't that bad to begin with.

The e1000e driver is the only one to work with these I217/I219 Nics ?
kmod-igb couldn't replace it ?

Your card either needs e1000e XOR igb, different drivers for different hardware - you can't choose.

well, so according to this page :
https://www.intel.com/content/www/us/en/download/14611/15817/intel-network-adapter-driver-for-pcie-intel-gigabit-ethernet-network-connections-under-linux.html

e1000e.x.x.x.tar.gz is designed to work with the Intel® 82563/82566/82567 Gigabit Ethernet PHY, Intel® 82571/82572/82573/82574/82577/82578/82579/82583 Gigabit Ethernet Controller, and I217/I218 controllers under Linux*. The latest version and earlier versions of this driver are available from SourceForge*.

If your adapter/connection is not 82563, 82566, 82567, 82571, 82572, 82573, 82574, 82577, 82578, 82579, or 82583-based, you should use one of the following drivers:

  • igb-x.x.x.tar.gz driver supports all Intel® 82575, 82576, 82580, I350, I210, or I211-based Gigabit Network Adapters/Connections

so if i understand well, to escape that e1000e driver, we must go with one of those Chips in bold.
i'm lucky, the I350-T4 i ordered is in the list...

And looks like I225 NICs (2.5Gbps) are using kmod-igc, there is some hope here too :sweat_smile:

I've used a lot of I217-LM NICs for years without issues (mostly on FreeBSD and Windows) but there have been some bugs over the years such as https://community.intel.com/t5/Ethernet-Products/IPv6-multicast-flood-during-sleep-from-i217-LM/td-p/282154 . I do recall that hardware offload might have negative impact on performance in some circumstances (like shaping) so you might be better with rx and tx off. You might also want to have a look at https://support.hp.com/id-en/document/c07020720

Beware of fakes when it comes to the i350 series (Google it), Broadcom also works well in general.

Edit: nperf seems to work fine on my setup, Windows box (Intel 82579V NIC), Gateway/Router (Intel I217-LM (EEPROM V0.13-4) on LAN and Intel 82572EI (EEPROM V5.11-10) on WAN) running FreeBSD 13.1 with all hardware offloading enabled.

under windows i didn't notice any problem, it works as expected with the default settings.
here is a nperf from windows 10 with the HP 600 G1 with the I217 NIC, that's what i'm having with all my PC runing windows behind my router :
image

From my point of view this problem is driver related. This e1000e driver has a problem, this is not normal to build a NIC with features that you have to disable in order to have it to work correctly.
And by the way, disabling the settings make things working, but not correctly, see the curves above in my comments.

Do you know some Broadcom Pcie quad ports cards i can buy, just in case...
i'm actualy waiting for a realtek quad port card from aliexpress, and that supposed cisco I350 T4 card from Ebay.

Google suggests BCM 5719, and perhaps 5709.

ok i found a seller in my country for 35€, brand new. and some used for 20€
are there any counterfait cards also for this brand ?
i'm surprised there is no heatsink like the i350.

I'm confused...I use an e1000e dual port server card with a full gigabit connection...what would I see as a problem?

I assume this issue is occuring when running the nperf on the router itself?

(I've never ran nperf...and never ran a speedtest from a router...I won't say for obvious reasons because it seems a lot of people actually do it...good time to note the SpeeTest dot Net license doesn't permit running on a router).

No, not from the router. The problem can ben seen from your PC, when using a router with an intel NIC like I217 / I219.
so the graphics i posted are from my PC, connected to the router. And of course you must have at least a 1Gbit internet connexion.

I nolticed the problem only with nperf.com not with speedtest.net

1 Like

No idea, but the serial can always be checked with the vendor, after reception.