On Thu, 2018-02-01 at 13:52 +0000, Daniel P. Berrangé wrote:
> Note that I'm not advocating adding controllers or any
other
> hardware to *existing* guests - that would clearly be a guest ABI
> breakage and thus Extremely Bad™. For newly-defined guests, however,
> none of the above applies AFAICT.
There's no practical way to distinguish an existing guest from a
new guest being provisioned. With transient domains they are one &
the same. Even with persistent guests the distinction is far from
clear.
We have VIR_DOMAIN_DEF_PARSE_ABI_UPDATE, which is only passed in
when the guest is new - or the user has updated the XML themselves,
in which case all bets are off when it comes to guest ABI stability
anyway.
There are cases, when importing an existing OS image as opposed to
installing from scratch, where scenarios like the ones you described
might show up, but again I don't think it's realistic to expect all
guests to have the same exact hardware regardless of libvirt version
as long as they share machine type. I don't think we want to paint
ourselves in that corner.
Plus, even if we did everything right in libvirt, guests defined at
different times would end up having different ABI if QEMU has been
upgraded in the meantime and thus uses a new default machine type.
--
Andrea Bolognani / Red Hat / Virtualization