On Mon, May 26, 2025 at 17:26:47 +0200, Boris Fiuczynski wrote:
On 5/26/25 14:40, Peter Krempa via Devel wrote:
> On Thu, May 22, 2025 at 02:03:16 -0400, Collin Walling wrote:
> > To ease the user with defining a guest with a migratable CPU model,
>
> disclaimer: I'm not an expert on:
> - libvirt's cpu driver
> - s390x cpu etc.
>
> > let's disable the deprecated features from the get-go. If these
> > features are still desired, they may be reenabled via the
> > deprecated_features='on' attribute.
>
> I'd expect that anything that happens with cpu model (as it has guest
> visible implications [2]) would happen also in XML ...
>
> > Some existing tests utilize this updated behavior, so update the CPU
> > features on the corresponding args files.
> >
> > Signed-off-by: Collin Walling <walling(a)linux.ibm.com>
> > ---
> > src/qemu/qemu_process.c | 11 +++++++++++
> > .../default-video-type-s390x.s390x-latest.args | 2 +-
> > ...hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args | 2 +-
> > .../launch-security-s390-pv.s390x-latest.args | 2 +-
> > ...0-default-cpu-kvm-ccw-virtio-4.2.s390x-latest.args | 2 +-
> > .../s390-defaultconsole.s390x-latest.args | 2 +-
>
> ... which doesn't seem to be the case as just the .args files changed.
Do the mocked tests perform a cpu model expansion which is done when
starting a domain?
I tested Collins changes and when dumping the active domain xml the expanded
CPU model and also deprecated_features='off' is included if
deprecated_features was not already included in the persisted domain xml.
>
> So won't this actually break the guest ABI?
I think Daniel's old email can shed some light on that question.
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/M...
My understanding is that guest ABI does not include guaranties how a CPU
model is expanded and therefore this change does not break the guest ABI.
I agree (see disclaimer above) that expansion of the model itself is not
covered by ABI guarantee but IIUC that would imply that the expanded
model is recorded in the XML in order to ensure the ABI on migration
where expansion would not be performed at that point. Attempting to do
expansion during migration would make stuff go boom.
Thus I expected to see XMLchange somewhere (perhaps in
qemuxmlactivetest? dunno ... see disclaimer).