No, I was under the impression that since they were in the IOMMU group that
they must be attached together. I will try it without (not sure if the
driver for some reason requires both to be present on the guest system; I'm
not particularly savvy with PCI bus programming).

On Wed, Feb 24, 2016 at 5:12 PM Alex Williamson <alex.william...@redhat.com>
wrote:

> On Wed, 24 Feb 2016 20:04:08 +0000
> Nicholas Andre <n...@axfp.org> wrote:
>
> > I am attempting to attach PCIe devices in passthrough to my KVM domain. I
> > have two devices in one IOMMU group (#28):
> >
> > 03:00.0 PCI bridge: Texas Instruments XIO2001 PCI Express-to-PCI Bridge
> > 04:00.0 Multimedia audio controller: Texas Instruments TMS320C6414
> > TMS320C6415 TMS320C6416
> >
> > and lspci -n values:
> >
> > 03:00.0 0604: 104c:8240
> > 04:00.0 0401: 104c:a106
> >
> > Both of which are attached to my KVM domain with managed configuration.
> >
> > I am running Ubuntu 14.04. I have:
> >
> >    - Installed KVM, set up domains, ensured KVM and vfio-pci modules are
> >    loaded
> >    - Set intel_iommu=on on the kernel command line and verified it is
> >    enabled with dmesg
> >    - kvm-ok prints acceleration is all set, VT-d is supported on the
> chipset
> >    - Verified that the 03:00.0 device does not have a driver currently
> >    listed under ls -l /sys/bus/pci/devices/0000\:03\:00.0/ though it does
> >    have a firmware listed.
> >
> > When attempting to start the VM I get:
> >
> > virsh # start rivendell
> > error: Failed to start domain rivendell
> > error: Failed to bind PCI device '0000:03:00.0' to vfio-pci: No such
> device
> >
> > and under syslog I get what I believe to be the PCIe EINVAL code:
> >
> > Feb 23 19:46:46 tupac kernel: [  214.159625] vfio-pci: probe of
> > 0000:03:00.0 failed with error -22
> >
> > Trying to do this manually: I do this to bind the devices to vfio-pci:
> >
> > # echo "104c a106" > /sys/bus/pci/drivers/vfio-pci/new_id
> > # echo "104c 8240" > /sys/bus/pci/drivers/vfio-pci/new_id
> >
> > Then:
> >
> > root@tupac:~# echo "0000:03:00.0" > /sys/bus/pci/drivers/vfio-pci/bind
> > bash: echo: write error: No such device
> >
> > However, the multimedia controller appears AOK:
> >
> > root@tupac:~# ls -l /sys/bus/pci/drivers/vfio-pci/
> > total 0
> > lrwxrwxrwx 1 root root    0 Feb 24 13:07 0000:04:00.0 ->
> > ../../../../devices/pci0000:00/0000:00:02.2/0000:03:00.0/0000:04:00.0
> > --w------- 1 root root 4096 Feb 24 13:05 bind
> > lrwxrwxrwx 1 root root    0 Feb 24 13:07 module ->
> ../../../../module/vfio_pci
> > --w------- 1 root root 4096 Feb 24 13:15 new_id
> > --w------- 1 root root 4096 Feb 23 19:47 remove_id
> > --w------- 1 root root 4096 Feb 23 19:43 uevent
> > --w------- 1 root root 4096 Feb 24 13:07 unbind
> >
> > 03:00.0 (which is a PCIe to PCI adapter) is not showing up under
> vfio-pci's
> > devices. They're in the same IOMMU group so I don't think I can attach
> them
> > individually.
> >
> > What is causing this? Is this some issue with the presence of the regular
> > old PCI bus in the system behind the adapter?
>
> vfio-pci does not support bridges nor is there any reason to bind the
> bridge to vfio-pci.  The IOMMU group requirement is satisfied by the
> bridge not being bound to any drivers.  We used to have some bridge
> drivers whitelisted to allow the group to be viable with them attached,
> newer kernels skip testing the driver of bridge devices.  Is there some
> specific reason you want to attach this bridge to the VM?  Thanks,
>
> Alex
>

Reply via email to