Сетевая карта Intel 82576 теряет канал PCIe при вставке модуля RJ45 SFP. Невозможно оживить его без включения и выключения питания

Я не уверен если это подходящее место, чтобы спросить. К сожалению, я мало что знаю обо всем этом, поэтому я не могу сказать, связана ли эта проблема с драйвером igb, прошивкой чипа (eeprom?), Модулем sfp, самой картой или чем-то еще.

среда:

  • ОС: Ubuntu 20.10
  • Ядро: 5.8.0-25-generic
  • Сетевая карта: Intel 82576 EF-SFP (8086: 10E7) aka E1G42EF (Serdes?)
  • PXE: 1.5.89
  • Драйвер: igb-5.6.0-k

описание проблемы:

Использование этой карты с моими модулями Cisco MGBSX1 MMF SFP не представляет никаких проблем. Снятие и установка модулей, получение связи, все работает нормально.

Проблема возникает, когда я пытаюсь использовать свой SFP-модуль Cisco MGBT1 RJ45.

Когда я вставляю модуль, извлекаю его, а затем снова вставляю в любой из портов, карта теряет свой канал pcie и больше не отвечает.

Ошибка:

igb 0000:02:00.0 enp2s0f0: PCIe link lost
igb 0000:02:00.0 enp2s0f0: igb: enp2s0f0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
igb 0000:02:00.1 enp2s0f1: PCIe link lost
igb 0000:02:00.1 enp2s0f1: igb: enp2s0f1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

Перезагрузка драйвера с помощью rmmod igb и modprobe igb дает мне следующую ошибку:

------------[ cut here ]------------
NETDEV WATCHDOG: enp2s0f0 (igb): transmit queue 0 timed out
WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:442 dev_watchdog+0x25b/0x270
Modules linked in: igb zfs(PO) zunicode(PO) zavl(PO) icp(PO) zcommon(PO) znvpair(PO) spl(O) zlua(PO) snd_sof_pci snd_sof_intel_byt snd_sof_intel_ipc snd_sof_intel_hda_common snd_soc_hdac_hda snd_sof_xtensa_dsp snd_sof_intel_hda snd_sof snd_hda_ext_core snd_soc_acpi_intel_match snd_soc_acpi snd_soc_core snd_compress ac97_bus snd_hda_codec_hdmi snd_pcm_dmaengine snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel snd_intel_dspcfg snd_hda_codec intel_rapl_msr snd_hda_core mei_hdcp snd_hwdep intel_rapl_common snd_pcm intel_pmc_bxt intel_telemetry_pltdrv intel_punit_ipc intel_telemetry_core snd_seq_midi snd_seq_midi_event rtsx_usb_ms snd_rawmidi memstick x86_pkg_temp_thermal intel_powerclamp input_leds coretemp rapl snd_seq intel_cstate snd_seq_device snd_timer serio_raw wmi_bmof efi_pstore at24 snd mei_me intel_xhci_usb_role_switch roles mei soundcore nxp_nci_i2c ucsi_acpi nxp_nci typec_ucsi nci typec nfc mac_hid sch_fq_codel parport_pc ppdev lp parport
ip_tables x_tables autofs4 overlay nls_iso8859_1 dm_mirror dm_region_hash dm_log hid_logitech_hidpp hid_logitech_dj uas rtsx_usb_sdmmc hid_generic usb_storage rtsx_usb usbhid i915 crct10dif_pclmul drm_kms_helper crc32_pclmul ghash_clmulni_intel syscopyarea aesni_intel sysfillrect sysimgblt fb_sys_fops cec rc_core crypto_simd cryptd glue_helper drm psmouse r8169 xhci_pci i2c_i801 ahci lpc_ich realtek i2c_smbus dca xhci_pci_renesas libahci i2c_algo_bit wmi i2c_hid hid video [last unloaded: igb]
CPU: 0 PID: 0 Comm: swapper/0 Tainted: P           O      5.8.0-25-generic #26-Ubuntu
Hardware name: LENOVO 90GA003XGE/36C8, BIOS O2XKT33A 05/09/2019
RIP: 0010:dev_watchdog+0x25b/0x270
Code: 85 c0 75 e5 eb 9c 4c 89 ff c6 05 26 85 1c 01 01 e8 2a 93 fa ff 44 89 e9 4c 89 fe 48 c7 c7 58 7a c8 b9 48 89 c2 e8 ba 30 64 ff <0f> 0b e9 7a ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 0f
RSP: 0018:ffffae2f40003e78 EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff8e8a00c068c0 RCX: 000000000000083f
RDX: 0000000000000000 RSI: 00000000000000f6 RDI: 000000000000083f
RBP: ffffae2f40003ea8 R08: 0000000000000004 R09: 000000000000042c
R10: 0000000000000000 R11: 0000000000000001 R12: ffff8e8a00c06940
R13: 0000000000000000 R14: ffff8e8a4ff24480 R15: ffff8e8a4ff24000
FS:  0000000000000000(0000) GS:ffff8e8a77c00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fd3359d5000 CR3: 00000001e400a000 CR4: 00000000003406f0
Call Trace:
 <IRQ>
 ? pfifo_fast_enqueue+0x150/0x150
 call_timer_fn+0x32/0x130
 __run_timers.part.0+0x184/0x280
 ? lapic_next_deadline+0x26/0x30
 ? clockevents_program_event+0x8f/0xe0
 run_timer_softirq+0x2a/0x50
 __do_softirq+0xd0/0x2a1
 asm_call_irq_on_stack+0x12/0x20
 </IRQ>
 do_softirq_own_stack+0x3d/0x50
 irq_exit_rcu+0x95/0xd0
 sysvec_apic_timer_interrupt+0x3b/0x90
 asm_sysvec_apic_timer_interrupt+0x12/0x20
