`不明なヘッダー タイプ 7f` でバスから外れた場合、PCI デバイスを再接続するにはどうすればよいでしょうか。

`不明なヘッダー タイプ 7f` でバスから外れた場合、PCI デバイスを再接続するにはどうすればよいでしょうか。

最近、私のデバイスは時々ネットワークの問題を経験します。最終的に、r8169 ドライバーと最近のカーネル アップデート (6.0->6.2) を使用すると、NIC の 1 つに何らかの問題がある可能性があることがわかりました。再起動せずに NIC をオンラインで再起動しようとしましたが、うまくいきませんでした。私が行ったことは次のとおりです。

  1. modprobe -r r8169
  2. modprobe r8169
  3. lsmod | grep r8169 ただし、NIC を検出できません。

lspci は、バスからすでに切断されている可能性があることを示しています:

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev ff) (prog-if ff)
        DeviceName: GLAN
        !!! Unknown header type 7f
        Kernel modules: r8169

通常、この時点では再起動すると元に戻すことができます。 しかし、現在、私は中断したくない長期的なジョブを実行しています。 したがって、この PCI デバイスをオンラインで再起動できるようにしたいと思います。(NIC を交換するかカーネルをダウングレードすることを提案する人がいますが、私の問題に対する有効な提案ではないので、考えを保留してください。)

これを実現するにはどうしたらよいか、あるいはそもそもそれが可能なのかについて、誰かヒントをくれませんか?

関連するdmesg:

Sep 08 10:51:39 miniserver kernel: WARNING: CPU: 10 PID: 0 at net/sched/sch_generic.c:525 dev_watchdog+0x21f/0x230
Sep 08 10:51:39 miniserver kernel: Modules linked in: rfcomm xt_CHECKSUM nvme_fabrics nft_chain_nat xt_MASQUERADE nf_nat xfrm_user xfrm_algo cmac algif_hash algif_skc>
Sep 08 10:51:39 miniserver kernel:  typec_ucsi btintel spi_nor hid_multitouch mei_pxp mei_hdcp kvm iwlmvm typec ee1004 mtd intel_rapl_msr snd_seq_midi btmtk i915 btrf>
Sep 08 10:51:39 miniserver kernel:  asus_wmi ledtrig_audio sparse_keymap platform_profile hid_generic uas usbhid usb_storage nvidia_drm(POE) nvidia_modeset(POE) nvidi>
Sep 08 10:51:39 miniserver kernel: CPU: 10 PID: 0 Comm: swapper/10 Tainted: P           OE      6.2.0-32-generic #32~22.04.1-Ubuntu
Sep 08 10:51:39 miniserver kernel: r8169 0000:03:00.0 eno2: rtl_chipcmd_cond == 1 (loop: 100, delay: 100).

私が試したことはいくつかあります:

  • sudo bash -c 'echo "1" > /sys/bus/pci/devices/$NUMBER/reset'デバイスがすでに到達不能であるために、エラーが発生します。
  • sudo bash -c 'echo 1 > /sys/bus/pci/devices/0000\:03\:00.0/remove'実際にデバイスを削除しました。しかし、sudo bash -c 'echo 1 > /sys/bus/pci/rescan'元に戻りませんでした。dmesg: kernel: pci 0000:03:00.0: Unable to change power state from unknown to D0, device inaccessible PCIブリッジのホットリセットも試しました設定pci エラーは発生しませんUnable to change power stateが、再スキャンではデバイスがまったく検出されません。

ハードウェアの問題ではないと思います。複数のデバイスで同じ問題が発生しており、発生頻度もかなり低く、平均して 2 日に 1 回です。古いカーネルを実行しているデバイスでは、この問題は発生しませんでした。

関連情報