Kvm
PCI-STUB 與 VFIO-PCI
我想問你,使用 VFIO-PCI 比使用 PCI-STUB 有什麼優勢?
我找到了這篇文章“ PCI passthrough via OVMF ”,但他們並沒有說所有的優點,他們只是說 VFIO 有一些好處。
謝謝
PCI-STUB 是一個虛擬驅動程序。最初開發它是因為最初的 KVM 設備分配實際上並沒有作為主機驅動程序綁定到分配的設備,它只是簡單地抓取設備並開始使用它。由於 KVM 不是正確的設備驅動程序,當 KVM 將其分配給使用者時,另一個主機驅動程序可能會嘗試綁定到該設備。引入了 pci-stub 驅動程序來佔用設備的驅動程序插槽,而 KVM 則使用它。
與 pci-stub 不同,vfio 是使用者空間驅動程序的完整介面。它提供對設備的安全、隔離和受 IOMMU 保護的訪問。
vfio的優點:
- pci-stub 通常內置在核心中,這允許它比可載入模組的驅動程序更早地綁定到設備。通過這種設置,我們可以在主機驅動程序訪問設備之前指示 pci-stub 綁定到設備,這樣我們就可以將設備保持在原始狀態以分配給來賓。
- vfio 的另一個較小的案例是 IOMMU 分組。如果您有一個包含多個設備的組,則該組中的所有設備必須綁定到兼容的驅動程序,否則 vfio 將認為該組不可行。這是為了防止主機驅動程序與使用者控制的設備位於同一組中,因為它們不會相互隔離。使用 pci-stub,我們知道該驅動程序不會代表主機啟動任何 DMA,因此我們認為它是兼容的。
因此,如果您的 IOMMU 組中有端點,您需要對其進行一些操作以使該組可行,但您想確保使用者無權訪問它,您可以將設備綁定到 pci-stub。與將設備綁定到 vfio-pci 相比,這增加了一點額外的保護,因為受感染的使用者無法簡單地打開組中通過 vfio 介面綁定到 vfio-pci 的其他設備。