e1000e несподівано скинути адаптер / Виявлений апаратний блок повісити


36

У мене є сервер Dell 1U з процесором Intel (R) Xeon (R) L5420 @ 2,50 ГГц, 8 ядрами, що працюють на ядрах Ubuntu Server 3.13.0-32-generic на x86_64. Він має подвійні мережеві карти 1000baseT. У мене він налаштований для пересилання пакетів від eth0 до eth1.

Я помітив, що в моєму файлі kern.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

Ось інформація з ethtool:

Налаштування:

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

Інформація про водія:

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

Що може бути причиною цього? Це лише помилка в програмному забезпеченні або актуальна проблема з обладнанням? Я бачив багато інших, які мають подібні проблеми, але не мають реального рішення, і це також змушує мене вважати, що це проблема програмного забезпечення?

Можливо, хтось може пролити на мене щось світло?


Здається, проблема відома: bugzilla.kernel.org/show_bug.cgi?id=47331
victorpablosceruelo

Відповіді:


26

Добре, після того, як опублікував це питання минулої ночі, я продовжував робити деякі дослідження, єдине реальне рішення, на яке я натрапив, здається, піклується про проблему.

Відключення TSO, GSO та GRO за допомогою ettool:

ethtool -K eth0 gso off gro off tso off

Відповідно до публікації, знайденої тут: http://ehc.ac/p/e1000/bugs/378/

З того, що я розумію, це може або може призвести до зниження продуктивності.

Я також зауважив, що іншим рішенням було відключити Active-State Management Power

pcie_aspm=off

Відповідно до цієї публікації на сервері за замовчуванням: Проблеми Linux e1000e (мережевий драйвер Intel) в багатьох проблемах, з чого почати?

Я ще не пробував цього рішення. Я спробую це, і я побачу, чи це має значення, і поверну свої висновки.

Редагувати:

Гаразд, тому я спробував вимкнути керування живленням Active State, pcie_aspm = вимкнено, і це не мало жодного ефекту. Я продовжував помічати помилки у своєму журналі.

Це може все-таки спрацювати для деяких, оскільки деякі з Intel мають проблеми з різними ядрами засипання, коли ввімкнено управління живленням.


2
Спасибі! Я спробував виправити ettool, і це вирішило мою проблему. (також застряг у сценарії init)
Петро

Привіт, ти знаєш, якщо біг ethtool -K eth0 gso off gro off tso offперерве з'єднання навіть на короткий час?
godzillante

Дійсно, відключення варіантів з ettool допомогло, відключення варіантів управління живленням не вдалося
Олег Гриб

2
"Відповідно до публікації, знайденої тут: ehc.ac/p/e1000/bugs/378 ", вище переходить до доменного розвідника, оригінальний вміст можна знайти тут: web.archive.org/web/20160205153351/http://ehc. ac: 80 / p / e1000 /…
Майк МакКейб

6

Відключення посиленого C1 (C1E) в BIOS виправило це для мене.

Не впевнений, що стан низької потужності C1E возиться з драйвером, чи в одразу є драйвер, коли процесор знаходиться в такому стані.

У будь-якому випадку проблема вирішена.


Це саме виправлення, яке працювало на мене. Запуск Ubuntu 16.04 LTS на материнській платі ASRock H170M-ITX / DL. Дякую SteveG. =)
Хвости

Майте на увазі, що це може значно збільшити споживання енергії серверів!
Flatron

0

У мене виникла проблема (викликала таку ж помилку ядра, як і ви, і помилки SSH у просторі користувачів, наприклад " Corrupted MAC on input").

Рішення

Що для мене спрацювало - відключити завантаження контрольної суми TCP:

# ethtool -K eth0 tx off rx off

Чиста і довгострокова інтеграція цього з 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

джерело , натхнення .

Контекст

  • Дебіан Джессі
  • Ядро 4.7.0-0.bpo.1-amd64
  • lspci 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-V (rev 04)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.