Kvm-Virtualization
PCI 設備的 ID 指的是什麼,哪些與設置直通相關?
在使用 virsh 設置域時,我一直認為 PCI 卡的“插槽”是指它所在的主機板上的哪個插槽。但是,情況似乎並非如此,而是分配了兩個不同物理插槽中的卡virsh 到同一個“槽”。前兩個設備是 GTX 1070 的一部分,第三個是 Sonnet PCI USB 卡。
另外,這兩個不同的匯流排 ID 是什麼?第一個的bus ID是67還是43?
~$ virsh nodedev-dumpxml pci_0000_43_00_0 <device> <name>pci_0000_43_00_0</name> <path>/sys/devices/pci0000:40/0000:40:01.3/0000:43:00.0</path> <parent>pci_0000_40_01_3</parent> <driver> <name>nouveau</name> </driver> <capability type='pci'> <domain>0</domain> <bus>67</bus> <slot>0</slot> <function>0</function> <product id='0x1b81'>GP104 [GeForce GTX 1070]</product> <vendor id='0x10de'>NVIDIA Corporation</vendor> <iommuGroup number='39'> <address domain='0x0000' bus='0x43' slot='0x00' function='0x0'/> <address domain='0x0000' bus='0x43' slot='0x00' function='0x1'/> </iommuGroup> <pci-express> <link validity='cap' port='0' speed='8' width='16'/> <link validity='sta' speed='2.5' width='8'/> </pci-express> </capability> </device>
~$ virsh nodedev-dumpxml pci_0000_43_00_1 <device> <name>pci_0000_43_00_1</name> <path>/sys/devices/pci0000:40/0000:40:01.3/0000:43:00.1</path> <parent>pci_0000_40_01_3</parent> <driver> <name>snd_hda_intel</name> </driver> <capability type='pci'> <domain>0</domain> <bus>67</bus> <slot>0</slot> <function>1</function> <product id='0x10f0'>GP104 High Definition Audio Controller</product> <vendor id='0x10de'>NVIDIA Corporation</vendor> <iommuGroup number='39'> <address domain='0x0000' bus='0x43' slot='0x00' function='0x0'/> <address domain='0x0000' bus='0x43' slot='0x00' function='0x1'/> </iommuGroup> <pci-express> <link validity='cap' port='0' speed='8' width='16'/> <link validity='sta' speed='2.5' width='8'/> </pci-express> </capability> </device>
~$ virsh nodedev-dumpxml pci_0000_0a_00_0 <device> <name>pci_0000_0a_00_0</name> <path>/sys/devices/pci0000:00/0000:00:03.1/0000:0a:00.0</path> <parent>pci_0000_00_03_1</parent> <driver> <name>xhci_hcd</name> </driver> <capability type='pci'> <domain>0</domain> <bus>10</bus> <slot>0</slot> <function>0</function> <product id='0x1242'>ASM1142 USB 3.1 Host Controller</product> <vendor id='0x1b21'>ASMedia Technology Inc.</vendor> <iommuGroup number='18'> <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/> </iommuGroup> <numa node='0'/> <pci-express> <link validity='cap' port='1' speed='5' width='2'/> <link validity='sta' speed='5' width='2'/> </pci-express> </capability> </device>
“匯流排”是指來自主機板晶片組的 PCI/PCI-X/PCI express 匯流排,設備連接到該匯流排。這可能是也可能不是通過板上的實際插槽;例如,板載乙太網埠與接受影片卡的擴展槽位於單獨的匯流排上。
“插槽”是指 PCI 匯流排上連接單個物理設備的空間,它在電氣上與該匯流排上的其他“插槽”不同。例如,兩個不同的 USB 控制器佔用兩個不同的插槽。或者您的顯卡佔用了與 RAID HBA 不同的插槽。
請注意,雖然您詢問了使用同一插槽的兩個不同的物理設備,但您在問題中發布的任何內容都沒有證明這種情況正在發生。確實,它不會發生。插槽在物理上是匯流排的一部分,一條匯流排上的插槽 0 與另一條匯流排上的插槽 0 不同。
“功能”是指提供不同功能的物理設備的子集。例如,板載乙太網設備對每個物理乙太網埠都有單獨的功能。您的影片卡具有獨立的影片控制器和音頻設備功能。
關於直通,單個匯流排/插槽/功能標識設備或其一部分,可以單獨地直通到 VM。
最後,67 和 43 是同一個數字。前者是十進制,正如它顯示為 0x43 所暗示的那樣,後者是十六進制。