Koozali.org: home of the SME Server

e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang

Offline gieres

  • *
  • 213
  • +0/-0
e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang
« on: February 09, 2022, 09:36:06 PM »
Bonsoir,

Serveur SuperMicro SS 5017C-LF installé en serveur et passerelle

Code: [Select]
[root@kooz1 ~]# lspci -v | grep -A8 Ether
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) (rev 05)
Subsystem: Super Micro Computer Inc Device 1502
Flags: bus master, fast devsel, latency 0, IRQ 28
Memory at dfb00000 (32-bit, non-prefetchable) [size=128K]
Memory at dfb25000 (32-bit, non-prefetchable) [size=4K]
I/O ports at f020 [size=32]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [e0] PCI Advanced Features
--
04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
Subsystem: Super Micro Computer Inc Device 0000
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at df900000 (32-bit, non-prefetchable) [size=128K]
I/O ports at d000 [size=32]
Memory at df920000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [e0] Express Endpoint, MSI 00

Il y a 3 connecteurs NIC sur ce serveur, l'un est dédié au PXE.

[root@kooz1 ~]# ip link ls dev eno1 | fmt -t -w80
3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
    UP mode DEFAULT group default qlen 1000 link/ether 00:25:90:ac:03:fb
    brd ff:ff:ff:ff:ff:ff

L'adresse MAC correspond à l'une des 2 adresses du serveur Koozali. Je crois que c'est le réseau LAN. C'est sur le premier contrôleur qu'il y a un problème : Intel Corporation 82579LM.

D'après ce qu'on trouve sur Internet :
https://serverfault.com/questions/616485/e1000e-reset-adapter-unexpectedly-detected-hardware-unit-hang
https://bugzilla.kernel.org/show_bug.cgi?id=47331
les causes ne sont pas encore établies donc le bogue n'est pas corrigé.

Parmi les solutions évoquées :
1. Arrêter TSO avec ethtool.
2. Mettre à jour le noyau avec la dernière version de kmod-e1000e (dernière version kmod-e1000e-3.8.7-1.el7_9.elrepo.x86_64) : je ne pense pas que je vais me lancer là-dedans.
3. Arrêter aussi GSO et GRO, avec ethtool.
4. Essayer de démarrer le noyau avec le paramètre pcie_aspm=off (je ne sais pas faire)
5. Désactivation de Enhanced C1 (C1E) dans le BIOS
6. désactiver le déchargement de la somme de contrôle TCP :
# ethtool -K eno1 tx off rx off
7. ...

Code: [Select]
[root@kooz1 ~]# lsmod | grep e1000e
e1000e                248599  0
ptp                    23551  1 e1000e

SOLUTION 1 :
Pour arrêter le TSO, voir aussi :
https://www.ibm.com/docs/en/linux-on-systems?topic=3-enabling-disabling-tcp-segmentation-offload

To support TCP segmentation offload (TSO), a network device must support outbound (TX) checksumming and scatter gather. For this reason, you must turn on scatter gather and outbound checksumming prior to configuring TSO. All three options can be turned on or off with a single ethtool command  of the form :

# ethtool -K <interface_name> tx <value> sg <value> tso <value>

where <value> is either on or off.

Code: [Select]
[root@kooz1 ~]# yum install ethtool
Modules complémentaires chargés : fastestmirror, post-transaction-actions,
                                : priorities, smeserver
Loading mirror speeds from cached hostfile
 * base: miroir.univ-paris13.fr
 * smeaddons: ibsgaarden.dk
 * smeextras: ibsgaarden.dk
 * smeos: ibsgaarden.dk
 * smeupdates: ibsgaarden.dk
 * updates: centos.mirrors.proxad.net
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet ethtool.x86_64 2:4.8-10.el7 sera installé
--> Résolution des dépendances terminée

Dépendances résolues

====================================================================================
 Package            Architecture      Version                 Dépôt           Taille
====================================================================================
Installation :
 ethtool            x86_64            2:4.8-10.el7            base            127 k

Résumé de la transaction
====================================================================================
Installation   1 Paquet

Taille totale des téléchargements : 127 k
Taille d'installation : 346 k
Is this ok [y/d/N]: o
Downloading packages:
ethtool-4.8-10.el7.x86_64.rpm                                | 127 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Avertissement : RPMDB a été modifiée par une autre application que yum.
  Installation : 2:ethtool-4.8-10.el7.x86_64                                    1/1
Creating temporary event 'temp' and populating it...
 Adding actions to execute
