I'm doing exactly this with no significant problem.  The way I handle it is
that I've got a script that binds the specific card to vfio-pci at runtime,
and I call that as a part of my startup script for the VM.

/usr/local/bin/vfio-bind
#!/bin/bash

modprobe vfio-pci

for dev in "$@"; do
        vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
        device=$(cat /sys/bus/pci/devices/$dev/device)
        if [ -e /sys/bus/pci/devices/$dev/driver ]; then
                echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
        fi
        echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
done

Then I just add "-device vfio-pci,host=<address>" to the args to qemu.
Works like a charm.  The script is called with the format "0000:06:00.0",
the args to qemu are "06:00.0".  Your address may vary, of course.

On Tue, Oct 25, 2016 at 6:11 AM, Andrei Grigore <andrei....@gmail.com>
wrote:

> Hi,
>
> Does anyone know of an easy way to pass through a USB PCI controller in
> QEMU w/o libvirt? Since libvirt automatically binds the controller to VFIO,
> without it I get VFIO not found error messages.
>
> I am getting slightly better performance with a QEMU script rather than
> using virt-manager. I cannot bind them on boot since I have the same id for
> all USBs.
>
> Thanks!
>
> _______________________________________________
> vfio-users mailing list
> vfio-users@redhat.com
> https://www.redhat.com/mailman/listinfo/vfio-users
>
>
_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://www.redhat.com/mailman/listinfo/vfio-users

Reply via email to