Dividindo um grupo IOMMU para passagem PCIe

1

Estou tentando passar minha placa gráfica para uma máquina virtual usando kvm e libvirt. Recebo uma mensagem de erro quando tento passar a placa sem vincular uma placa ethernet que parece estar no mesmo grupo IOMMU para o driver vfio-pci.

Eu gostaria de usar essa porta ethernet no host, então estou querendo saber se posso dividir o grupo IOMMU. A referência sobre essas coisas parece ser esta postagem no blog que menciona perto do fundo que

Newer kernels than used for this example will split this IOMMU group as support has been added to expose the isolation capabilities of this chipset, even though it does not support PCIe ACS directly.

Mas eu estou no kernel 4.10, e este post do blog é de 2014, então estou me perguntando se houve algum novo desenvolvimento no espaço.

Minha pergunta básica é que posso descobrir que o grupo IOMMU é divisível e, em caso afirmativo, como posso dividi-lo?

    
por Max Ehrlich 25.02.2017 / 05:51

1 resposta

1

Eu não consegui encontrar nenhum método nativo de dividir o grupo IOMMU: se ele é divisível, ele será dividido na inicialização

No entanto, há um patch que substitui o canal do IOMMU

este tópico irá levá-lo a este patch que é construído com sucesso contra o kernel 4.8 que vem com o Ubuntu 16.10 por padrão.

Após aplicar este patch e criar o novo kernel, meus grupos IOMMU foram divididos e o repasse funciona como eu quero. Note que é possível vazar DMA's através de dispositivos em teoria, mas eu nunca ouvi falar disso acontecendo e funciona perfeitamente para mim.

    
por 28.02.2017 / 14:17