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.
Another thing to think about for PCI device assignment is how we can
allow a management tool to filter the devices returned from the device
enumeration API to only those devices that could successfully be
assigned to a guest.
This gets quite tricky - if you don't have e.g. VT-d or its a
conventional PCI device (in some cases) or if the device is in use or if
its a graphics card (currently), then it's just not going to work.
We clearly don't want to have a heap of logic in libvirt about what kind
of devices can be assigned - and anyway, that logic would be ever
changing - so, we perhaps want a ioctl to query KVM as to whether a
device is assignable.
Cheers,
Mark.