e1000e Reset adaptor secara tidak terduga / Hang Unit Perangkat Keras Terdeteksi

36

Saya memiliki Dell 1U Server dengan Intel (R) Xeon (R) CPU L5420 @ 2.50GHz, 8 core yang menjalankan Ubuntu Server Kernel Versi 3.13.0-32-generik pada x86_64. Ini memiliki kartu jaringan 1000baseT ganda. Saya sudah mengaturnya untuk meneruskan paket dari eth0 ke eth1.

Saya perhatikan bahwa di file kern.log saya terus menggantung lalu beristirahat. Ini sering terjadi. Ini terjadi setiap beberapa detik maka mungkin akan baik-baik saja selama beberapa menit kemudian kembali ke setiap beberapa detik.

Berikut adalah dump file log:

 [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

Ini adalah info dari ethtool:

Pengaturan:

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

Info pengemudi:

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

Apa yang menyebabkan ini? Apakah ini hanya bug dalam perangkat lunak atau masalah perangkat keras yang sebenarnya? Saya telah melihat banyak masalah lain yang serupa tetapi tidak ada solusi nyata dan ini juga membuat saya percaya bahwa ini masalah perangkat lunak?

Mungkin seseorang bisa menjelaskan ini untukku?

Kyle Coots
sumber
Tampaknya masalahnya diketahui: bugzilla.kernel.org/show_bug.cgi?id=47331
victorpablosceruelo

Jawaban:

26

Ok jadi setelah memposting pertanyaan ini tadi malam saya terus melakukan riset satu-satunya solusi nyata yang saya temui tampaknya telah mengatasi masalah tersebut.

Menonaktifkan TSO, GSO, dan GRO menggunakan ethtool:

ethtool -K eth0 gso off gro off tso off

Menurut posting yang ditemukan di sini: http://ehc.ac/p/e1000/bugs/378/

Dari apa yang saya pahami ini akan atau dapat menyebabkan penurunan kinerja.

Saya juga melihat solusi lain adalah menonaktifkan Manajemen Daya Active-State

pcie_aspm=off

Menurut posting ini di serverfault: Linux e1000e (driver jaringan Intel) banyak masalah, di mana saya mulai?

Saya belum mencoba solusi ini. Saya akan mencobanya dan melihat apakah itu membuat perbedaan dan memposting kembali temuan saya.

EDIT:

Ok jadi saya sudah mencoba mematikan Active-State Power Management, pcie_aspm = mati dan ini tidak berpengaruh. Saya terus memperhatikan kesalahan dalam file log saya.

Ini mungkin masih bekerja untuk beberapa karena beberapa Intel memiliki masalah dengan kernel yang berbeda tertidur ketika manajemen daya diaktifkan.

Kyle Coots
sumber
2
Terima kasih! Saya mencoba memperbaiki ethtool, dan itu memecahkan masalah saya. (Juga memasukkannya ke dalam skrip init)
Peter
Hai, apakah Anda tahu jika menjalankan ethtool -K eth0 gso off gro off tso offakan menjatuhkan koneksi, bahkan untuk waktu yang singkat?
godzillante
Memang, menonaktifkan opsi dengan ethtool membantu, menonaktifkan opsi manajemen daya tidak
Oleg Gryb
2
'Menurut sebuah pos yang ditemukan di sini: ehc.ac/p/e1000/bugs/378 ' di atas sekarang pergi ke pemecah domain, konten asli dapat ditemukan di sini: web.archive.org/web/20160205153351/http://ehc. ac: 80 / p / e1000 / ...
Mike McCabe
6

Menonaktifkan Enhanced C1 (C1E) di BIOS memperbaikinya untuk saya.

Tidak yakin apakah kondisi daya yang lebih rendah dari C1E mengacaukan driver, atau bahwa ada oops di driver ketika prosesor dalam keadaan ini.

Bagaimanapun, masalah terpecahkan.

SteveG
sumber
Ini adalah perbaikan yang tepat untuk saya. Menjalankan Ubuntu 16.04 LTS pada motherboard ASRock H170M-ITX / DL. Terima kasih SteveG. =)
Ekor
keberatan bahwa ini dapat meningkatkan konsumsi daya server banyak!
Flatron
0

Saya punya masalah (memicu kesalahan kernel yang sama seperti Anda dan userspace kesalahan SSH seperti " Corrupted MAC on input").

Larutan

Apa yang berhasil bagi saya adalah untuk menonaktifkan pemuatan TCP checksum:

# ethtool -K eth0 tx off rx off

Bersihkan & integrasi jangka panjang ini dengan 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

sumber , inspirasi .

Konteks

  • 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
sumber