e1000e Bağdaştırıcıyı beklenmedik şekilde sıfırlama / Algılanan Donanım Birimi Asmak


36

X86_64'te Intel (R) Xeon (R) CPU L5420 @ 2.50GHz, 8 çekirdekli Ubuntu Server Kernel Version 3.13.0-32-jenerik kullanan 8 çekirdekli bir Dell 1U Sunucum var. Çift 1000baseT ağ kartlarına sahiptir. Eth0'dan eth1'e paketleri iletmek için hazırladım.

Benim kern.log dosyamda asılı durduktan sonra dinlendiğini fark ettim. Bu sık sık oluyor. Bu, her birkaç saniyede bir gerçekleşir, ardından birkaç dakika için tamam olur ve birkaç saniyeye geri döner.

İşte günlük dosyası dökümü:

 [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

İşte ethtool'dan bilgi:

Ayarlar:

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

Sürücü bilgisi:

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

Buna ne sebep olabilir? Bu sadece yazılımdaki bir hata mı yoksa gerçek bir donanım sorunu mu? Benzer sorunları olan ancak gerçek bir çözümü olmayan başka birçok şey gördüm ve bu da bunun bir yazılım sorunu olduğuna inanmamı sağladı?

Belki birisi benim için bu konuda biraz ışık tutabilir?


Sorunun bilinen olduğu
görülüyor

Yanıtlar:


26

Tamam, dün gece bu soruyu gönderdikten sonra bazı araştırmalar yapmaya devam ettim, karşılaştığım tek gerçek çözüm sorunla ilgilenmiş gibi görünüyor.

TSO, GSO ve GRO’yu ethtool kullanarak devre dışı bırakmak:

ethtool -K eth0 gso off gro off tso off

Burada bulunan bir yayına göre: http://ehc.ac/p/e1000/bugs/378/

Anladığım kadarıyla, bu performansın düşmesine neden olabilir veya olabilir.

Ayrıca, Aktif Durum Güç Yönetimini devre dışı bırakmak için başka bir çözüm olduğunu fark ettim.

pcie_aspm=off

Serverfault'daki bu yayına göre: Linux e1000e (Intel ağ sürücüsü) sorunları bolca, nereden başlamalıyım?

Henüz bu çözümü denemedim. Dener ve bunun bir fark yaratıp yaratmadığını ve bulgularımı geri gönderirim.

DÜZENLE:

Tamam, bu yüzden Aktif Durum Güç Yönetimini kapatmayı denedim, pcie_aspm = off ve bunun bir etkisi olmadı. Günlük dosyamdaki hataları fark etmeye devam ettim.

Bazıları için çalışabilir, çünkü bazı Intel modelleri, güç yönetimi etkinleştirildiğinde uykuya dalmakta farklı çekirdeklerde sorunlar yaşarlar.


2
Teşekkürler! Ethtool düzeltmesini denedim ve sorunumu çözdü. (ayrıca bir init betiğine sıkışmış)
Peter

Merhaba, koşmanın ethtool -K eth0 gso off gro off tso offkısa bir süre için bile olsa bağlantıyı keseceğini biliyor musunuz ?
godzillante

Nitekim, ethtool ile engelleme seçenekleri yardımcı oldu, güç yönetimi seçeneklerini devre dışı bırakmak yoktu
Oleg Gryb

2
'Burada bulunan bir yayına göre: ehc.ac/p/e1000/bugs/378 ' yukarıda bir domainsquatter öğesine gider, orijinal içerik burada bulunabilir: web.archive.org/web/20160205153351/http://ehc. AC: 80 / p / E1000 / ...
Mike McCabe

6

BIOS'ta Geliştirilmiş C1'i (C1E) devre dışı bırakmak benim için düzeltti.

C1E'nin düşük güç durumunun sürücüyle karıştırıldığından veya işlemci bu durumdayken sürücüde aykırı olduğundan emin değil.

Neyse, problem çözüldü.


Bu tam olarak benim için işe yaradı. Ubuntu 16.04 LTS'yi ASRock H170M-ITX / DL anakartında çalıştırmak. SteveG teşekkürler. =)
Kuyruklar

bunun sunucuların güç tüketimini çok artırabileceğini unutmayın!
Flatron

0

Sorun vardı (siz ve aynı " Corrupted MAC on input" gibi kullanıcı alanı SSH hataları gibi aynı çekirdek hatayı tetikleyen ).

Çözüm

Benim için çalıştığım, TCP sağlama toplamı boşaltma devre dışı bırakmak oldu:

# ethtool -K eth0 tx off rx off

Bunun debian-ish / etc / network / interfaces ile temiz ve uzun süreli entegrasyonu :

#!/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

kaynak , ilham .

bağlam

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.