RIP: 0010:cpuidle_enter_state+0xb7/0x3f0
Code: 3f fb e6 46 e8 4a 5d 74 ff 48 89 45 d0 0f 1f 44 00 00 31 ff e8 fa 68 74 ff 80 7d c7 00 0f 85 d3 01 00 00 fb 66 0f 1f 44 00 00 <45> 85 e4 0f 88 df 01 00 00 49 63 d4 48 8d 04 52 48 8d 0c d5 00 00
RSP: 0018:ffffffffba203de8 EFLAGS: 00000246
RAX: ffff8e8a77c2c6c0 RBX: ffff8e8a77c36e00 RCX: 000000000000001f
RDX: 0000000000000000 RSI: 0000000055785785 RDI: 0000000000000000
RBP: ffffffffba203e28 R08: 0000011d7e0ab089 R09: 000000003a20a000
R10: 0000000000000e23 R11: ffff8e8a77c2b364 R12: 0000000000000007
R13: ffffffffba36adc0 R14: 0000000000000007 R15: 0000000000000000
 ? cpuidle_enter_state+0xa6/0x3f0
 cpuidle_enter+0x2e/0x40
 cpuidle_idle_call+0x145/0x200
 do_idle+0x7a/0xe0
 cpu_startup_entry+0x20/0x30
 rest_init+0xae/0xb0
 arch_call_rest_init+0xe/0x1b
 start_kernel+0x43a/0x45a
 x86_64_start_reservations+0x24/0x26
 x86_64_start_kernel+0x8b/0x8f
 secondary_startup_64+0xb6/0xc0
---[ end trace fabba6c9a6177673 ]---

и после этого:

