54 votes

e1000e Réinitialisation inattendue de l'adaptateur / Blocage d'une unité matérielle détectée

J'ai un serveur Dell 1U avec Intel(R) Xeon(R) CPU L5420 @ 2.50GHz, 8 cores exécutant Ubuntu Server Kernel Version 3.13.0-32-generic sur x86_64. Il est équipé de deux cartes réseau 1000baseT. Je l'ai configuré pour transmettre les paquets de eth0 à eth1.

J'ai remarqué que dans mon fichier kern.log, le système se bloque puis s'arrête. Cela se produit souvent. Cela se produit toutes les quelques secondes, puis cela peut aller pendant quelques minutes, puis à nouveau toutes les quelques secondes.

Voici le fichier journal :

 [118943.768245] e1000e 0000:00:19.0 eth0: Detected Hardware Unit Hang:
 [118943.768245]   TDH                  <45>
 [118943.768245]   TDT                  <50>
 [118943.768245]   next_to_use          <50>
 [118943.768245]   next_to_clean        <43>
 [118943.768245] buffer_info[next_to_clean]:
 [118943.768245]   time_stamp           <101c48d04>
 [118943.768245]   next_to_watch        <45>
 [118943.768245]   jiffies              <101c4970f>
 [118943.768245]   next_to_watch.status <0>
 [118943.768245] MAC Status             <80283>
 [118943.768245] PHY Status             <792d>
 [118943.768245] PHY 1000BASE-T Status  <7800>
 [118943.768245] PHY Extended Status    <3000>
 [118943.768245] PCI Status             <10>
 [118944.780015] e1000e 0000:00:19.0 eth0: Reset adapter unexpectedly

Voici les informations fournies par ethtool :

Paramètres :

Settings for eth0:

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
Advertised link modes:  10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Full 
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
               drv probe link
Link detected: yes

Informations sur le conducteur :

ethtool -i eth0

driver: e1000e
version: 2.3.2-k
firmware-version: 1.4-0
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Quelle en est la cause ? S'agit-il d'un simple bug dans le logiciel ou d'un problème matériel ? J'ai vu beaucoup d'autres personnes ayant des problèmes similaires mais aucune solution réelle et cela me laisse penser qu'il s'agit d'un problème de logiciel ?

Peut-être quelqu'un peut-il m'éclairer à ce sujet ?

49voto

Kyle Coots Points 2175

Je n'ai pas eu l'occasion d'en parler, mais j'ai fait quelques recherches et la seule vraie solution que j'ai trouvée semble avoir résolu le problème.

Désactivation de TSO, GSO et GRO à l'aide d'ethtool :

ethtool -K eth0 gso off gro off tso off

Selon un article trouvé ici : http://ehc.ac/p/e1000/bugs/378/

D'après ce que j'ai compris, cela entraîne ou peut entraîner une réduction des performances.

J'ai également remarqué qu'une autre solution consistait à désactiver la gestion de l'alimentation à l'état actif.

pcie_aspm=off

D'après ce post sur serverfault : Linux e1000e (pilote réseau Intel) : des problèmes à foison, par où commencer ?

Je n'ai pas encore essayé cette solution. Je l'essaierai pour voir si cela fait une différence et je vous ferai part de mes conclusions.

EDITです:

J'ai essayé de désactiver la gestion active de l'alimentation, pcie_aspm=off, mais cela n'a eu aucun effet. J'ai continué à remarquer des erreurs dans mon fichier journal.

Cela peut encore fonctionner pour certains, car certains des nics Intel ont des problèmes avec différents noyaux pour s'endormir lorsque la gestion de l'alimentation est activée.

10voto

SteveG Points 91

La désactivation de Enhanced C1 (C1E) dans le BIOS m'a permis de résoudre le problème.

Je ne sais pas si l'état de faible consommation du C1E perturbe le pilote, ou s'il y a une erreur dans le pilote lorsque le processeur est dans cet état.

Quoi qu'il en soit, le problème est résolu.

9voto

David Scherfgen Points 245

Désactivation sólo TCP Segmentation Offload (TSO) fait l'affaire pour moi.

ethtool -K eth0 tso off

Remarque : C'est le cas no Il semble nécessaire de désactiver également Generic Receive Offload (GRO) et Generic Segmentation Offload (GSO), comme le recommandent diverses sources. D'après ce que j'ai appris, ils sont implémentés purement dans le logiciel, et devraient être sûrs. Ne sacrifiez pas plus de performances que nécessaire.

2voto

Jocelyn delalande Points 183

J'ai eu le même problème (déclenchement de la même erreur de noyau que vous et d'erreurs SSH dans l'espace utilisateur comme " Corrupted MAC on input ").

Solution

Ce qui a fonctionné pour moi, c'est de désactiver le déchargement de la somme de contrôle TCP :

# ethtool -K eth0 tx off rx off

Intégration propre et à long terme avec debian-ish /etc/network/interfaces :

#!/bin/bash
#
# Disables TCP offloading on all ifaces
#
# Inspired by: @Michelunik https://serverfault.com/a/422554/62953

RUN=true
case "${IF_NO_TOE,,}" in
    no|off|false|disable|disabled)
        RUN=false
    ;;
esac

# Other offloading options that could be disabled (not TCP related):
#  sg tso ufo gso gro lro rxvlan txvlan rxhash
# see man ethtool

if [ "$MODE" = start -a "$RUN" = true ]; then
  TOE_OPTIONS="rx tx"
  for TOE_OPTION in $TOE_OPTIONS; do
    /sbin/ethtool --offload "$IFACE" "$TOE_OPTION" off &>/dev/null || true
  done
fi

source , l'inspiration .

Contexte

  • Debian Jessie
  • Kernel 4.7.0-0.bpo.1-amd64
  • lspci 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-V (rev 04)

0voto

janfrode Points 11

Je viens de tomber sur ce readme d'intel :

https://downloadmirror.intel.com/15817/eng/readme.txt

qui dit

82573(V/L/E) Messages de suspension de l'unité TX

Plusieurs adaptateurs avec le chipset 82573 affichent des messages "TX unit hang" pendant le fonctionnement normal avec le pilote avec le pilote e1000. Le problème apparaît aussi bien lorsque TSO est activé que désactivé. et est causé par une fonction de gestion de l'énergie qui est activée dans l'EEPROM. EEPROM. Dans les premières versions des chipsets fournies aux fournisseurs, le bit EEPROM qui activait cette fonction. Après la découverte du problème, des adaptateurs nouveaux adaptateurs ont été mis sur le marché avec la fonction désactivée dans l'EEPROM.

Si vous rencontrez le problème avec un adaptateur et que le chipset est de type 82573, vous pouvez vérifier que votre adaptateur a besoin de la correction en en utilisant ethtool :

ethtool -e eth0

Valeurs de décalage


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

Le bit 0 de la valeur à l'offset 0x001e (de) est désactivé. Cela permet d'activer le d'économie d'énergie problématique. Dans ce cas, l'EEPROM doit lire "df" à l'offset 0x001e. lire "df" à l'offset 0x001e.

Malheureusement, mes adaptateurs problématiques sont 82579V et I219-V dans deux NUC différents, il n'est donc pas certain que la même solution s'applique à moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X