[libvirt PATCH v3 1/6] qemu: always translate underscores to hyphens in CPU features

Daniel P. Berrangé posted 6 patches 1 month, 2 weeks ago

[libvirt PATCH v3 1/6] qemu: always translate underscores to hyphens in CPU features

Posted by Daniel P. Berrangé 1 month, 2 weeks ago
QEMU switched from using underscores in x86 CPU features to hyphens
in the 2.8.0 series with two commits

  commit fc7dfd205f3287893c436d932a167bffa30579c8 (HEAD, refs/bisect/bad)
  Author: Eduardo Habkost <ehabkost@redhat.com>
  Date:   Fri Sep 30 15:49:40 2016 -0300

    target-i386: Remove underscores from feat_names arrays

  commit 54b8dc7c19cd781e96f1e9b001ca6001d804eb19
  Author: Eduardo Habkost <ehabkost@redhat.com>
  Date:   Fri Sep 30 15:49:38 2016 -0300

    target-i386: Register aliases for feature names with underscores

Libvirt names use underscores so we conditionally tranlate the
names when talking to new QEMU. Since the min QEMU was raised to
version 2.11.0, all QEMU versions we talk to expect hypens, so
the translation can be done unconditionally.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 src/qemu/qemu_capabilities.c                                   | 3 +--
 tests/qemuxml2argvdata/cpu-cache-disable3.args                 | 2 +-
 tests/qemuxml2argvdata/cpu-check-default-partial.args          | 2 +-
 tests/qemuxml2argvdata/cpu-eoi-disabled.args                   | 2 +-
 tests/qemuxml2argvdata/cpu-eoi-enabled.args                    | 2 +-
 tests/qemuxml2argvdata/cpu-exact2-nofallback.args              | 2 +-
 tests/qemuxml2argvdata/cpu-exact2.args                         | 2 +-
 tests/qemuxml2argvdata/cpu-host-model-cmt.args                 | 2 +-
 tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args    | 2 +-
 tests/qemuxml2argvdata/cpu-host-model-fallback.args            | 2 +-
 tests/qemuxml2argvdata/cpu-host-model-vendor.args              | 2 +-
 tests/qemuxml2argvdata/cpu-host-model.args                     | 2 +-
 tests/qemuxml2argvdata/cpu-host-model.x86_64-2.11.0.args       | 2 +-
 tests/qemuxml2argvdata/cpu-host-model.x86_64-2.12.0.args       | 2 +-
 tests/qemuxml2argvdata/cpu-host-model.x86_64-3.0.0.args        | 2 +-
 tests/qemuxml2argvdata/cpu-host-model.x86_64-3.1.0.args        | 2 +-
 tests/qemuxml2argvdata/cpu-host-model.x86_64-4.0.0.args        | 2 +-
 tests/qemuxml2argvdata/cpu-minimum1.args                       | 2 +-
 tests/qemuxml2argvdata/cpu-minimum2.args                       | 2 +-
 tests/qemuxml2argvdata/cpu-strict1.args                        | 2 +-
 tests/qemuxml2argvdata/cpu-translation.x86_64-4.0.0.args       | 2 +-
 tests/qemuxml2argvdata/cpu-tsc-frequency.args                  | 2 +-
 tests/qemuxml2argvdata/cpu-tsc-frequency.x86_64-4.0.0.args     | 2 +-
 tests/qemuxml2argvdata/eoi-disabled.x86_64-4.0.0.args          | 2 +-
 tests/qemuxml2argvdata/eoi-enabled.x86_64-4.0.0.args           | 2 +-
 tests/qemuxml2argvdata/graphics-spice-timeout.args             | 2 +-
 tests/qemuxml2argvdata/kvmclock+eoi-disabled.x86_64-4.0.0.args | 2 +-
 tests/qemuxml2argvdata/pv-spinlock-disabled.x86_64-4.0.0.args  | 2 +-
 tests/qemuxml2argvdata/pv-spinlock-enabled.x86_64-4.0.0.args   | 2 +-
 29 files changed, 29 insertions(+), 30 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 82687dbf39..6a0188257a 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3390,8 +3390,7 @@ virQEMUCapsCPUFeatureTranslate(virQEMUCaps *qemuCaps,
         table = virQEMUCapsCPUFeaturesX86;
 
     if (!table ||
-        !feature ||
-        !virQEMUCapsGet(qemuCaps, QEMU_CAPS_CANONICAL_CPU_FEATURES))
+        !feature)
         return feature;
 
     for (entry = table; entry->libvirt; entry++) {
diff --git a/tests/qemuxml2argvdata/cpu-cache-disable3.args b/tests/qemuxml2argvdata/cpu-cache-disable3.args
index 57e5da66ad..4b47ccc0f8 100644
--- a/tests/qemuxml2argvdata/cpu-cache-disable3.args
+++ b/tests/qemuxml2argvdata/cpu-cache-disable3.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-foo/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf_lm,l3-cache=off \
+-cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds-cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf-lm,l3-cache=off \
 -m 214 \
 -realtime mlock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-check-default-partial.args b/tests/qemuxml2argvdata/cpu-check-default-partial.args
index d1010b1e5d..9dde8e9690 100644
--- a/tests/qemuxml2argvdata/cpu-check-default-partial.args
+++ b/tests/qemuxml2argvdata/cpu-check-default-partial.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf_lm \
+-cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds-cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf-lm \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-eoi-disabled.args b/tests/qemuxml2argvdata/cpu-eoi-disabled.args
index ce4b2e358f..93b5e68a21 100644
--- a/tests/qemuxml2argvdata/cpu-eoi-disabled.args
+++ b/tests/qemuxml2argvdata/cpu-eoi-disabled.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=tcg,usb=off,dump-guest-core=off \
--cpu qemu32,-kvm_pv_eoi \
+-cpu qemu32,-kvm-pv-eoi \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-eoi-enabled.args b/tests/qemuxml2argvdata/cpu-eoi-enabled.args
index 6e60e11792..1eda43f328 100644
--- a/tests/qemuxml2argvdata/cpu-eoi-enabled.args
+++ b/tests/qemuxml2argvdata/cpu-eoi-enabled.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=tcg,usb=off,dump-guest-core=off \
--cpu qemu32,+kvm_pv_eoi \
+-cpu qemu32,+kvm-pv-eoi \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-exact2-nofallback.args b/tests/qemuxml2argvdata/cpu-exact2-nofallback.args
index 0bb2f4c088..372d2c0d55 100644
--- a/tests/qemuxml2argvdata/cpu-exact2-nofallback.args
+++ b/tests/qemuxml2argvdata/cpu-exact2-nofallback.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+ht,+tm,+ds_cpl,+xtpr,+3dnowext,+lahf_lm,-nx,-cx16,-tm2,-pbe,-ss,-sse4a,-wdt \
+-cpu core2duo,+ds,+ht,+tm,+ds-cpl,+xtpr,+3dnowext,+lahf-lm,-nx,-cx16,-tm2,-pbe,-ss,-sse4a,-wdt \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-exact2.args b/tests/qemuxml2argvdata/cpu-exact2.args
index 0bb2f4c088..372d2c0d55 100644
--- a/tests/qemuxml2argvdata/cpu-exact2.args
+++ b/tests/qemuxml2argvdata/cpu-exact2.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+ht,+tm,+ds_cpl,+xtpr,+3dnowext,+lahf_lm,-nx,-cx16,-tm2,-pbe,-ss,-sse4a,-wdt \
+-cpu core2duo,+ds,+ht,+tm,+ds-cpl,+xtpr,+3dnowext,+lahf-lm,-nx,-cx16,-tm2,-pbe,-ss,-sse4a,-wdt \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-cmt.args b/tests/qemuxml2argvdata/cpu-host-model-cmt.args
index ffa9236a47..403dd15701 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-cmt.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-cmt.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=tcg,usb=off,dump-guest-core=off \
--cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm \
+-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds-cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf-lm \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args b/tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args
index ab32c893c1..61ee76b057 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-cmt.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-i440fx-4.0,accel=tcg,usb=off,dump-guest-core=off \
--cpu EPYC,acpi=on,ss=on,monitor=on,hypervisor=on,erms=on,mpx=on,pcommit=on,clwb=on,pku=on,la57=on,3dnowext=on,3dnow=on,npt=on,vme=off,fma=off,avx=off,f16c=off,rdrand=off,avx2=off,rdseed=off,sha-ni=off,xsavec=off,fxsr_opt=off,misalignsse=off,3dnowprefetch=off,osvw=off,topoext=off,nrip-save=off \
+-cpu EPYC,acpi=on,ss=on,monitor=on,hypervisor=on,erms=on,mpx=on,pcommit=on,clwb=on,pku=on,la57=on,3dnowext=on,3dnow=on,npt=on,vme=off,fma=off,avx=off,f16c=off,rdrand=off,avx2=off,rdseed=off,sha-ni=off,xsavec=off,fxsr-opt=off,misalignsse=off,3dnowprefetch=off,osvw=off,topoext=off,nrip-save=off \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-fallback.args b/tests/qemuxml2argvdata/cpu-host-model-fallback.args
index e224f30d84..5363cac30d 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-fallback.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-fallback.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=tcg,usb=off,dump-guest-core=off \
--cpu Penryn,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+monitor,+ds_cpl,+vmx,+est,+tm2,+xtpr,-sse4.1,+cx16,+lahf_lm \
+-cpu Penryn,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+monitor,+ds-cpl,+vmx,+est,+tm2,+xtpr,-sse4.1,+cx16,+lahf-lm \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-vendor.args b/tests/qemuxml2argvdata/cpu-host-model-vendor.args
index 967d74c7c2..7df4ae99bf 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-vendor.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-vendor.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=tcg,usb=off,dump-guest-core=off \
--cpu 'core2duo,vendor=Libvirt QEMU,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf_lm' \
+-cpu 'core2duo,vendor=Libvirt QEMU,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds-cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf-lm' \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model.args b/tests/qemuxml2argvdata/cpu-host-model.args
index 96fe2f9edb..9d3ff66628 100644
--- a/tests/qemuxml2argvdata/cpu-host-model.args
+++ b/tests/qemuxml2argvdata/cpu-host-model.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine q35,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf_lm \
+-cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds-cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf-lm \
 -m 214 \
 -realtime mlock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-2.11.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-2.11.0.args
index bd3a9e26d2..a1b9cf5270 100644
--- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-2.11.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-2.11.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-q35-2.11,accel=kvm,usb=off,dump-guest-core=off \
--cpu Skylake-Client,ss=on,vmx=on,hypervisor=on,tsc_adjust=on,clflushopt=on,umip=on,xsaves=on,pdpe1gb=on \
+-cpu Skylake-Client,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,xsaves=on,pdpe1gb=on \
 -m 214 \
 -realtime mlock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-2.12.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-2.12.0.args
index 6bf18db474..3cbc6bad7f 100644
--- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-2.12.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-2.12.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-q35-2.12,accel=kvm,usb=off,dump-guest-core=off \
--cpu Haswell-noTSX,vme=on,ss=on,f16c=on,rdrand=on,hypervisor=on,arat=on,tsc_adjust=on,xsaveopt=on,pdpe1gb=on,abm=on \
+-cpu Haswell-noTSX,vme=on,ss=on,f16c=on,rdrand=on,hypervisor=on,arat=on,tsc-adjust=on,xsaveopt=on,pdpe1gb=on,abm=on \
 -m 214 \
 -realtime mlock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-3.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-3.0.0.args
index cb378765b0..b174debb25 100644
--- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-3.0.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-3.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-q35-3.0,accel=kvm,usb=off,dump-guest-core=off \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc_adjust=on,clflushopt=on,umip=on,xsaves=on,pdpe1gb=on,topoext=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,xsaves=on,pdpe1gb=on,topoext=on \
 -m 214 \
 -realtime mlock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-3.1.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-3.1.0.args
index 9af5a7fffa..6d7ccc3419 100644
--- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-3.1.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-3.1.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-q35-3.1,accel=kvm,usb=off,dump-guest-core=off \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc_adjust=on,clflushopt=on,umip=on,xsaves=on,pdpe1gb=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,xsaves=on,pdpe1gb=on \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.0.0.args
index 28af7263a2..344270826e 100644
--- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc_adjust=on,clflushopt=on,umip=on,ssbd=on,xsaves=on,pdpe1gb=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,ssbd=on,xsaves=on,pdpe1gb=on \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-minimum1.args b/tests/qemuxml2argvdata/cpu-minimum1.args
index ff3365b7ff..7bdd8bb5f1 100644
--- a/tests/qemuxml2argvdata/cpu-minimum1.args
+++ b/tests/qemuxml2argvdata/cpu-minimum1.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf_lm \
+-cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds-cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf-lm \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-minimum2.args b/tests/qemuxml2argvdata/cpu-minimum2.args
index 7a07bea1b4..d0c49d668c 100644
--- a/tests/qemuxml2argvdata/cpu-minimum2.args
+++ b/tests/qemuxml2argvdata/cpu-minimum2.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf_lm,-syscall,-nx,-lm,-svm \
+-cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds-cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf-lm,-syscall,-nx,-lm,-svm \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-strict1.args b/tests/qemuxml2argvdata/cpu-strict1.args
index fcd159e5fd..5d225b297e 100644
--- a/tests/qemuxml2argvdata/cpu-strict1.args
+++ b/tests/qemuxml2argvdata/cpu-strict1.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+acpi,+ht,+tm,+ds_cpl,+vmx,+est,+xtpr,+3dnowext,+lahf_lm,-nx,-cx16,-tm2,-pbe,-ss,-sse4a,-wdt \
+-cpu core2duo,+ds,+acpi,+ht,+tm,+ds-cpl,+vmx,+est,+xtpr,+3dnowext,+lahf-lm,-nx,-cx16,-tm2,-pbe,-ss,-sse4a,-wdt \
 -m 214 \
 -realtime mlock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-translation.x86_64-4.0.0.args b/tests/qemuxml2argvdata/cpu-translation.x86_64-4.0.0.args
index 79bb77cc68..e98eef243e 100644
--- a/tests/qemuxml2argvdata/cpu-translation.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/cpu-translation.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-i440fx-4.0,accel=tcg,usb=off,dump-guest-core=off \
--cpu Haswell,pclmuldq=on,ds_cpl=on,tsc_adjust=on,fxsr_opt=on,lahf_lm=on,cmp_legacy=on,nodeid_msr=on,perfctr_core=on,perfctr_nb=on,kvm_pv_eoi=on,kvm_pv_unhalt=on \
+-cpu Haswell,pclmulqdq=on,ds-cpl=on,tsc-adjust=on,fxsr-opt=on,lahf-lm=on,cmp-legacy=on,nodeid-msr=on,perfctr-core=on,perfctr-nb=on,kvm-pv-eoi=on,kvm-pv-unhalt=on \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-tsc-frequency.args b/tests/qemuxml2argvdata/cpu-tsc-frequency.args
index 3a7d69d6b7..c348dbccaa 100644
--- a/tests/qemuxml2argvdata/cpu-tsc-frequency.args
+++ b/tests/qemuxml2argvdata/cpu-tsc-frequency.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm,+invtsc,tsc-frequency=4567890000 \
+-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds-cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf-lm,+invtsc,tsc-frequency=4567890000 \
 -m 214 \
 -realtime mlock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-tsc-frequency.x86_64-4.0.0.args b/tests/qemuxml2argvdata/cpu-tsc-frequency.x86_64-4.0.0.args
index 91b6e7943b..66ada24c92 100644
--- a/tests/qemuxml2argvdata/cpu-tsc-frequency.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/cpu-tsc-frequency.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-i440fx-4.0,accel=kvm,usb=off,dump-guest-core=off \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc_adjust=on,clflushopt=on,umip=on,ssbd=on,xsaves=on,pdpe1gb=on,invtsc=on,tsc-frequency=4567890000 \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,ssbd=on,xsaves=on,pdpe1gb=on,invtsc=on,tsc-frequency=4567890000 \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/eoi-disabled.x86_64-4.0.0.args b/tests/qemuxml2argvdata/eoi-disabled.x86_64-4.0.0.args
index 5a12f2dbbf..33ad0b7af2 100644
--- a/tests/qemuxml2argvdata/eoi-disabled.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/eoi-disabled.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-i440fx-4.0,accel=tcg,usb=off,dump-guest-core=off \
--cpu qemu32,kvm_pv_eoi=off \
+-cpu qemu32,kvm-pv-eoi=off \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/eoi-enabled.x86_64-4.0.0.args b/tests/qemuxml2argvdata/eoi-enabled.x86_64-4.0.0.args
index 7d268bcc9a..1a8b4f12b1 100644
--- a/tests/qemuxml2argvdata/eoi-enabled.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/eoi-enabled.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-i440fx-4.0,accel=tcg,usb=off,dump-guest-core=off \
--cpu qemu32,kvm_pv_eoi=on \
+-cpu qemu32,kvm-pv-eoi=on \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/graphics-spice-timeout.args b/tests/qemuxml2argvdata/graphics-spice-timeout.args
index 61d986b2e6..ccf8d974c4 100644
--- a/tests/qemuxml2argvdata/graphics-spice-timeout.args
+++ b/tests/qemuxml2argvdata/graphics-spice-timeout.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=spice \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-f14/master-key.aes \
 -machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf_lm \
+-cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds-cpl,+vmx,+est,+tm2,+cx16,+xtpr,+lahf-lm \
 -m 1024 \
 -realtime mlock=off \
 -smp 2,sockets=1,cores=2,threads=1 \
diff --git a/tests/qemuxml2argvdata/kvmclock+eoi-disabled.x86_64-4.0.0.args b/tests/qemuxml2argvdata/kvmclock+eoi-disabled.x86_64-4.0.0.args
index c21f56a7d4..f339244ea9 100644
--- a/tests/qemuxml2argvdata/kvmclock+eoi-disabled.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/kvmclock+eoi-disabled.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-i440fx-4.0,accel=tcg,usb=off,dump-guest-core=off \
--cpu qemu32,kvmclock=off,kvm_pv_eoi=off \
+-cpu qemu32,kvmclock=off,kvm-pv-eoi=off \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/pv-spinlock-disabled.x86_64-4.0.0.args b/tests/qemuxml2argvdata/pv-spinlock-disabled.x86_64-4.0.0.args
index c1f8b82d5c..93ad4c108a 100644
--- a/tests/qemuxml2argvdata/pv-spinlock-disabled.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/pv-spinlock-disabled.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-i440fx-4.0,accel=tcg,usb=off,dump-guest-core=off \
--cpu qemu32,kvm_pv_unhalt=off \
+-cpu qemu32,kvm-pv-unhalt=off \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/pv-spinlock-enabled.x86_64-4.0.0.args b/tests/qemuxml2argvdata/pv-spinlock-enabled.x86_64-4.0.0.args
index 2b7748a473..615bab3094 100644
--- a/tests/qemuxml2argvdata/pv-spinlock-enabled.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/pv-spinlock-enabled.x86_64-4.0.0.args
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
 -S \
 -object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -machine pc-i440fx-4.0,accel=tcg,usb=off,dump-guest-core=off \
--cpu qemu32,kvm_pv_unhalt=on \
+-cpu qemu32,kvm-pv-unhalt=on \
 -m 214 \
 -overcommit mem-lock=off \
 -smp 6,sockets=6,cores=1,threads=1 \
-- 
2.31.1

Re: [libvirt PATCH v3 1/6] qemu: always translate underscores to hyphens in CPU features

Posted by Jiri Denemark 1 month, 2 weeks ago
On Fri, Oct 08, 2021 at 10:01:40 +0100, Daniel P. Berrangé wrote:
> QEMU switched from using underscores in x86 CPU features to hyphens
> in the 2.8.0 series with two commits
> 
>   commit fc7dfd205f3287893c436d932a167bffa30579c8 (HEAD, refs/bisect/bad)
>   Author: Eduardo Habkost <ehabkost@redhat.com>
>   Date:   Fri Sep 30 15:49:40 2016 -0300
> 
>     target-i386: Remove underscores from feat_names arrays
> 
>   commit 54b8dc7c19cd781e96f1e9b001ca6001d804eb19
>   Author: Eduardo Habkost <ehabkost@redhat.com>
>   Date:   Fri Sep 30 15:49:38 2016 -0300
> 
>     target-i386: Register aliases for feature names with underscores
> 
> Libvirt names use underscores so we conditionally tranlate the
> names when talking to new QEMU. Since the min QEMU was raised to
> version 2.11.0, all QEMU versions we talk to expect hypens, so
> the translation can be done unconditionally.

Reviewed-by: Jiri Denemark <jdenemar@redhat.com>