On Wed, 2016-07-20 at 16:09 +0200, Andrea Bolognani wrote:
> It seems that we could solve this by just changing the logic in
> qemuDomainAssignDevicePCISlots() so that when it is auto-assigning
> addresses, it always uses 00:00.0 for the USB controller when guest
> arch is ppc64.
>
> Existing guests deployed from a libvirt version using -device won't
> be affected, because we'll have recorded a PCI address for that
> in the XML and continue to use that. ie the auto-allocation logic
> won't run for them.
>
> Existing guests deployed from a libvirt version using -usb should
> then get the fixed PCI address of 00:00.0 when they upgrade to the
> fix libvirt (assuming they didn't get run with a broken libvirt
> in between).
Mh, that could actually work! Thanks :)
I'll try to cook up a patch tomorrow.
Unfortunately Martin pointed out a problem with this plan:
even though they're not actually using it, old guests have
been assigned a PCI address for the USB controller. Which
means we can't tell whether
<controller type='usb' index='0'>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x03' function='0x0'/>
</controller
is an old guest that should be assigned the 00:00.0 address
or a new guest that should keep using the 00:03.0 address :(
--
Andrea Bolognani / Red Hat / Virtualization