Executing signal-event temp ...........
Reload yum db for server-manager
  Vérification : 2:ethtool-4.8-10.el7.x86_64                                    1/1

Installé :
  ethtool.x86_64 2:4.8-10.el7                                                       

Terminé !

Voilà ce que ethtool voit de eno1 :
Code: [Select]
[root@kooz1 ~]# ethtool eno1
Settings for eno1:
Supported ports: [ TP ]
Supported link modes:   10baseT/Half 10baseT/Full
                        100baseT/Half 100baseT/Full
                        1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes:  10baseT/Half 10baseT/Full
                        100baseT/Half 100baseT/Full
                        1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
       drv probe link
Link detected: yes
Et :
Code: [Select]
[root@kooz1 ~]# ethtool -k eno1
Features for eno1:
rx-checksumming: on
tx-checksumming: on
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: on
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: on
tx-scatter-gather: on
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
tx-tcp-segmentation: on
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp6-segmentation: on
tx-tcp-mangleid-segmentation: off
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-ipip-segmentation: off [fixed]
tx-sit-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
busy-poll: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
rx-gro-hw: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]

Donc 1ere solution, on arrête TSO :
Code: [Select]
ethtool -K eno1 tx off sg off tso off
Actual changes:
tx-checksumming: off
tx-checksum-ip-generic: off
scatter-gather: off
tx-scatter-gather: off
tcp-segmentation-offload: off
tx-tcp-segmentation: off
tx-tcp6-segmentation: off
generic-segmentation-offload: off [requested on]

Et voilà le résultat :

Code: [Select]
ethtool -k eno1
Features for eno1:
rx-checksumming: on
tx-checksumming: off
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: off
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: off
tx-scatter-gather: off
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
tx-tcp-segmentation: off
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp6-segmentation: off
tx-tcp-mangleid-segmentation: off
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: off [requested on]
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-ipip-segmentation: off [fixed]
tx-sit-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
busy-poll: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
rx-gro-hw: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]

Et comme :
This change will not persist across reboots, but it is immediate.

Lire la méthode permanente dans :
https://redhatguy.wordpress.com/2017/08/17/how-to-disable-tcp-segmentation-offload/

Rendez-vous dans quelques temps.
Et merci @krisden pour l'aide
« Last Edit: February 12, 2022, 09:48:06 PM by gieres »

Offline Jean-Philippe Pialasse

  • *
  • 2,743
  • +11/-0
  • aka Unnilennium
    • http://smeserver.pialasse.com
Re: e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang
« Reply #1 on: February 09, 2022, 11:53:56 PM »
le kmod elrepo est en general la deuxieme meilleur solution.

la premiere est d’acheter une carte compatible pci. en general pour 20€ tu résout  le problème… je ne sais pas quel est ton taux horaire mais tu as certainement deja passé plus d’une heure là dessus.  ;)

Offline gieres

  • *
  • 213
  • +0/-0
Re: e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang
« Reply #2 on: February 10, 2022, 09:28:16 AM »
Merci @JPP pour les conseils.
Il faut que je regarde s'il y a 2 emplacements libres en PCI car il y a déjà une carte RAID.
Sinon, il va falloir que j'apprenne à compiler le noyau. Et, je crois, qu'il faut refaire la manip à chaque màj du noyau.
Mon taux horaire est très bas : je suis à l'école Koozali !
Bonne journée

Offline Jean-Philippe Pialasse

  • *
  • 2,743
  • +11/-0
  • aka Unnilennium
    • http://smeserver.pialasse.com
Re: e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang
« Reply #3 on: February 10, 2022, 01:41:07 PM »
rien a recompiler elrepo fournit des rpms pret à installer. 

kmod = kernel module. 
nous utilisons un kernel modulaire pas un kernel monolothic sans module.

tu as aussi l’option usb, bien que plus difficile de trouver une carte compatible sous ce format pas impossible.

Offline gieres

  • *
  • 213
  • +0/-0
Re: e1000e 0000:00:19.0 eno1: Detected Hardware Unit Hang
« Reply #4 on: February 12, 2022, 08:30:40 AM »
Donc il faut que je modifie l’ordre des solutions ?

1. acheter une carte PCI. Mais comment savoir qu'elle n'aura pas le même problème de e1000e ?
2. mettre à jour le module kmod-e1000e. Donc ce bogue serait toujours ouvert uniquement pour les noyaux monolithiques ? https://bugzilla.kernel.org/show_bug.cgi?id=47331

Peut-être même inverser les 1 et 2 si l'installation de la mise à jour résout bien le problème ?