KVM guest with SR-IOV virtual function won't start, error "IO MMU found"

Solution In Progress - Updated -

Issue

  • I am trying to get SR-IOV working with KVM on RH6.4.
    I have SR-IOV enabled FW/SW on my NIC's.
    I have intel_iommu=on set on grub.conf and dmesg shows Intel-IOMMU is enabled
Nov  6 09:17:51 hostname kernel: Intel-IOMMU: enabled

This is the section of XML pieces I'm adding to the VM guest.

<interface type='hostdev' managed='yes'>
 <source>
 <address type='pci' domain='0' bus='0x1' slot='0x0' function='0x1'/>
 </source>
</interface>

However, as soon as I try to start the VM, KVM/libvirt still complains that "I/O MMU" is not found, below is guest log from /var/log/libvirt/qemu

2013-11-06 16:53:46.649+0000: starting up
LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin /usr/libexec/qemu-kvm -name guestname
Domain id=6 is tainted: high-privileges
char device redirected to /dev/pts/0
No IOMMU found.  Unable to assign device "hostdev0"
qemu-kvm: -device pci-assign,configfd=27,host=01:00.1,id=hostdev0,bus=pci.0,addd
2013-11-06 16:53:47.212+0000: shutting down

Environment

  • Red Hat Enterprise Linux 6.4
  • KVM virtualization
  • SR-IOV-capable network interface (Mellanox Technologies MT27500 Family [ConnectX-3])

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content