On Fri, 2008-12-19 at 14:09 +0000, Daniel P. Berrange wrote: > On Fri, Dec 19, 2008 at 02:04:43PM +0000, Mark McLoughlin wrote: > > Hi Jason, > > > > On Tue, 2008-12-16 at 03:02 +0100, Jason Krieg wrote: > > > Hi, > > > > > > This patch adds support for the -pcidevice host=bus:dev.func > > > added in kvm-79 > > > > > > I used the structure as already defined in src/domain_conf.h > > > > > > so analog to usb one now can add pci devices > > > > > > as example: > > > > > > lspci: 06:02.0 Network controller: Eicon Networks Corporation Diva > > > Server 2FX (rev 01) > > > > > > > > > <hostdev mode='subsystem' type='pci'> > > > <source> > > > <address bus="0x06" slot="0x02" function="0x0"/> > > > </source> > > > </hostdev> > > > > > > > > > values are hex so for bus: 0 to ff, slot: 0 to 1f and function: 0 to 7 > > > > > > Hope this patch is useful it applies to libvirt-0.5.1 and cvs checkout > > > from today (with some hunks) > > > > The patch looks good to me and makes perfect sense; good stuff. > > > > One thing that might be worth thinking about is whether we can > > automatically unload host drivers for a device when assigning; e.g. if > > you didn't do "rmmod e1000e" before assigning a NIC to a guest, then the > > guest would just fail to start. > > Unloading isn't correct because that impact alls devices associated > with the device. You just want to unbind te specific device using > the 'unbind' file in sysfs. Yeah, and in 2.6.29 we have a pci-stub driver to prevent anything re-attaching to the device, so e.g. $> echo "8086 10f5" > /sys/bus/pci/drivers/pci-stub/new_id $> echo -n 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind $> echo -n 0000:00:19.0 > /sys/bus/pci/drivers/pci-stub/bind > I dont think we should do this automatically > though - you wouldn't want to accidentally, automatically remotely > unbind your network. > > I think the node device driver APIs could report what driver is > associated with each device they know, and provide an API to bind > and unbind the device to/from the driver. Its easy enough for a mgmt > app to automatically / seemlessly invoke such an API, after validating > that the PCI device isn't asociated with the ethernet device its talking > to libvirt over .. The management app can do that validation when setting up the guest, but not always when starting the guest - e.g. thinking about autostarted guests ... Cheers, Mark. -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list