On Tue, Dec 13, 2011 at 10:02:24AM +0200, Dor Laor wrote:
Hi,
I read the design here and I like to make sure that the future road map will expand beyond the current scope.
The current design totally rely on libvirt and does not parse the content of the PCI addressing. That's really really basic. The user should be able to specify pci slot allocation of his devices through the gui. I guess you won't be able to do that w/ the current scheme.
Also, what about devices that can't be hot plug (like qxl)? You need to reveal this info to the user. Currently we have ability in the kvm bios (seabios) to automatically disable the host plug of some critical devices like the vga driver (qxl) and others. The user should be allowed to hot plug/unplug only allowed devices.
You have to make your design work w/ pci bridges since we'll add it to qemu and once there is such VM (management should enable the bridge) there will be more pci devices available to it.
The general principle from libvirt is that there are two elements to be tracked, the actual per-device <address> element, and at the VM level one or more <controller> device elements. Currently we don't expose any <controller> devices for PCI, since we only have a single PCI root complex and single PCI bus. We do, however, use <controller> for SCSI, CCID, etc, etc. In the future when we add support for PCI bridges, or PCI root complexes, then we'll add new <controller> devices to represent them.
Regards, Daniel