35

My Motherboard's chipset supports this feature IOMMU, i've read (but not really understand) that it improves the VM performance by letting the VM make use of the actual physical hardware instead of the Virtual hardware.

Does this really bring a performance improvement in the VM? and if it does how can I make Virtualbox benefit from that?.

1 Answer 1

27

So long story short, the only way an IOMMU will help you is if you start assigning HW resources directly to the VM. Just having it doesn't make things faster.

It would help to know exactly what Motherboard/CPU is advertising this feature. IOMMU is a system specific IO mapping mechanism and can be used with most devices.

IOMMU sounds like a generic name for Intel VT-d and AMD IOV. In which case I don't think you can multiplex devices, it's a lot like PCI passthrough before all these fancy virtualization instructions existed :). SR-IOV is different, the peripheral itself must carry the support. The HW knows it's being virtualized and can delegate a HW slice of itself to the VM. Many VMs can talk to an SR-IOV device concurrently with very low overhead.

The only thing faster than SR-IOV is PCI passthrough though in that case only one VM can make use of that device, not even the host operating system can use it. PCI passthrough would be useful for say a VM that runs an intense database that would benefit from being attached to a FiberChannel SAN.

Getting closer to the HW does have limitations however, it makes your VMs less portable for deployments that require live migration for example. This applies to both SR-IOV and PCI passthrough.

Default virtualized Linux deployments usually use VirtIO which is pretty fast to begin with.

8
  • I read that from the User guide of my Motherboard, saying that if the Chipset supports it it could provide some sort of physical access to the Host hardware. Dec 7, 2011 at 4:54
  • I just read the Xen Wiki, IOMMU seems to do what SR-IOV does too, But i don't use Xen, and apparently Virtualbox doesn't make good use of this. Dec 7, 2011 at 5:07
  • No, most computers don't have an IOMMU. Maybe you are thinking IO-APIC?
    – psusi
    Dec 7, 2011 at 5:47
  • 1
    Actually this Wikipedia article explains this pretty well: en.wikipedia.org/wiki/X86_virtualization . The big win for IOMMU support is that we can change which devices we pass through at run time. Before we had to specify a range of devices in the kernel arg list and only those peripherals were eligible for passthrough. IOMMU lets you remap devices as you see fit. Again this is exclusive access, either your host is using it, or one of the VMs is. This is really a server centric feature.
    – ppetraki
    Dec 7, 2011 at 15:53
  • 2
    @UriHerrera I recommend you use KVM, which also supports both Intel's and AMD's virtualization extensions. It's more flexible and has more features including those found in VirtualBox.
    – Oxwivi
    Dec 7, 2011 at 16:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .