[Engine-devel] Stable PCI Addresses design wiki
Eli Mesika
emesika at redhat.com
Thu Dec 1 11:21:41 UTC 2011
----- Original Message -----
> From: "Daniel P. Berrange" <berrange at redhat.com>
> To: "Eli Mesika" <emesika at redhat.com>
> Cc: engine-devel at ovirt.org
> Sent: Wednesday, November 30, 2011 5:54:34 PM
> Subject: Re: [Engine-devel] Stable PCI Addresses design wiki
>
> 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.
Sure, this is a bad name, have changed that to "Stable Device Addresses"
In the term Device we include PCI, VirtIO Serial, SCSI, IDE, CCID and actually anything libvirt supports.
Page was changed to :
http://www.ovirt.org/wiki/Features/Design/StableDeviceAddresses
Thanks
>
> 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
> --
> |: http://berrange.com -o-
> | http://www.flickr.com/photos/dberrange/ :|
> |: http://libvirt.org -o-
> | http://virt-manager.org :|
> |: http://autobuild.org -o-
> | http://search.cpan.org/~danberr/ :|
> |: http://entangle-photo.org -o-
> | http://live.gnome.org/gtk-vnc :|
>
More information about the Engine-devel
mailing list