On Fri, Feb 16, 2024 at 04:09:12PM +0100, Peter Krempa wrote:
On Wed, Feb 14, 2024 at 18:11:16 +0100, Andrea Bolognani wrote:
> + /* Make sure the 'none' USB controller doesn't have an address
> + * associated with it, as that would trip up later checks */
> + if (cont->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE)
> + cont->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE;
One thing I'm slightly unsure about is whether the removal of address
won't have effect on generation of other addresses and thus in certain
very weird situations could trip up the virDomainDefCheckABIStability check.
Since the usb controller itself was never seen by the guest ABI that
part will be okay, but not reserving the address for it could cause
issues.
Now for migration this shouldn't be a problem unless somebody is passing
very weird migration XMLs.
For new VMs it can theoretically cause re-ordering of devices on the PCI
bus.
For new VMs, the guest ABI has not been set in stone yet so even if
devices and controllers were to be shuffled around it wouldn't
matter.
For existing VMs, all addressess will have been recorded in the
domain XML and libvirt would never attempt to change them.
The point about migration is potentially a good one though. The
incoming XML will have the (default) model and address, but after
parsing they will be gone. Will that trip the ABI stability check?
I'm never sure at what point of the process that gets executed, and
on which inputs.
--
Andrea Bolognani / Red Hat / Virtualization