e1000e Restablece el adaptador inesperadamente / Unidad de hardware detectada se bloquea

36

Tengo un servidor Dell 1U con Intel (R) Xeon (R) CPU L5420 @ 2.50GHz, 8 núcleos con Ubuntu Server Kernel versión 3.13.0-32-generic en x86_64. Tiene dos tarjetas de red 1000baseT. Lo tengo configurado para reenviar paquetes de eth0 a eth1.

He notado que en mi archivo kern.log sigue colgando y luego descansando. Esto está sucediendo a menudo. Esto sucede cada pocos segundos, entonces tal vez estará bien durante unos minutos y luego volver a cada pocos segundos.

Aquí está el volcado del archivo de registro:

 [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

Aquí está la información de ethtool:

Configuraciones:

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

Información del conductor:

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

¿Qué podría estar causando esto? ¿Es esto solo un error en el software o un problema real de hardware? He visto a muchos otros tener problemas similares pero no hay una solución real y esto también me lleva a creer que es un problema de software.

¿Quizás alguien pueda arrojar algo de luz sobre esto por mí?

Kyle Coots
fuente
Parece ser que el problema es conocido: bugzilla.kernel.org/show_bug.cgi?id=47331
victorpablosceruelo

Respuestas:

26

Ok, después de publicar esta pregunta anoche, seguí investigando, la única solución real que encontré parece haber resuelto el problema.

Deshabilitar TSO, GSO y GRO usando ethtool:

ethtool -K eth0 gso off gro off tso off

Según una publicación encontrada aquí: http://ehc.ac/p/e1000/bugs/378/

Por lo que entiendo, esto causará o puede causar una reducción en el rendimiento.

También noté que otra solución era deshabilitar Active-State Power Management

pcie_aspm=off

De acuerdo con esta publicación sobre la falla del servidor: problemas de Linux e1000e (controlador de red Intel) en abundancia, ¿por dónde empiezo?

No he probado esta solución todavía. Lo intentaré y veré si eso hace la diferencia y publicaré mis hallazgos.

EDITAR:

Ok, he intentado desactivar Active-State Power Management, pcie_aspm = off y esto no tuvo ningún efecto. Seguí notando errores en mi archivo de registro.

Esto todavía puede funcionar para algunos, ya que algunas de las Intel tienen problemas con diferentes núcleos de quedarse dormido cuando la administración de energía está habilitada.

Kyle Coots
fuente
2
¡Gracias! Probé la solución ethtool y resolvió mi problema. (también lo pegó en un guión de inicio)
Peter
Hola, ¿sabes si la ejecución ethtool -K eth0 gso off gro off tso offinterrumpirá la conexión, aunque sea por poco tiempo?
godzillante
De hecho, deshabilitar las opciones con ethtool ayudó, deshabilitar las opciones de administración de energía no lo hizo
Oleg Gryb
2
'Según una publicación que se encuentra aquí: ehc.ac/p/e1000/bugs/378 ' ahora va a un dominio de dominios, el contenido original se puede encontrar aquí: web.archive.org/web/20160205153351/http://ehc. ac: 80 / p / e1000 / ...
Mike McCabe
6

Desactivar Enhanced C1 (C1E) en el BIOS lo arregló para mí.

No estoy seguro si el estado de menor potencia de C1E está interfiriendo con el controlador, o si hay un error en el controlador cuando el procesador está en este estado.

De todos modos, problema resuelto.

SteveG
fuente
Esta fue exactamente la solución que funcionó para mí. Ejecutando Ubuntu 16.04 LTS en una placa base ASRock H170M-ITX / DL. Gracias SteveG. =)
Colas
Tenga en cuenta que esto puede aumentar mucho el consumo de energía de los servidores.
Flatron
0

Tuve el problema (desencadenando el mismo error de kernel que usted y los errores SSH del espacio de usuario como " Corrupted MAC on input").

Solución

Lo que funcionó para mí fue desactivar la descarga de suma de verificación TCP:

# ethtool -K eth0 tx off rx off

Integración limpia y a largo plazo de esto con 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

fuente , inspiración .

Contexto

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