qemu-devel
[Top][All Lists]
Advanced

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

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


From: Alex Williamson
Subject: Re: [Qemu-devel] [PATCH 2/3] vfio: vfio-pci device assignment driver
Date: Tue, 14 Aug 2012 07:51:39 -0600

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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]