Saya ingin bertanya, apa keuntungan menggunakan VFIO-PCI dibandingkan PCI-STUB?
Saya menemukan artikel ini “PCI passthrough via OVMF” , tetapi mereka tidak mengatakan semua kelebihan, mereka hanya mengatakan bahwa VFIO memiliki beberapa manfaat.
Terima kasih
Jawaban yang Diterima:
PCI-STUB adalah driver tiruan. Ini awalnya dikembangkan karena
penetapan perangkat KVM asli tidak benar-benar mengikat ke perangkat
yang ditetapkan sebagai driver host, itu hanya mengambil perangkat dan mulai menggunakannya
. Karena KVM bukan driver perangkat yang tepat, driver host lain dapat mencoba mengikat ke perangkat saat KVM menetapkannya ke pengguna. Driver pci-stub diperkenalkan untuk menempati slot driver untuk perangkat sementara KVM memanfaatkannya.
Berbeda dengan pci-stub, vfio adalah antarmuka lengkap untuk driver
userspace. Ini memberikan akses yang aman, terisolasi, dan dilindungi IOMMU ke
perangkat.
Kelebihan vfio:
-
pci-stub sering dibangun ke dalam kernel, ini memungkinkannya untuk mengikat ke perangkat lebih awal dari driver yang merupakan modul yang dapat dimuat. Dengan penyiapan ini, kami dapat menginstruksikan pci-stub untuk mengikat ke perangkat sebelum driver host dapat mengaksesnya sehingga kami dapat menjaga perangkat dalam keadaan murni untuk ditugaskan ke
tamu. -
Kasus penggunaan lain yang lebih rendah dengan vfio adalah dengan pengelompokan IOMMU. Jika Anda
memiliki grup dengan beberapa perangkat, semua perangkat dalam grup tersebut harus
terikat ke driver yang kompatibel atau vfio akan menganggap grup
tidak dapat digunakan. Ini dimaksudkan untuk mencegah driver host dalam grup
yang sama sebagai perangkat yang dikontrol pengguna karena mereka tidak akan diisolasi dari
satu sama lain. Dengan pci-stub, kami tahu driver ini tidak menginisiasi
DMA apa pun atas nama host, jadi kami menganggapnya kompatibel.Jadi, jika Anda memiliki titik akhir di grup IOMMU yang perlu Anda lakukan sesuatu untuk membuat grup tersebut layak, tetapi Anda ingin memastikan pengguna tidak memiliki akses ke sana, Anda dapat mengikat perangkat ke pci-stub. Ini menambahkan sedikit perlindungan ekstra vs mengikat perangkat ke vfio-pci karena pengguna yang disusupi tidak bisa begitu saja membuka perangkat lain dalam grup yang terikat ke vfio-pci melalui antarmuka vfio.