On Tue, 2012-08-14 at 08:12 +0100, Stefan Hajnoczi wrote: > On Tue, Jul 31, 2012 at 11:18:15PM -0600, Alex Williamson wrote: > > This adds the core of the QEMU VFIO-based PCI device assignment driver. > > To make use of this driver, enable CONFIG_VFIO, CONFIG_VFIO_IOMMU_TYPE1, > > and CONFIG_VFIO_PCI in your host Linux kernel config. Load the vfio-pci > > module. To assign device 0000:05:00.0 to a guest, do the following: > > > > for dev in $(ls /sys/bus/pci/devices/0000:05:00.0/iommu_group/devices); 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 > > Both vfio-pci and the old driver successfully match the $vendor:$device. > What happens when another $vendor:$device PCI adapter is hotplugged into > the host? > > Is there a way to bind vfio-pci on a per-adapter basis instead of a > per-$vendor:$device? There's also a remove_id sysfs entry so we can be a little more strategic, this was just an example. We can also re-order new_id vs unbind so that we need to manually unbind->bind the device. There's still an opportunity to race with a hotplug during this interaction though. I think this is the best Linux currently offers for dynamic driver binding though. Thanks, Alex -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html