GNU/Linux >> Belajar Linux >  >> Linux

PCI-stub Vs Vfio-pci?

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:

  1. 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.

  2. 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.

Terkait:Bagaimana cara menentukan pengkodean karakter yang digunakan terminal dalam program C/C++?
Linux
  1. Utilitas Bluetooth tingkat rendah?

  2. Cara membuat perangkat blok virtual (perangkat loop/sistem file) di Linux

  3. uflash:perintah tidak ditemukan

  1. Bash:Tidak ada ruang tersisa di perangkat

  2. Nomor perangkat dalam keluaran perintah stat

  3. Gunakan perangkat melalui SSH?

  1. perangkat sshfs sedang sibuk

  2. Keluaran lsblk Linux

  3. Perangkat loop permanen?