Comment 14 for bug 1825195

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Triggers that would in the past have added the flag in the past - it will have to be fixed anyway, but this is mostly to evaluate the severity/urgency of the issue.

TL;DR: it seems rare to have been added, yet we haven't covered all cases and there must be a reason why it occurred

Will trigger, but usage is very unlikely/silly and not to be considered as important:
- any new libvirt XML creation with manual <feature policy='require' name='osxsave'/>
- virt-install with --cpu ...,+osxsave / ospke

OpenStack:
- I have checked a few OpenStack created x86 XMLs I foound on bugs and IS provided me a few that are running atm. I didn't find the feature there, but I'll wait for the feedback of the OpenStack team to be sure

Host-model:
I expected host-model to trigger the old feature to be added, but that was not the case:
- any new libvirt XML creation with <cpu mode='host-model'>
- virt-install with --cpu host-model-only
When using host-model we see:
- Xenial: host-model was not workign properly back then, not adding features
- Bionic/Cosmic/Disco: host-model is expanded, but since osxsave was never on a CPUID report by the kernel it isn't added in those cases.

Virt-manager:
- by default did not add cpu/features
- using "copy host cpu" is equal to host-model

virt-install has many old options, some of them are affected.
--cpu=host-model-only - no problem
--cpu=host-passthrough - no problem
--cpu=hv-default - no problem
--cpu=clear - no problem
--cpu=host - no problem
But these will trigger it:
--cpu=host-copy
 => This still ADDs osxsave even on qemu 3.1, but only in some environments
 when run on real HW
    Does not add it on all systems.
--cpu=host-model
 => those two no more add osxsave, but if the guest was started on an old system it did add it - those guests no more start

The two affected options where deprecated (no more in the man page, only there for command line compat) even back in Xenial. It was reported that pre Xenial --cpu=host might also have added osxsave but we are not sure how far back you'd need to go.

Tested in containers, servers, laptops - I think the summary is somewhat complete.

Easiest step to reproduce even with modern components are:
#1 if your combination is qemu >3.0 virt-install <2.0
$ sudo qemu-img create -f qcow2 /var/lib/libvirt/images/test.qcow 20M
$ sudo virt-install --name test-osxsave --memory 512 --disk /var/lib/libvirt/images/test.qcow --import --check all=off --cpu=host-copy
=> can't apply global Haswell-noTSX-IBRS-x86_64-cpu.osxsave=on: Property '.osxsave' not found

#2 if your virt-install already newer it won#t do the mistake, but any older guest upgrades badly
# start on qemu <3.0 virt-install <2.0
$ sudo qemu-img create -f qcow2 /var/lib/libvirt/images/test.qcow 20M
$ sudo virt-install --name test-osxsave --memory 512 --disk /var/lib/libvirt/images/test.qcow --import --check all=off --cpu=host-copy
# guest has osxsave feature, upgrade to qemu 3.1, guest will no more start