mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
qemu: do not define known no-op features
Qemu dropped cpu features for osxsave and ospke [1][2]. The reason for the instant removal is that those features were never configurable as discussed in [3]. Fortunately the use cases adding those flags in the past are rare, but they exist. One that I identified are e.g. older virt-install when used with --cpu=host-model and there always could be the case of a user adding it to the guest xml. This triggers an issue like: qemu-system-x86_64: can't apply global Broadwell-noTSX-x86_64- cpu.osxsave=on: Property '.osxsave' not found Ensure that this does no more break spawning newer qemu versions by not rendering those features into the qemu command line. Fixes: https://bugs.launchpad.net/fedora/+source/qemu/+bug/1825195 Resolves: https://bugzilla.redhat.com/1644848 [1]: https://git.qemu.org/?p=qemu.git;a=commit;h=f1a2352 [2]: https://git.qemu.org/?p=qemu.git;a=commit;h=9ccb978 [3]: https://www.mail-archive.com/qemu-devel@nongnu.org/msg561877.html Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com> Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
538d873571
commit
2900575db8
@ -7075,6 +7075,27 @@ qemuBuildGlobalControllerCommandLine(virCommandPtr cmd,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qemuFeatureNoEffect:
|
||||||
|
* @feature: CPU Feature
|
||||||
|
*
|
||||||
|
* Returns true, if the feature is known to have (never had) an effect on QEMU.
|
||||||
|
* Those features might be dropped in qemu without a longer deprecation cycle
|
||||||
|
* and must therefore be known e.g. to no more define them on command line.
|
||||||
|
*/
|
||||||
|
static bool
|
||||||
|
qemuFeatureNoEffect(virCPUFeatureDefPtr feature)
|
||||||
|
{
|
||||||
|
if (!feature->name)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (STREQ(feature->name, "osxsave"))
|
||||||
|
return true;
|
||||||
|
if (STREQ(feature->name, "ospke"))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
||||||
@ -7143,6 +7164,8 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
|
|||||||
virBufferAsprintf(buf, ",vendor=%s", cpu->vendor_id);
|
virBufferAsprintf(buf, ",vendor=%s", cpu->vendor_id);
|
||||||
|
|
||||||
for (i = 0; i < cpu->nfeatures; i++) {
|
for (i = 0; i < cpu->nfeatures; i++) {
|
||||||
|
if (qemuFeatureNoEffect(&(cpu->features[i])))
|
||||||
|
continue;
|
||||||
switch ((virCPUFeaturePolicy) cpu->features[i].policy) {
|
switch ((virCPUFeaturePolicy) cpu->features[i].policy) {
|
||||||
case VIR_CPU_FEATURE_FORCE:
|
case VIR_CPU_FEATURE_FORCE:
|
||||||
case VIR_CPU_FEATURE_REQUIRE:
|
case VIR_CPU_FEATURE_REQUIRE:
|
||||||
|
@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
|
|||||||
-S \
|
-S \
|
||||||
-machine pc,accel=tcg,usb=off,dump-guest-core=off \
|
-machine pc,accel=tcg,usb=off,dump-guest-core=off \
|
||||||
-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,\
|
-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,\
|
||||||
+smx,+est,+tm2,+xtpr,+pdcm,+osxsave,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm \
|
+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm \
|
||||||
-m 214 \
|
-m 214 \
|
||||||
-realtime mlock=off \
|
-realtime mlock=off \
|
||||||
-smp 6,sockets=6,cores=1,threads=1 \
|
-smp 6,sockets=6,cores=1,threads=1 \
|
||||||
|
@ -12,8 +12,8 @@ QEMU_AUDIO_DRV=none \
|
|||||||
-S \
|
-S \
|
||||||
-machine pc,accel=kvm,usb=off,dump-guest-core=off \
|
-machine pc,accel=kvm,usb=off,dump-guest-core=off \
|
||||||
-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,\
|
-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,\
|
||||||
+smx,+est,+tm2,+xtpr,+pdcm,+osxsave,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm,\
|
+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm,+invtsc,\
|
||||||
+invtsc,tsc-frequency=3504000000 \
|
tsc-frequency=3504000000 \
|
||||||
-m 214 \
|
-m 214 \
|
||||||
-realtime mlock=off \
|
-realtime mlock=off \
|
||||||
-smp 1,sockets=1,cores=1,threads=1 \
|
-smp 1,sockets=1,cores=1,threads=1 \
|
||||||
|
Loading…
Reference in New Issue
Block a user