[vfio-users] VFIO PCI passthrough problems booting VM

Alex Williamson alex.l.williamson at gmail.com
Fri Sep 18 12:56:54 UTC 2015


On Fri, Sep 18, 2015 at 4:14 AM, Phill Edwards <philledwards at gmail.com>
wrote:

> That limitation has it's reasons and exists in systems like virtualbox or
>> hyper-v.
>> But afaik, if you have two devices in one group, and they both are bound
>> to vfio-pci, you can attach them to different VMs.
>>
> OK, so this is what I've done. The devices PCI devices having that are in
> the same IOMMU group and need to be assigned to different VMs are:
>
> 05:00.0 Ethernet controller [0200]: Intel Corporation 82546EB Gigabit
> Ethernet Controller (Copper) [8086:1010] (rev 01)
>         Subsystem: Compaq Computer Corporation NC7170 Gigabit Server
> Adapter [0e11:00db]
>         Kernel driver in use: e1000
> 05:00.1 Ethernet controller [0200]: Intel Corporation 82546EB Gigabit
> Ethernet Controller (Copper) [8086:1010] (rev 01)
>         Subsystem: Compaq Computer Corporation NC7170 Gigabit Server
> Adapter [0e11:00db]
>         Kernel driver in use: e1000
> 05:02.0 Multimedia video controller [0400]: Conexant Systems, Inc.
> CX23880/1/2/3 PCI Video and Audio Decoder [14f1:8800] (rev 05)
>         Subsystem: KWorld Computer Co. Ltd. KWorld/VStream XPert DVB-T
> [17de:08a6]
> 05:02.2 Multimedia controller [0480]: Conexant Systems, Inc. CX23880/1/2/3
> PCI Video and Audio Decoder [MPEG Port] [14f1:8802] (rev 05)
>         Subsystem: KWorld Computer Co. Ltd. KWorld/VStream XPert DVB-T
> [17de:08a6]
>
> This PCI device also comes up in group 11 so Ive also bound this to
> vfio-pci:
> 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e]
> (rev a4)
>
>
> From what I understand the way to bind them to vfio-pci is on GRUB_CMDLINE_LINUX
> in /etc/sysconfig/grub:
> GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb
> quiet iommu=pt intel_iommu=on vfio_iommu_type1.allow_unsafe_interrupts=1
> vfio-pci=8086:1010,14f1:8800,14f1:8802,8086:244e"
>
> lsmod shows that the vfio-pci kernel module isn't loaded after booting so
> I have to run modprobe vfio-pci on the command line to load it. is this a
> problem?
>
> I guess I must be doing something wrong as I'm still getting this error:
>
> Unable to complete install: 'internal error: process exited while
> connecting to monitor: 2015-09-18T10:13:29.896796Z qemu-kvm: -device
> vfio-pci,host=05:02.0,id=hostdev0,bus=pci.0,addr=0x8: vfio: error, group 11
> is not viable, please ensure all devices within the iommu_group are bound
> to their vfio bus driver.
> 2015-09-18T10:13:29.896823Z qemu-kvm: -device
> vfio-pci,host=05:02.0,id=hostdev0,bus=pci.0,addr=0x8: vfio: failed to get
> group 11
> 2015-09-18T10:13:29.896835Z qemu-kvm: -device
> vfio-pci,host=05:02.0,id=hostdev0,bus=pci.0,addr=0x8: Device initialization
> failed.
> 2015-09-18T10:13:29.896847Z qemu-kvm: -device
> vfio-pci,host=05:02.0,id=hostdev0,bus=pci.0,addr=0x8: Device 'vfio-pci'
> could not be initialized
>
>
> Aaaarrrrggggghhhh!!!! Why is this so damn difficult...
>

I've already explained this.  It's a hardware limitation.  You cannot do
what you want.  You can either assign all of the devices to a single VM or
none of them to a VM.  The IOMMU cannot differentiate the devices behind
the bridge in order to provide separate IOMMU translations.  Get PCIe
devices if you want this sort of flexibility.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20150918/ab7bde09/attachment.htm>


More information about the vfio-users mailing list