PCI-STUB vs VFIO-PCI

3

Eu gostaria de perguntar a você, qual é a vantagem de usar o VFIO-PCI sobre o PCI-STUB?

Eu encontrei este artigo " PCI passthrough via OVMF ", mas eles não dizem todas as vantagens, eles apenas dizem que o VFIO tem alguns benefícios.

Obrigado

    
por tomsk 06.12.2016 / 13:59

1 resposta

2

O PCI-STUB é um driver fictício. Foi originalmente desenvolvido porque a atribuição do dispositivo KVM original não se ligou realmente ao atribuído dispositivo como um driver de host, ele simplesmente pegou o dispositivo e começou a usar isto. Como o KVM não é um driver de dispositivo adequado, outro driver de host pode tentar vincular-se ao dispositivo enquanto o KVM o atribui a um usuário. O driver pci-stub foi introduzido para ocupar o slot do driver para o dispositivo enquanto o KVM fez uso dele.

Ao contrário do pci-stub, o vfio é uma interface completa para userspace drivers. Fornece acesso seguro, isolado e protegido pela IOMMU ao dispositivo.

Vantagens do vfio:

  1. O pci-stub é geralmente embutido no kernel, o que permite que ele se ligue a dispositivos anteriores aos drivers que são módulos carregáveis. Com essa configuração, podemos instruir o pci-stub a ligar-se aos dispositivos antes que o driver do host possa acessá-los, para que possamos manter o dispositivo em um estado puro para atribuição a um convidado.

  2. O outro caso de uso menor com o vfio é com o agrupamento IOMMU. Se vocês ter um grupo com vários dispositivos, todos os dispositivos do grupo devem ser ligado a drivers compatíveis ou então vfio irá considerar o grupo não viável. Isso se destina a impedir que os drivers do host estejam dentro dos mesmos grupo como um dispositivo controlado pelo usuário como eles não seriam isolados de entre si. Com pci-stub, sabemos que este driver não inicia qualquer DMA em nome do host, por isso consideramos compatível.

    Assim, se você tem pontos de extremidade em seu grupo IOMMU com os quais precisa fazer alguma coisa para tornar o grupo viável, mas quer ter certeza de que o usuário não tem acesso a ele, você pode vincular o dispositivo a pci-stub . Isso adiciona um pouco de proteção extra ao vincular o dispositivo ao vfio-pci, pois um usuário comprometido não pode simplesmente abrir outros dispositivos dentro do grupo que estão vinculados ao vfio-pci através da interface vfio.

por 19.06.2018 / 06:33

Tags