GNU/Linux >> Linux Esercitazione >  >> Linux

Pci-stub Vs Vfio-pci?

Vorrei chiederti, qual è il vantaggio dell'utilizzo di VFIO-PCI rispetto a PCI-STUB?

Ho trovato questo articolo "Passthrough PCI via OVMF", ma non dicono tutti i vantaggi, dicono solo che VFIO ha alcuni vantaggi.

Grazie

Risposta accettata:

PCI-STUB è un driver fittizio. È stato originariamente sviluppato perché
l'assegnazione del dispositivo KVM originale non si collegava effettivamente al dispositivo
assegnato come driver host, ma semplicemente prendeva il dispositivo e iniziava a usarlo
. Poiché KVM non è un driver di dispositivo appropriato, un altro driver host potrebbe tentare di collegarsi al dispositivo mentre KVM lo aveva assegnato a un utente. Il driver pci-stub è stato introdotto per occupare lo slot del driver per il dispositivo mentre KVM lo utilizzava.

A differenza di pci-stub, vfio è un'interfaccia completa per i driver userspace
. Fornisce un accesso sicuro, isolato e protetto da IOMMU al
dispositivo.

Vantaggi di vfio:

  1. pci-stub è spesso integrato nel kernel, questo gli consente di collegarsi ai dispositivi prima dei driver che sono moduli caricabili. Con questa configurazione possiamo indicare a pci-stub di collegarsi ai dispositivi prima che il driver host possa accedervi in ​​modo da poter mantenere il dispositivo in uno stato originale per l'assegnazione a un
    guest.

  2. L'altro caso d'uso minore con vfio è con il raggruppamento IOMMU. Se
    hai un gruppo con più dispositivi, tutti i dispositivi nel gruppo devono essere
    associati a driver compatibili, altrimenti vfio considererà il gruppo
    non valido. Ciò ha lo scopo di impedire che i driver host all'interno dello stesso gruppo
    di un dispositivo controllato dall'utente non vengano isolati l'uno dall'altro
    . Con pci-stub sappiamo che questo driver non avvia alcun
    DMA per conto dell'host, quindi lo consideriamo compatibile.

    Pertanto, se hai degli endpoint nel tuo gruppo IOMMU con cui devi fare qualcosa per rendere il gruppo fattibile, ma vuoi assicurarti che l'utente non abbia accesso ad esso, puoi associare il dispositivo a pci-stub. Ciò aggiunge un po 'di protezione aggiuntiva rispetto al collegamento del dispositivo a vfio-pci poiché un utente compromesso non potrebbe semplicemente aprire altri dispositivi all'interno del gruppo che sono vincolati a vfio-pci tramite l'interfaccia vfio.

Correlati:come determinare la codifica dei caratteri utilizzata da un terminale in un programma C/C++?
Linux
  1. comando setpci:configura il dispositivo PCI

  2. Bash:Nessuno spazio rimasto sul dispositivo

  3. Numero del dispositivo nell'output del comando stat

  4. Il dispositivo sshfs è occupato

  5. disabilitare un dispositivo PCI specifico all'avvio

Come installare un driver di dispositivo su Linux

Tutto è file in Linux – Parte 1

Replicare una scheda SD?

Spazio esaurito sul dispositivo

Utilizzare un dispositivo su SSH?

Crea un dispositivo a blocchi nella RAM