Portanto, para encurtar a história, a única maneira de um IOMMU ajudá-lo é se você começar a atribuir recursos de HW diretamente à VM. Apenas ter isso não torna as coisas mais rápidas.
Ajudaria a saber exatamente o que placa-mãe / CPU está anunciando esse recurso. O IOMMU é um mecanismo de mapeamento IO específico do sistema e pode ser usado com a maioria dos dispositivos.
O IOMMU soa como um nome genérico para Intel VT-d e AMD IOV. Nesse caso eu não acho que você pode multiplexar dispositivos, é muito parecido com PCI passthrough antes de todas essas instruções sofisticadas de virtualização existirem :). SR-IOV é diferente, o próprio periférico deve ter o apoio. O HW sabe que está sendo virtualizado e pode delegar um HW fatia de si mesmo para a VM. Muitas VMs podem conversar com um dispositivo SR-IOV simultaneamente com uma sobrecarga muito baixa.
A única coisa mais rápida do que o SR-IOV é a passagem PCI, embora nesse caso apenas uma VM possa fazer uso desse dispositivo, nem mesmo o sistema operacional do host pode usá-lo. A passagem PCI seria útil, por exemplo, para uma VM que executa um banco de dados intenso que se beneficiaria de estar conectado a uma SAN FibreChannel.
Aproximar-se do HW tem limitações, no entanto, torna suas VMs menos portáteis para implantações que exigem migração ao vivo, por exemplo. Isso se aplica a SR-IOV e passagem PCI.
As implantações de Linux virtualizadas padrão geralmente usam o VirtIO , que é bastante rápido para começar.