Re: [PATCH 2/3] vfio: vfio-pci device assignment driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux