[Engine-devel] Stable PCI Addresses design wiki
Livnat Peer
lpeer at redhat.com
Thu Dec 1 10:22:50 UTC 2011
On 11/30/2011 05:54 PM, Daniel P. Berrange wrote:
> On Wed, Nov 30, 2011 at 10:06:37AM -0500, Eli Mesika wrote:
>> http://www.ovirt.org/wiki/Features/Design/StablePCIAddresses
>
> My primary comment on this is that you likely don't want to restrict
> yourself to PCI addresses.
>
> If RHEVM intends to use virtio-serial controllers you want to maintain
> stable virtio serial addresses
>
> If RHEVM intends to use CCID smartcard controllers you want to maintain
> stable CCID device addresses
>
> If RHEVM intends to use SCSI controllers you will want to maintain
> SCSI drive addresses
>
> If RHEVM intends to use USB controllers you will want to maintain
> USB device addresses
>
> I think you get the idea :-) In general you can say that every single
> device listed in the XML will ultimately have an address associated
> with it. The type address will vary depending on what type of controller
> the device is attached to.
>
> In addition, when you start dealing with these other non-PCI address
> types, you will also need to start dealing with controller devices.
>
> eg, if you add a SCSI disk to the XML
>
> <disk type='file' device='disk'>
> <driver name='qemu' type='raw'/>
> <source file='/var/lib/libvirt/images/test/disk0.raw'/>
> <target dev='sda' bus='scsi'/>
> </disk>
>
> First of all libvirt will want to assign an address to this drive
>
> <disk type='file' device='disk'>
> <driver name='qemu' type='raw'/>
> <source file='/var/lib/libvirt/images/test/disk0.raw'/>
> <target dev='sda' bus='scsi'/>
> <address type='drive' controller='0' bus='0' unit='0'/>
> </disk>
>
> Then, if the corresponding controller does not exist already, libvirt
> will auto-add a controller device, which itself has an address you will
> need to track:
>
> <controller type='scsi' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
> </controller>
>
>
> In addition, when QEMU gains support for PCI bridges, or multiple PCI
> root complexes, there will also be the possibility of dealing with
> multiple PCI controllers in the XML too.
>
> So even if you only implement PCI address support in the first iteration,
> I'd really encourage you to at least consider how you will cope with the
> other address types sooner, rather than later.
>
> Regards,
> Daniel
Hi Eli,
- I suggest changing the feature name from stable PCI addresses to
stable device addresses, then document which devices are supported. I
think the first version includes PCI, VirtIO Serial, SCSI, IDE, CCID,
actually anything libvirt supports - right?
- I am missing in the documentation the format of the device addresses
as interchanged between RHEVM and VDSM, specifically i am interested why
use XML and not JSON format for that data.
Thanks, Livnat
More information about the Engine-devel
mailing list