igb 0000:02:00.0: can't change power state from D3hot to D0 (config space inaccessible)
igb 0000:02:00.0 0000:02:00.0 (uninitialized): PCIe link lost
igb 0000:02:00.0: PHY reset is blocked due to SOL/IDER session.
igb 0000:02:00.0: The NVM Checksum Is Not Valid
igb: probe of 0000:02:00.0 failed with error -5
igb 0000:02:00.1: can't change power state from D3hot to D0 (config space inaccessible)
igb 0000:02:00.1 0000:02:00.1 (uninitialized): PCIe link lost
igb 0000:02:00.1: PHY reset is blocked due to SOL/IDER session.
igb 0000:02:00.1: The NVM Checksum Is Not Valid
igb: probe of 0000:02:00.1 failed with error -5

lscpi показывает:

02:00.0 Ethernet controller [0200]: Intel Corporation 82576 Gigabit Network Connection [8086:10e7] (rev ff)
02:00.1 Ethernet controller [0200]: Intel Corporation 82576 Gigabit Network Connection [8086:10e7] (rev ff)

Если это произойдет, мне придется выключить и снова включить машину, чтобы снова использовать сетевую карту. Это почти как SFP-модуль RJ45 «отравляет» порты.

Если я загружаюсь со вставленным модулем RJ45 SFP, порт даже не появляется в Ubuntu. Второй порт работает нормально.

Ошибка:

igb: probe of 0000:02:00.0 failed with error -2
igb 0000:02:00.1: enabling device (0000 -> 0002))

Я могу «оживить» порт, вынув модуль RJ45 SFP, вставив модуль MMF и перезагрузив драйвер. Но после этого, если я снова вставлю модуль RJ45, я снова потеряю канал PCIe.

рабочая конфигурация

Существует конфигурация, в которой работает вся эта установка. Если я загружаюсь с пустыми слотами, затем вставляю модуль RJ45 SFP, а затем модуль MMF, все работает нормально. Проблема возникает только тогда, когда я извлекаю модуль RJ45 и снова вставляю его в любой из слотов (или если я загружаюсь со вставленным модулем). Довольно неприятно делать это каждый раз, когда я хочу перезагрузиться. Если возможно, я не хочу с этим жить.

Я также пробовал все это на машине FreeBSD и Windows с другой материнской платой, и ошибка осталась той же.

Еще одна работавшая конфигурация - это загрузка Ubuntu 10.04. В этой версии оба модуля работают, если они вставлены перед загрузкой. Удаление и повторная установка модуля RJ45 вызывает ту же ошибку, что и выше. Это было бы приемлемым решением, если бы Ubuntu 10.04 не был таким уж старым. Для меня важным аспектом является то, что оба порта работают после загрузки с уже вставленными модулями.

удаление сетевой карты и повторное сканирование шины PCIe

Я попытался удалить сетевой адаптер из системы и повторно сканировать шину PCIe с помощью этого сценария, который пользователь разместил на другом форуме. Я изменил его, чтобы удалить оба порта.

К сожалению, удаление работает, но повторное сканирование не вернет карту. Он также не показывает никаких новых ошибок.

Он также снова работает, если я подключу его в «горячем» режиме.Под этим я подразумеваю физически удалить его из слота PCIe и снова вставить, когда машина включена и загружается в Ubuntu.

Я сохранил логи отовсюду (dmesg, ethtool, lspci, lshw, modinfo), дайте мне знать, если вам понадобится дополнительная информация.

Я также связался с Intel через sourceforge, но представитель Intel сказал, что они в любом случае не поддерживают подключаемые модули в драйвере igb .... это означает, что я не могу надеяться, что это будет исправлено в новом версия драйвера.

... Я предполагаю, что здесь тоже может быть неправильный дизайн платы или прошивка.

Следующее в моем списке - найти последнюю версию ядра или драйвера, где оба порта работают после загрузки с модулями, вставленными во время загрузки. ... и пробуем другой модуль RJ-45 Sfp ofc.

Есть идеи, что еще я мог бы попробовать?

Спасибо за чтение.

0
задан 15 March 2021 в 22:52

0 ответов

Другие вопросы по тегам:

Похожие вопросы: