PCI IDが変更される原因

PCI IDが変更される原因

lspciRHEL 7.2システムで実行中に、イーサネットアダプタがPCIバスIDを変更したことがわかりました。以下の例では、「02:00.x」から「03:00.x」に変更されています。

  1. 原因は何ですか?
  2. 特定の住所に強制する方法はありますか?

今後:

[root@rhel:~]# lspci | grep Ethernet
02:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
02:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)

現在:

[root@rhel:~]# lspci | grep Ethernet
03:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
03:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)

答え1

ルートバス(通常はPCのACPIなどのプラットフォームバス)を除くすべてのバスはルートバスからブリッジされ、その順序は列挙に依存します。

現在、一般的にバス列挙はほとんど決定的です。バス上でデバイスを見つける順序は通常静的ですが、これは保証されておらず、両方のバスブリッジを接続するときに列挙は並列です。

  1. ACPIバス列挙開始
  2. PCIe ブリッジ 1 は ACPI バスにあり、バス ID 0 が割り当てられます。
  3. PCIeバス0列挙開始
  4. ACPI バスで PCIe ブリッジ 2 を見つけ、バス ID 1 を割り当てます。
  5. PCIe バス 0 から PCI ブリッジ 1 を探し、バス ID 2 を割り当てます。
  6. ACPI バスで PCIe ブリッジ 3 を見つけ、バス ID 3 を割り当てます。

2 つの列挙スレッド間に順序がないため、PCI ブリッジは ID 1、2、または 3 を取得できます。

答え2

コメントできないので、「回答」で十分そうです。

システムをアップグレードしましたか?私はこの分野の専門家は決してありませんが、既存のPCIバスにPCI / PCIスロットを追加した場合、この数字は変わる可能性があると思います。私が間違っている場合はコメントを残したいのですが、私の知識が間違っている場合は、誰かが私を修正してくれると確信しています。

関連情報