Compare commits

...

No commits in common. "c9-beta" and "c8-stream-rhel" have entirely different histories.

189 changed files with 14759 additions and 93362 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/libvirt-10.10.0.tar.xz
SOURCES/libvirt-8.0.0.tar.xz

View File

@ -1 +1 @@
7e76874bdcd1b220d90619c1ce7a876b6c9a8d78 SOURCES/libvirt-10.10.0.tar.xz
e440412e9b45d7e24f0ef492d8edf5cf2cbd3f4c SOURCES/libvirt-8.0.0.tar.xz

View File

@ -0,0 +1,49 @@
From 9c2fd182a02d64004e30900c52e3fcdb550de0bd Mon Sep 17 00:00:00 2001
Message-Id: <9c2fd182a02d64004e30900c52e3fcdb550de0bd@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 22 Jun 2022 16:35:50 +0200
Subject: [PATCH] Add VIR_MIGRATE_ZEROCOPY flag
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The flag can be used to enable zero-copy mechanism for migrating memory
pages.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 8744beecb36600e773c8a8c4823db2bf4b3e262d)
https://bugzilla.redhat.com/show_bug.cgi?id=2089433
Conflicts:
include/libvirt/libvirt-domain.h
- post-copy recovery not backported
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
include/libvirt/libvirt-domain.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index 5f0a9b7572..792973ce2d 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -860,6 +860,14 @@ typedef enum {
*/
VIR_MIGRATE_NON_SHARED_SYNCHRONOUS_WRITES = (1 << 18),
+ /* Use zero-copy mechanism for migrating memory pages. For QEMU/KVM this
+ * means QEMU will be temporarily allowed to lock all guest pages in host's
+ * memory, although only those that are queued for transfer will be locked
+ * at the same time.
+ *
+ * Since: 8.5.0
+ */
+ VIR_MIGRATE_ZEROCOPY = (1 << 20),
} virDomainMigrateFlags;
--
2.35.1

View File

@ -0,0 +1,47 @@
From f0d0a6a9701522eee013682eb0ef566ef7cdac61 Mon Sep 17 00:00:00 2001
Message-Id: <f0d0a6a9701522eee013682eb0ef566ef7cdac61@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Mon, 22 Feb 2016 12:51:51 +0100
Subject: [PATCH] RHEL: Add rhel machine types to qemuDomainMachineNeedsFDC
RHEL-only.
pc-q35-rhel7.0.0 and pc-q35-rhel7.1.0 do not need an explicit
isa-fdc controller.
https://bugzilla.redhat.com/show_bug.cgi?id=1227880
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_domain.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index a8401bac30..40fe9985e6 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -8767,8 +8767,19 @@ qemuDomainHasBuiltinIDE(const virDomainDef *def)
bool
qemuDomainNeedsFDC(const virDomainDef *def)
{
- /* all supported Q35 machines need explicit FDC */
- return qemuDomainIsQ35(def);
+ const char *p;
+
+ /* all supported Q35 machines need explicit FDC except for old RHEL-7
+ * machine types */
+ if (!qemuDomainIsQ35(def))
+ return false;
+
+ if ((p = STRSKIP(def->os.machine, "pc-q35-")) &&
+ (STRPREFIX(p, "rhel7.0.0") ||
+ STRPREFIX(p, "rhel7.1.0")))
+ return false;
+
+ return true;
}
--
2.34.1

View File

@ -0,0 +1,257 @@
From b2529d5ff3a18a2b0022da75431cea5bf037819e Mon Sep 17 00:00:00 2001
Message-Id: <b2529d5ff3a18a2b0022da75431cea5bf037819e@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 28 Jul 2021 17:37:21 +0200
Subject: [PATCH] RHEL: Enable usage of x-blockdev-reopen
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RHEL-only
Introduce a new capability QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API
based on the presence of '__com.redhat_rhel-av-8_2_0-api' feature for
'x-blockdev-reopen' which states that reopen works for what libvirt
is going to use it and wire up code to call the x- prefixed command.
This implementation will become dormant once qemu starts supporting
upstream-stable blockdev-reopen.
https://bugzilla.redhat.com/show_bug.cgi?id=1799013
Starting with libvirt-7.6, upstream has adapted to the new format of
arguments so this patch was modified to support blockdev-reopen which
takes an array of nodes to reopen.
https://bugzilla.redhat.com/show_bug.cgi?id=1929765
Message-Id: <3fcde2fc6add36d5276ae224caf18adc8bca7d48.1627486352.git.pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_block.c | 24 +++++++++++++++---------
src/qemu/qemu_block.h | 3 ++-
src/qemu/qemu_capabilities.c | 13 +++++++++++++
src/qemu/qemu_capabilities.h | 3 +++
src/qemu/qemu_monitor.c | 5 +++--
src/qemu/qemu_monitor.h | 3 ++-
src/qemu/qemu_monitor_json.c | 12 +++++++++---
src/qemu/qemu_monitor_json.h | 3 ++-
tests/qemumonitorjsontest.c | 2 +-
9 files changed, 50 insertions(+), 18 deletions(-)
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index e5ff653a60..aa566d0097 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -3331,7 +3331,8 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc,
int
qemuBlockReopenFormatMon(qemuMonitor *mon,
- virStorageSource *src)
+ virStorageSource *src,
+ bool downstream)
{
g_autoptr(virJSONValue) reopenprops = NULL;
g_autoptr(virJSONValue) srcprops = NULL;
@@ -3340,15 +3341,19 @@ qemuBlockReopenFormatMon(qemuMonitor *mon,
if (!(srcprops = qemuBlockStorageSourceGetBlockdevProps(src, src->backingStore)))
return -1;
- if (virJSONValueArrayAppend(reopenoptions, &srcprops) < 0)
- return -1;
+ if (downstream) {
+ reopenprops = g_steal_pointer(&srcprops);
+ } else {
+ if (virJSONValueArrayAppend(reopenoptions, &srcprops) < 0)
+ return -1;
- if (virJSONValueObjectAdd(&reopenprops,
- "a:options", &reopenoptions,
- NULL) < 0)
- return -1;
+ if (virJSONValueObjectAdd(&reopenprops,
+ "a:options", &reopenoptions,
+ NULL) < 0)
+ return -1;
+ }
- if (qemuMonitorBlockdevReopen(mon, &reopenprops) < 0)
+ if (qemuMonitorBlockdevReopen(mon, &reopenprops, downstream) < 0)
return -1;
return 0;
@@ -3372,6 +3377,7 @@ qemuBlockReopenFormat(virDomainObj *vm,
{
qemuDomainObjPrivate *priv = vm->privateData;
virQEMUDriver *driver = priv->driver;
+ bool downstream = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API);
int rc;
/* If we are lacking the object here, qemu might have opened an image with
@@ -3385,7 +3391,7 @@ qemuBlockReopenFormat(virDomainObj *vm,
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
return -1;
- rc = qemuBlockReopenFormatMon(priv->mon, src);
+ rc = qemuBlockReopenFormatMon(priv->mon, src, downstream);
qemuDomainObjExitMonitor(driver, vm);
if (rc < 0)
diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h
index 184a549d5c..130cfcdefd 100644
--- a/src/qemu/qemu_block.h
+++ b/src/qemu/qemu_block.h
@@ -267,7 +267,8 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc,
/* only for use in qemumonitorjsontest */
int
qemuBlockReopenFormatMon(qemuMonitor *mon,
- virStorageSource *src);
+ virStorageSource *src,
+ bool downstream);
int
qemuBlockReopenReadWrite(virDomainObj *vm,
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 5f1eb5014c..8ae80ef8d7 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -654,6 +654,9 @@ VIR_ENUM_IMPL(virQEMUCaps,
"rbd-encryption", /* QEMU_CAPS_RBD_ENCRYPTION */
"sev-guest-kernel-hashes", /* QEMU_CAPS_SEV_GUEST_KERNEL_HASHES */
"sev-inject-launch-secret", /* QEMU_CAPS_SEV_INJECT_LAUNCH_SECRET */
+
+ /* 420 */
+ "blockdev-reopen.__com.redhat_rhel-av-8_2_0-api", /* QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API */
);
@@ -1540,6 +1543,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVhostUserFS[] =
/* see documentation for virQEMUQAPISchemaPathGet for the query format */
static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
{ "block-commit/arg-type/*top", QEMU_CAPS_ACTIVE_COMMIT },
+ { "x-blockdev-reopen/$__com.redhat_rhel-av-8_2_0-api", QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API },
{ "blockdev-add/arg-type/options/+gluster/debug-level", QEMU_CAPS_GLUSTER_DEBUG_LEVEL},
{ "blockdev-add/arg-type/+gluster/debug", QEMU_CAPS_GLUSTER_DEBUG_LEVEL},
{ "blockdev-add/arg-type/+vxhs", QEMU_CAPS_VXHS},
@@ -5235,6 +5239,15 @@ virQEMUCapsInitProcessCaps(virQEMUCaps *qemuCaps)
qemuCaps->arch == VIR_ARCH_MIPS)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_SCSI_NCR53C90);
+ /* RHEL-only:
+ * - if upstream blockdev-reopen is enabled, clear the downstream flag
+ * - if the downstream flag is present but not the upstream, assert the upstream flag too
+ */
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN))
+ virQEMUCapsClear(qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API);
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API))
+ virQEMUCapsSet(qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN);
+
virQEMUCapsInitProcessCapsInterlock(qemuCaps);
}
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index e3a3ab4445..cde6c18b4c 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -634,6 +634,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
QEMU_CAPS_SEV_GUEST_KERNEL_HASHES, /* sev-guest.kernel-hashes= */
QEMU_CAPS_SEV_INJECT_LAUNCH_SECRET, /* 'sev-inject-launch-secret' qmp command present */
+ /* 420 */
+ QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API, /* downstream support for blockdev reopen in rhel-av-8.2.0 */
+
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index babf9e62fb..23638d3fe8 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -4247,14 +4247,15 @@ qemuMonitorBlockdevAdd(qemuMonitor *mon,
int
qemuMonitorBlockdevReopen(qemuMonitor *mon,
- virJSONValue **props)
+ virJSONValue **props,
+ bool downstream)
{
VIR_DEBUG("props=%p (node-name=%s)", *props,
NULLSTR(virJSONValueObjectGetString(*props, "node-name")));
QEMU_CHECK_MONITOR(mon);
- return qemuMonitorJSONBlockdevReopen(mon, props);
+ return qemuMonitorJSONBlockdevReopen(mon, props, downstream);
}
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 9b2e4e1421..d2037914be 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1426,7 +1426,8 @@ int qemuMonitorBlockdevAdd(qemuMonitor *mon,
virJSONValue **props);
int qemuMonitorBlockdevReopen(qemuMonitor *mon,
- virJSONValue **props);
+ virJSONValue **props,
+ bool downstream);
int qemuMonitorBlockdevDel(qemuMonitor *mon,
const char *nodename);
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index b0b513683b..34a46b9b41 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -8051,13 +8051,19 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon,
int
qemuMonitorJSONBlockdevReopen(qemuMonitor *mon,
- virJSONValue **props)
+ virJSONValue **props,
+ bool downstream)
{
g_autoptr(virJSONValue) cmd = NULL;
g_autoptr(virJSONValue) reply = NULL;
- if (!(cmd = qemuMonitorJSONMakeCommandInternal("blockdev-reopen", props)))
- return -1;
+ if (downstream) {
+ if (!(cmd = qemuMonitorJSONMakeCommandInternal("x-blockdev-reopen", props)))
+ return -1;
+ } else {
+ if (!(cmd = qemuMonitorJSONMakeCommandInternal("blockdev-reopen", props)))
+ return -1;
+ }
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
return -1;
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index 64d9ebdaa3..15ce03d7af 100644
--- a/src/qemu/qemu_monitor_json.h
+++ b/src/qemu/qemu_monitor_json.h
@@ -748,7 +748,8 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon,
int
qemuMonitorJSONBlockdevReopen(qemuMonitor *mon,
- virJSONValue **props)
+ virJSONValue **props,
+ bool downstream)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 48e2a457ab..8624a547b5 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -2780,7 +2780,7 @@ testQemuMonitorJSONBlockdevReopen(const void *opaque)
if (qemuMonitorTestAddItem(test, "blockdev-reopen", "{\"return\":{}}") < 0)
return -1;
- if (qemuBlockReopenFormatMon(qemuMonitorTestGetMonitor(test), src) < 0)
+ if (qemuBlockReopenFormatMon(qemuMonitorTestGetMonitor(test), src, false) < 0)
return -1;
return 0;
--
2.34.1

View File

@ -0,0 +1,46 @@
From 29eb7b77805cf5fb756c964cdbe7fb7fb2c01f5f Mon Sep 17 00:00:00 2001
Message-Id: <29eb7b77805cf5fb756c964cdbe7fb7fb2c01f5f@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Mon, 27 Aug 2018 13:09:38 +0200
Subject: [PATCH] RHEL: Fix virConnectGetMaxVcpus output
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
https://bugzilla.redhat.com/show_bug.cgi?id=1092363
RHEL-only.
Ignore the maximum vcpu limit (KVM_CAP_MAX_VCPUS) on RHEL,
since RHEL QEMU treats the recommended limit (KVM_CAP_NR_VCPUS)
as the maximum, see:
https://bugzilla.redhat.com/show_bug.cgi?id=998708
(cherry picked from commit 7dff909fa34bdd93ad200dbffe70c0c1ee931925)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
https: //bugzilla.redhat.com/show_bug.cgi?id=1582222
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
---
src/util/virhostcpu.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c
index a07c00a0e9..35f41daef2 100644
--- a/src/util/virhostcpu.c
+++ b/src/util/virhostcpu.c
@@ -1166,6 +1166,11 @@ virHostCPUGetKVMMaxVCPUs(void)
return -1;
}
+/* Ignore KVM_CAP_MAX_VCPUS on RHEL - the recommended maximum
+ * is treated as a hard limit.
+ */
+# undef KVM_CAP_MAX_VCPUS
+
# ifdef KVM_CAP_MAX_VCPUS
/* at first try KVM_CAP_MAX_VCPUS to determine the maximum count */
if ((ret = ioctl(fd, KVM_CHECK_EXTENSION, KVM_CAP_MAX_VCPUS)) > 0)
--
2.34.1

View File

@ -0,0 +1,185 @@
From 1d93a3944a200b7c955800faa598e0e11da098f8 Mon Sep 17 00:00:00 2001
Message-Id: <1d93a3944a200b7c955800faa598e0e11da098f8@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Fri, 27 Mar 2015 12:48:40 +0100
Subject: [PATCH] RHEL: Hack around changed Broadwell/Haswell CPUs
RHEL-only
Upstream tried to solve the change of Broadwell and Haswell CPUs by
removing rtm and hle features from the corresponding CPU models for new
machine types. Then they reverted this and introduced new *-noTSX models
instead. However, the original fix was backported to RHEL.
This patch makes sure Broadwell and Haswell will always contain rtm and
hle features regardless on RHEL version or machine type used.
https://bugzilla.redhat.com/show_bug.cgi?id=1199446
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_command.c | 22 +++++++++++++++++++
tests/qemuxml2argvdata/cpu-Haswell.args | 2 +-
.../qemuxml2argvdata/cpu-host-model-cmt.args | 2 +-
.../cpu-translation.x86_64-4.0.0.args | 2 +-
.../cpu-translation.x86_64-latest.args | 2 +-
tests/qemuxml2argvdata/cpu-tsc-frequency.args | 2 +-
tests/qemuxml2argvdata/q35-acpi-nouefi.args | 2 +-
tests/qemuxml2argvdata/q35-acpi-uefi.args | 2 +-
tests/qemuxml2argvdata/q35-noacpi-nouefi.args | 2 +-
9 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d822533ccb..6b4647a711 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6521,6 +6521,8 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
{
size_t i;
virCPUDef *cpu = def->cpu;
+ bool hle = false;
+ bool rtm = false;
switch ((virCPUMode) cpu->mode) {
case VIR_CPU_MODE_HOST_PASSTHROUGH:
@@ -6587,6 +6589,12 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
for (i = 0; i < cpu->nfeatures; i++) {
const char *featname =
virQEMUCapsCPUFeatureToQEMU(qemuCaps, cpu->features[i].name);
+
+ if (STREQ("rtm", cpu->features[i].name))
+ rtm = true;
+ if (STREQ("hle", cpu->features[i].name))
+ hle = true;
+
switch ((virCPUFeaturePolicy) cpu->features[i].policy) {
case VIR_CPU_FEATURE_FORCE:
case VIR_CPU_FEATURE_REQUIRE:
@@ -6604,6 +6612,20 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
}
}
+ /* Some versions of qemu-kvm in RHEL provide Broadwell and Haswell CPU
+ * models which lack rtm and hle features when used with some machine
+ * types. Let's make sure Broadwell and Haswell will always have these
+ * features. But only if the features were not explicitly mentioned in
+ * the guest CPU definition.
+ */
+ if (STREQ_NULLABLE(cpu->model, "Broadwell") ||
+ STREQ_NULLABLE(cpu->model, "Haswell")) {
+ if (!rtm)
+ virBufferAddLit(buf, ",rtm=on");
+ if (!hle)
+ virBufferAddLit(buf, ",hle=on");
+ }
+
return 0;
}
diff --git a/tests/qemuxml2argvdata/cpu-Haswell.args b/tests/qemuxml2argvdata/cpu-Haswell.args
index b57fdfddc5..965274c1f0 100644
--- a/tests/qemuxml2argvdata/cpu-Haswell.args
+++ b/tests/qemuxml2argvdata/cpu-Haswell.args
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-machine pc,usb=off,dump-guest-core=off \
-accel kvm \
--cpu Haswell \
+-cpu Haswell,rtm=on,hle=on \
-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 0de04e877d..602f70de86 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-cmt.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-cmt.args
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-machine pc,usb=off,dump-guest-core=off \
-accel tcg \
--cpu Haswell,vme=on,ds=on,acpi=on,ss=on,ht=on,tm=on,pbe=on,dtes64=on,monitor=on,ds-cpl=on,vmx=on,smx=on,est=on,tm2=on,xtpr=on,pdcm=on,f16c=on,rdrand=on,pdpe1gb=on,abm=on,lahf-lm=on \
+-cpu Haswell,vme=on,ds=on,acpi=on,ss=on,ht=on,tm=on,pbe=on,dtes64=on,monitor=on,ds-cpl=on,vmx=on,smx=on,est=on,tm2=on,xtpr=on,pdcm=on,f16c=on,rdrand=on,pdpe1gb=on,abm=on,lahf-lm=on,rtm=on,hle=on \
-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 09141106d5..ace08d5d76 100644
--- a/tests/qemuxml2argvdata/cpu-translation.x86_64-4.0.0.args
+++ b/tests/qemuxml2argvdata/cpu-translation.x86_64-4.0.0.args
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-machine pc-i440fx-4.0,usb=off,dump-guest-core=off \
-accel tcg \
--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 \
+-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,rtm=on,hle=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-translation.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-translation.x86_64-latest.args
index 2dab572a6b..a9f7c4b910 100644
--- a/tests/qemuxml2argvdata/cpu-translation.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/cpu-translation.x86_64-latest.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tmp/lib/domain--1-QEMUGuest1/master-key.aes"}' \
-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel tcg \
--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 \
+-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,rtm=on,hle=on,kvm-pv-eoi=on,kvm-pv-unhalt=on \
-m 214 \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxml2argvdata/cpu-tsc-frequency.args b/tests/qemuxml2argvdata/cpu-tsc-frequency.args
index 4a032f5d85..48fb75abcc 100644
--- a/tests/qemuxml2argvdata/cpu-tsc-frequency.args
+++ b/tests/qemuxml2argvdata/cpu-tsc-frequency.args
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-machine pc,usb=off,dump-guest-core=off \
-accel kvm \
--cpu Haswell,vme=on,ds=on,acpi=on,ss=on,ht=on,tm=on,pbe=on,dtes64=on,monitor=on,ds-cpl=on,vmx=on,smx=on,est=on,tm2=on,xtpr=on,pdcm=on,f16c=on,rdrand=on,pdpe1gb=on,abm=on,lahf-lm=on,invtsc=on,tsc-frequency=4567890000 \
+-cpu Haswell,vme=on,ds=on,acpi=on,ss=on,ht=on,tm=on,pbe=on,dtes64=on,monitor=on,ds-cpl=on,vmx=on,smx=on,est=on,tm2=on,xtpr=on,pdcm=on,f16c=on,rdrand=on,pdpe1gb=on,abm=on,lahf-lm=on,invtsc=on,rtm=on,hle=on,tsc-frequency=4567890000 \
-m 214 \
-realtime mlock=off \
-smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/q35-acpi-nouefi.args b/tests/qemuxml2argvdata/q35-acpi-nouefi.args
index 3faee48c77..a1f742712d 100644
--- a/tests/qemuxml2argvdata/q35-acpi-nouefi.args
+++ b/tests/qemuxml2argvdata/q35-acpi-nouefi.args
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-guest/master-key.aes \
-machine q35,usb=off,dump-guest-core=off \
-accel tcg \
--cpu Haswell \
+-cpu Haswell,rtm=on,hle=on \
-m 1024 \
-realtime mlock=off \
-smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/q35-acpi-uefi.args b/tests/qemuxml2argvdata/q35-acpi-uefi.args
index 60da1e282a..620056223a 100644
--- a/tests/qemuxml2argvdata/q35-acpi-uefi.args
+++ b/tests/qemuxml2argvdata/q35-acpi-uefi.args
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-guest/master-key.aes \
-machine q35,usb=off,dump-guest-core=off \
-accel tcg \
--cpu Haswell \
+-cpu Haswell,rtm=on,hle=on \
-drive file=/usr/share/OVMF/OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on \
-drive file=/var/lib/libvirt/qemu/nvram/guest_VARS.fd,if=pflash,format=raw,unit=1 \
-m 1024 \
diff --git a/tests/qemuxml2argvdata/q35-noacpi-nouefi.args b/tests/qemuxml2argvdata/q35-noacpi-nouefi.args
index 14e5bbc22a..ea66536c2a 100644
--- a/tests/qemuxml2argvdata/q35-noacpi-nouefi.args
+++ b/tests/qemuxml2argvdata/q35-noacpi-nouefi.args
@@ -13,7 +13,7 @@ QEMU_AUDIO_DRV=none \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-guest/master-key.aes \
-machine q35,usb=off,dump-guest-core=off \
-accel tcg \
--cpu Haswell \
+-cpu Haswell,rtm=on,hle=on \
-m 1024 \
-realtime mlock=off \
-smp 1,sockets=1,cores=1,threads=1 \
--
2.34.1

View File

@ -0,0 +1,89 @@
From b550b671bace6d979a0763a837ce97ddf72e8fc8 Mon Sep 17 00:00:00 2001
Message-Id: <b550b671bace6d979a0763a837ce97ddf72e8fc8@dist-git>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Fri, 28 Jan 2022 20:33:12 +0100
Subject: [PATCH] RHEL: Remove <glib-2.64.0 workaround for GSource race
https://bugzilla.redhat.com/show_bug.cgi?id=2045879
This is to accommodate for RHEL 8 downstream glib being fixed with a backport in
version 2.56.4-12 (Bug 1948988). Another reason for that is that our workaround
does not play nice with a fixed glib, leading to libvirt not properly
dereferencing the monitor socket, eventually leading to EMFILE: Too many open
files.
RHEL-only
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
---
src/util/glibcompat.c | 46 ++++++++-----------------------------------
1 file changed, 8 insertions(+), 38 deletions(-)
diff --git a/src/util/glibcompat.c b/src/util/glibcompat.c
index eb6dcc0111..bf890f10d2 100644
--- a/src/util/glibcompat.c
+++ b/src/util/glibcompat.c
@@ -212,51 +212,21 @@ vir_g_strdup_vprintf(const char *msg, va_list args)
return ret;
}
-
/*
- * If the last reference to a GSource is released in a non-main
- * thread we're exposed to a race condition that causes a
- * crash:
- *
- * https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1358
+ * This is a leftover of a hack that works around glib older than 2.64.0, but
+ * the fix in glib as backported in RHEL-8 to glib2-2.56.4-12 in BZ 1948988:
*
- * Thus we're using an idle func to release our ref...
+ * https://bugzilla.redhat.com/show_bug.cgi?id=1948988
*
- * ...but this imposes a significant performance penalty on
- * I/O intensive workloads which are sensitive to the iterations
- * of the event loop, so avoid the workaround if we know we have
- * new enough glib.
+ * and our workaround coupled with that glib fix started causing leaks, which
+ * surfaced with us not unreferencing the qemu monitor socket in BZ 2045879:
*
- * The function below is used from a header file definition.
+ * https://bugzilla.redhat.com/show_bug.cgi?id=2045879
*
- * Drop when min glib >= 2.64.0
+ * Keeping this wrapper makes it easier to follow with other backports without
+ * conflicts in callers due to the function name change.
*/
-#if GLIB_CHECK_VERSION(2, 64, 0)
void vir_g_source_unref(GSource *src, GMainContext *ctx G_GNUC_UNUSED)
{
g_source_unref(src);
}
-#else
-
-static gboolean
-virEventGLibSourceUnrefIdle(gpointer data)
-{
- GSource *src = data;
-
- g_source_unref(src);
-
- return FALSE;
-}
-
-void vir_g_source_unref(GSource *src, GMainContext *ctx)
-{
- GSource *idle = g_idle_source_new();
-
- g_source_set_callback(idle, virEventGLibSourceUnrefIdle, src, NULL);
-
- g_source_attach(idle, ctx);
-
- g_source_unref(idle);
-}
-
-#endif
--
2.35.1

View File

@ -0,0 +1,81 @@
From d6956a1aaa8757fab60132c3ee46c2bb199a78a8 Mon Sep 17 00:00:00 2001
Message-Id: <d6956a1aaa8757fab60132c3ee46c2bb199a78a8@dist-git>
From: John Ferlan <jferlan@redhat.com>
Date: Mon, 17 Dec 2018 20:42:30 -0500
Subject: [PATCH] RHEL: qemu: Add ability to set sgio values for hostdev
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
https://bugzilla.redhat.com/show_bug.cgi?id=1582424
RHEL-only
Add necessary checks in order to allow setting sgio values for a scsi
host device
Signed-off-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_conf.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 6077457ff4..ba85fc6e22 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1841,8 +1841,9 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev)
virDomainDiskDef *disk = NULL;
virDomainHostdevDef *hostdev = NULL;
g_autofree char *sysfs_path = NULL;
+ g_autofree char *hostdev_path = NULL;
const char *path = NULL;
- int val = -1;
+ int val = 0;
/* "sgio" is only valid for block disk; cdrom
* and floopy disk can have empty source.
@@ -1858,17 +1859,14 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev)
} else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
hostdev = dev->data.hostdev;
- if (!qemuIsSharedHostdev(hostdev))
+ if (hostdev->source.subsys.u.scsi.protocol ==
+ VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI)
return 0;
- if (hostdev->source.subsys.u.scsi.sgio) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("'sgio' is not supported for SCSI "
- "generic device yet "));
+ if (!(hostdev_path = qemuGetHostdevPath(hostdev)))
return -1;
- }
- return 0;
+ path = hostdev_path;
} else {
return 0;
}
@@ -1877,7 +1875,16 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev)
return -1;
/* By default, filter the SG_IO commands, i.e. set unpriv_sgio to 0. */
- val = (disk->sgio == VIR_DOMAIN_DEVICE_SGIO_UNFILTERED);
+ if (dev->type == VIR_DOMAIN_DEVICE_DISK) {
+ if (disk->sgio == VIR_DOMAIN_DEVICE_SGIO_UNFILTERED)
+ val = 1;
+ } else {
+ /* Only settable if <shareable/> was present for hostdev */
+ if (qemuIsSharedHostdev(hostdev) &&
+ hostdev->source.subsys.u.scsi.sgio ==
+ VIR_DOMAIN_DEVICE_SGIO_UNFILTERED)
+ val = 1;
+ }
/* Do not do anything if unpriv_sgio is not supported by the kernel and the
* whitelist is enabled. But if requesting unfiltered access, always call
--
2.34.1

View File

@ -0,0 +1,66 @@
From f562b4c83d342002291f6bd7c5776eaecbd3147f Mon Sep 17 00:00:00 2001
Message-Id: <f562b4c83d342002291f6bd7c5776eaecbd3147f@dist-git>
From: John Ferlan <jferlan@redhat.com>
Date: Mon, 17 Dec 2018 20:42:31 -0500
Subject: [PATCH] RHEL: qemu: Add check for unpriv sgio for SCSI generic host
device
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
https://bugzilla.redhat.com/show_bug.cgi?id=1582424
RHEL-only
Check if the hostdev has set the sgio filtered/unfiltered and handle
appropriately.
This restores functionality removed by upstream commit id 'ce346623'
to remove sgio support for the SCSI generic host device.
Signed-off-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_conf.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index ba85fc6e22..28c334761b 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1749,13 +1749,29 @@ qemuSharedHostdevAddRemoveInternal(virQEMUDriver *driver,
{
g_autofree char *dev_path = NULL;
g_autofree char *key = NULL;
+ virDomainHostdevSubsysSCSI *scsisrc = &hostdev->source.subsys.u.scsi;
+ virDomainHostdevSubsysSCSIHost *scsihostsrc = &scsisrc->u.host;
int ret = -1;
if (!qemuIsSharedHostdev(hostdev))
return 0;
- if (!(dev_path = qemuGetHostdevPath(hostdev)) ||
- !(key = qemuGetSharedDeviceKey(dev_path)))
+ if (!(dev_path = qemuGetHostdevPath(hostdev)))
+ return -1;
+
+ if ((ret = qemuCheckUnprivSGIO(driver->sharedDevices, dev_path,
+ scsisrc->sgio)) < 0) {
+ if (ret == -2) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("sgio of shared scsi host device '%s-%u-%u-%llu' "
+ "conflicts with other active domains"),
+ scsihostsrc->adapter, scsihostsrc->bus,
+ scsihostsrc->target, scsihostsrc->unit);
+ }
+ return -1;
+ }
+
+ if (!(key = qemuGetSharedDeviceKey(dev_path)))
return -1;
qemuDriverLock(driver);
--
2.34.1

View File

@ -0,0 +1,52 @@
From b6c1f9ca8eb0ca8f7603ab205c7dc95b9f07b5a0 Mon Sep 17 00:00:00 2001
Message-Id: <b6c1f9ca8eb0ca8f7603ab205c7dc95b9f07b5a0@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Mon, 18 Jul 2022 16:01:20 +0200
Subject: [PATCH] RHEL: qemu_migration: Fix restoring memlock limit on
destination
Restoring memory locking limit on the destination host only makes sense
when migration succeeded as otherwise the QEMU process will be killed
anyway. Specifically if the migration fails because the process died,
touching the limit would produce rather unhelpful error message instead
of the real issue:
cannot get locked memory limit of process -1: No such file or
directory
This patch is RHEL-only caused by misplacing the call to
qemuDomainSetMaxMemLock when the "qemu_migration: Restore original
memory locking limit" upstream patch was backported to an older code
base.
https://bugzilla.redhat.com/show_bug.cgi?id=2107954
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_migration.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index db5163e993..11f87296d6 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -5895,6 +5895,8 @@ qemuMigrationDstFinish(virQEMUDriver *driver,
*/
if (inPostCopy)
g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree);
+
+ qemuDomainSetMaxMemLock(vm, 0, &priv->preMigrationMemlock);
}
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
@@ -5907,7 +5909,6 @@ qemuMigrationDstFinish(virQEMUDriver *driver,
cleanup:
g_clear_pointer(&jobInfo, qemuDomainJobInfoFree);
virPortAllocatorRelease(port);
- qemuDomainSetMaxMemLock(vm, 0, &priv->preMigrationMemlock);
if (priv->mon)
qemuMonitorSetDomainLog(priv->mon, NULL, NULL, NULL);
VIR_FREE(priv->origname);
--
2.35.1

View File

@ -0,0 +1,215 @@
From 9c5daeb8c99ca12a66387de448f585742887fd75 Mon Sep 17 00:00:00 2001
Message-Id: <9c5daeb8c99ca12a66387de448f585742887fd75@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 6 Mar 2020 15:52:21 +0100
Subject: [PATCH] RHEL: virscsi: Check device type before getting it's /dev
node name
Not all SCSI devices are block devices, therefore
/sys/bus/scsi/devices/X:X:X:X/block/ directory does not always
exist. Check if the SCSI device is a block device beforehand.
https://bugzilla.redhat.com/show_bug.cgi?id=1808390
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Message-Id: <20200306145226.1610708-2-abologna@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
---
src/util/virscsi.c | 140 ++++++++++++++++++++++++++++++---
tests/virscsidata/0-0-0-0/type | 1 +
tests/virscsidata/1-0-0-0/type | 1 +
3 files changed, 131 insertions(+), 11 deletions(-)
create mode 100644 tests/virscsidata/0-0-0-0/type
create mode 100644 tests/virscsidata/1-0-0-0/type
diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index 6a90d9002f..770f727cac 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -47,6 +47,32 @@ struct _virUsedByInfo {
};
typedef struct _virUsedByInfo virUsedByInfo;
+
+/* Keep in sync with scsi/scsi_proto.h */
+typedef enum {
+ VIR_SCSI_DEVICE_TYPE_NONE = -1,
+ VIR_SCSI_DEVICE_TYPE_DISK = 0x00,
+ VIR_SCSI_DEVICE_TYPE_TAPE = 0x01,
+ VIR_SCSI_DEVICE_TYPE_PRINTER = 0x02,
+ VIR_SCSI_DEVICE_TYPE_PROCESSOR = 0x03,
+ VIR_SCSI_DEVICE_TYPE_WORM = 0x04,
+ VIR_SCSI_DEVICE_TYPE_ROM = 0x05,
+ VIR_SCSI_DEVICE_TYPE_SCANNER = 0x06,
+ VIR_SCSI_DEVICE_TYPE_MOD = 0x07,
+ VIR_SCSI_DEVICE_TYPE_MEDIUM_CHANGER = 0x08,
+ VIR_SCSI_DEVICE_TYPE_COMM = 0x09,
+ VIR_SCSI_DEVICE_TYPE_RAID = 0x0c,
+ VIR_SCSI_DEVICE_TYPE_ENCLOSURE = 0x0d,
+ VIR_SCSI_DEVICE_TYPE_RBC = 0x0e,
+ VIR_SCSI_DEVICE_TYPE_OSD = 0x11,
+ VIR_SCSI_DEVICE_TYPE_ZBC = 0x14,
+ VIR_SCSI_DEVICE_TYPE_WLUN = 0x1e,
+ VIR_SCSI_DEVICE_TYPE_NO_LUN = 0x7f,
+
+ VIR_SCSI_DEVICE_TYPE_LAST,
+} virSCSIDeviceType;
+
+
struct _virSCSIDevice {
unsigned int adapter;
unsigned int bus;
@@ -126,6 +152,78 @@ virSCSIDeviceGetSgName(const char *sysfs_prefix,
return NULL;
}
+
+static int
+virSCSIDeviceGetType(const char *prefix,
+ unsigned int adapter,
+ unsigned int bus,
+ unsigned int target,
+ unsigned long long unit,
+ virSCSIDeviceType *type)
+{
+ int intType;
+
+ if (virFileReadValueInt(&intType,
+ "%s/%d:%u:%u:%llu/type",
+ prefix, adapter, bus, target, unit) < 0)
+ return -1;
+
+ switch (intType) {
+ case VIR_SCSI_DEVICE_TYPE_DISK:
+ case VIR_SCSI_DEVICE_TYPE_TAPE:
+ case VIR_SCSI_DEVICE_TYPE_PRINTER:
+ case VIR_SCSI_DEVICE_TYPE_PROCESSOR:
+ case VIR_SCSI_DEVICE_TYPE_WORM:
+ case VIR_SCSI_DEVICE_TYPE_ROM:
+ case VIR_SCSI_DEVICE_TYPE_SCANNER:
+ case VIR_SCSI_DEVICE_TYPE_MOD:
+ case VIR_SCSI_DEVICE_TYPE_MEDIUM_CHANGER:
+ case VIR_SCSI_DEVICE_TYPE_COMM:
+ case VIR_SCSI_DEVICE_TYPE_RAID:
+ case VIR_SCSI_DEVICE_TYPE_ENCLOSURE:
+ case VIR_SCSI_DEVICE_TYPE_RBC:
+ case VIR_SCSI_DEVICE_TYPE_OSD:
+ case VIR_SCSI_DEVICE_TYPE_ZBC:
+ case VIR_SCSI_DEVICE_TYPE_WLUN:
+ case VIR_SCSI_DEVICE_TYPE_NO_LUN:
+ *type = intType;
+ break;
+
+ default:
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("unknown SCSI device type: %x"),
+ intType);
+ return -1;
+ }
+
+ return 0;
+}
+
+
+static char *
+virSCSIDeviceGetDevNameBlock(const char *prefix,
+ unsigned int adapter,
+ unsigned int bus,
+ unsigned int target,
+ unsigned long long unit)
+{
+ g_autoptr(DIR) dir = NULL;
+ struct dirent *entry;
+ g_autofree char *path = NULL;
+
+ path = g_strdup_printf("%s/%d:%u:%u:%llu/block",
+ prefix, adapter, bus, target, unit);
+
+ if (virDirOpen(&dir, path) < 0)
+ return NULL;
+
+ if (virDirRead(dir, &entry, path) > 0)
+ return g_strdup(entry->d_name);
+
+ return NULL;
+}
+
+
/* Returns device name (e.g. "sdc") on success, or NULL
* on failure.
*/
@@ -136,25 +234,45 @@ virSCSIDeviceGetDevName(const char *sysfs_prefix,
unsigned int target,
unsigned long long unit)
{
- g_autoptr(DIR) dir = NULL;
- struct dirent *entry;
- g_autofree char *path = NULL;
unsigned int adapter_id;
+ virSCSIDeviceType type;
const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SCSI_DEVICES;
if (virSCSIDeviceGetAdapterId(adapter, &adapter_id) < 0)
return NULL;
- path = g_strdup_printf("%s/%d:%u:%u:%llu/block", prefix, adapter_id, bus,
- target, unit);
-
- if (virDirOpen(&dir, path) < 0)
+ if (virSCSIDeviceGetType(prefix, adapter_id,
+ bus, target, unit, &type) < 0)
return NULL;
- if (virDirRead(dir, &entry, path) > 0)
- return g_strdup(entry->d_name);
-
- return NULL;
+ switch (type) {
+ case VIR_SCSI_DEVICE_TYPE_DISK:
+ return virSCSIDeviceGetDevNameBlock(prefix, adapter_id, bus, target, unit);
+
+ case VIR_SCSI_DEVICE_TYPE_TAPE:
+ case VIR_SCSI_DEVICE_TYPE_PRINTER:
+ case VIR_SCSI_DEVICE_TYPE_PROCESSOR:
+ case VIR_SCSI_DEVICE_TYPE_WORM:
+ case VIR_SCSI_DEVICE_TYPE_ROM:
+ case VIR_SCSI_DEVICE_TYPE_SCANNER:
+ case VIR_SCSI_DEVICE_TYPE_MOD:
+ case VIR_SCSI_DEVICE_TYPE_MEDIUM_CHANGER:
+ case VIR_SCSI_DEVICE_TYPE_COMM:
+ case VIR_SCSI_DEVICE_TYPE_RAID:
+ case VIR_SCSI_DEVICE_TYPE_ENCLOSURE:
+ case VIR_SCSI_DEVICE_TYPE_RBC:
+ case VIR_SCSI_DEVICE_TYPE_OSD:
+ case VIR_SCSI_DEVICE_TYPE_ZBC:
+ case VIR_SCSI_DEVICE_TYPE_WLUN:
+ case VIR_SCSI_DEVICE_TYPE_NO_LUN:
+ case VIR_SCSI_DEVICE_TYPE_NONE:
+ case VIR_SCSI_DEVICE_TYPE_LAST:
+ default:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("unsupported SCSI device type: %x"),
+ type);
+ return NULL;
+ }
}
virSCSIDevice *
diff --git a/tests/virscsidata/0-0-0-0/type b/tests/virscsidata/0-0-0-0/type
new file mode 100644
index 0000000000..573541ac97
--- /dev/null
+++ b/tests/virscsidata/0-0-0-0/type
@@ -0,0 +1 @@
+0
diff --git a/tests/virscsidata/1-0-0-0/type b/tests/virscsidata/1-0-0-0/type
new file mode 100644
index 0000000000..573541ac97
--- /dev/null
+++ b/tests/virscsidata/1-0-0-0/type
@@ -0,0 +1 @@
+0
--
2.34.1

View File

@ -0,0 +1,272 @@
From 1ce4faffcd4616bbcea4d198c3f60cbcfddd784e Mon Sep 17 00:00:00 2001
Message-Id: <1ce4faffcd4616bbcea4d198c3f60cbcfddd784e@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 6 Mar 2020 15:52:23 +0100
Subject: [PATCH] RHEL: virscsi: Introduce and use
virSCSIDeviceGetUnprivSGIOSysfsPath()
When constructing a path to the 'unpriv_sgio' file of given SCSI
device we don't need to go through /dev/* and major() + minor()
path. The generated path points to
/sys/dev/block/MAJ:MIN/queue/unpriv_sgio which is wrong if the
SCSI device in question is not a block device. We can generate a
different path: /sys/bus/scsi/devices/X:X:X:X/unpriv_sgio where
the file is directly accessible regardless of the SCSI device
type.
https://bugzilla.redhat.com/show_bug.cgi?id=1808390
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Message-Id: <20200306145226.1610708-4-abologna@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
---
src/libvirt_private.syms | 1 +
src/qemu/qemu_conf.c | 31 +++++++++++++++++++------------
src/util/virscsi.c | 19 +++++++++++++++++++
src/util/virscsi.h | 5 +++++
src/util/virutil.c | 24 ++++++------------------
src/util/virutil.h | 2 --
6 files changed, 50 insertions(+), 32 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 5b76e66e61..2c42e2a5e8 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -3191,6 +3191,7 @@ virSCSIDeviceGetSgName;
virSCSIDeviceGetShareable;
virSCSIDeviceGetTarget;
virSCSIDeviceGetUnit;
+virSCSIDeviceGetUnprivSGIOSysfsPath;
virSCSIDeviceIsAvailable;
virSCSIDeviceListAdd;
virSCSIDeviceListCount;
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 28c334761b..a0b8076d6b 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1506,7 +1506,7 @@ qemuCheckUnprivSGIO(GHashTable *sharedDevices,
if (!(virHashLookup(sharedDevices, key)))
return 0;
- if (virGetDeviceUnprivSGIO(device_path, NULL, &val) < 0)
+ if (virGetDeviceUnprivSGIO(sysfs_path, &val) < 0)
return -1;
/* Error message on failure needs to be handled in caller
@@ -1857,39 +1857,46 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev)
virDomainDiskDef *disk = NULL;
virDomainHostdevDef *hostdev = NULL;
g_autofree char *sysfs_path = NULL;
- g_autofree char *hostdev_path = NULL;
- const char *path = NULL;
int val = 0;
/* "sgio" is only valid for block disk; cdrom
* and floopy disk can have empty source.
*/
if (dev->type == VIR_DOMAIN_DEVICE_DISK) {
+ const char *path;
+
disk = dev->data.disk;
+ path = virDomainDiskGetSource(disk);
if (disk->device != VIR_DOMAIN_DISK_DEVICE_LUN ||
!virStorageSourceIsBlockLocal(disk->src))
return 0;
- path = virDomainDiskGetSource(disk);
+ if (!(sysfs_path = virGetUnprivSGIOSysfsPath(path, NULL)))
+ return -1;
+
} else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
+ virDomainHostdevSubsysSCSI *scsisrc;
+ virDomainHostdevSubsysSCSIHost *scsihostsrc;
+
hostdev = dev->data.hostdev;
+ scsisrc = &hostdev->source.subsys.u.scsi;
+ scsihostsrc = &scsisrc->u.host;
if (hostdev->source.subsys.u.scsi.protocol ==
VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI)
return 0;
- if (!(hostdev_path = qemuGetHostdevPath(hostdev)))
+ if (!(sysfs_path = virSCSIDeviceGetUnprivSGIOSysfsPath(NULL,
+ scsihostsrc->adapter,
+ scsihostsrc->bus,
+ scsihostsrc->target,
+ scsihostsrc->unit)))
return -1;
-
- path = hostdev_path;
} else {
return 0;
}
- if (!(sysfs_path = virGetUnprivSGIOSysfsPath(path, NULL)))
- return -1;
-
/* By default, filter the SG_IO commands, i.e. set unpriv_sgio to 0. */
if (dev->type == VIR_DOMAIN_DEVICE_DISK) {
if (disk->sgio == VIR_DOMAIN_DEVICE_SGIO_UNFILTERED)
@@ -1909,11 +1916,11 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev)
if (virFileExists(sysfs_path) || val == 1) {
int curr_val;
- if (virGetDeviceUnprivSGIO(path, NULL, &curr_val) < 0)
+ if (virGetDeviceUnprivSGIO(sysfs_path, &curr_val) < 0)
return -1;
if (curr_val != val &&
- virSetDeviceUnprivSGIO(path, NULL, val) < 0) {
+ virSetDeviceUnprivSGIO(sysfs_path, val) < 0) {
return -1;
}
}
diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index 6165196423..b437fdcac0 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -302,6 +302,25 @@ virSCSIDeviceGetDevName(const char *sysfs_prefix,
}
}
+
+char *
+virSCSIDeviceGetUnprivSGIOSysfsPath(const char *sysfs_prefix,
+ const char *adapter,
+ unsigned int bus,
+ unsigned int target,
+ unsigned long long unit)
+{
+ unsigned int adapter_id;
+ const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SCSI_DEVICES;
+
+ if (virSCSIDeviceGetAdapterId(adapter, &adapter_id) < 0)
+ return NULL;
+
+ return g_strdup_printf("%s/%d:%u:%u:%llu/unpriv_sgio",
+ prefix, adapter_id, bus, target, unit);
+}
+
+
virSCSIDevice *
virSCSIDeviceNew(const char *sysfs_prefix,
const char *adapter,
diff --git a/src/util/virscsi.h b/src/util/virscsi.h
index 65ad15ed76..5721985939 100644
--- a/src/util/virscsi.h
+++ b/src/util/virscsi.h
@@ -40,6 +40,11 @@ char *virSCSIDeviceGetDevName(const char *sysfs_prefix,
unsigned int bus,
unsigned int target,
unsigned long long unit);
+char *virSCSIDeviceGetUnprivSGIOSysfsPath(const char *sysfs_prefix,
+ const char *adapter,
+ unsigned int bus,
+ unsigned int target,
+ unsigned long long unit);
virSCSIDevice *virSCSIDeviceNew(const char *sysfs_prefix,
const char *adapter,
diff --git a/src/util/virutil.c b/src/util/virutil.c
index e04f1343d8..b1e37b45c5 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -1377,18 +1377,13 @@ virGetUnprivSGIOSysfsPath(const char *path,
int
virSetDeviceUnprivSGIO(const char *path,
- const char *sysfs_dir,
int unpriv_sgio)
{
- char *sysfs_path = NULL;
char *val = NULL;
int ret = -1;
int rc;
- if (!(sysfs_path = virGetUnprivSGIOSysfsPath(path, sysfs_dir)))
- return -1;
-
- if (!virFileExists(sysfs_path)) {
+ if (!virFileExists(path)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("unpriv_sgio is not supported by this kernel"));
goto cleanup;
@@ -1396,38 +1391,32 @@ virSetDeviceUnprivSGIO(const char *path,
val = g_strdup_printf("%d", unpriv_sgio);
- if ((rc = virFileWriteStr(sysfs_path, val, 0)) < 0) {
- virReportSystemError(-rc, _("failed to set %s"), sysfs_path);
+ if ((rc = virFileWriteStr(path, val, 0)) < 0) {
+ virReportSystemError(-rc, _("failed to set %s"), path);
goto cleanup;
}
ret = 0;
cleanup:
- VIR_FREE(sysfs_path);
VIR_FREE(val);
return ret;
}
int
virGetDeviceUnprivSGIO(const char *path,
- const char *sysfs_dir,
int *unpriv_sgio)
{
- char *sysfs_path = NULL;
char *buf = NULL;
char *tmp = NULL;
int ret = -1;
- if (!(sysfs_path = virGetUnprivSGIOSysfsPath(path, sysfs_dir)))
- return -1;
-
- if (!virFileExists(sysfs_path)) {
+ if (!virFileExists(path)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("unpriv_sgio is not supported by this kernel"));
goto cleanup;
}
- if (virFileReadAll(sysfs_path, 1024, &buf) < 0)
+ if (virFileReadAll(path, 1024, &buf) < 0)
goto cleanup;
if ((tmp = strchr(buf, '\n')))
@@ -1435,13 +1424,12 @@ virGetDeviceUnprivSGIO(const char *path,
if (virStrToLong_i(buf, NULL, 10, unpriv_sgio) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("failed to parse value of %s"), sysfs_path);
+ _("failed to parse value of %s"), path);
goto cleanup;
}
ret = 0;
cleanup:
- VIR_FREE(sysfs_path);
VIR_FREE(buf);
return ret;
}
diff --git a/src/util/virutil.h b/src/util/virutil.h
index 854b494890..da267c6446 100644
--- a/src/util/virutil.h
+++ b/src/util/virutil.h
@@ -120,10 +120,8 @@ int virGetDeviceID(const char *path,
int *maj,
int *min) G_GNUC_NO_INLINE;
int virSetDeviceUnprivSGIO(const char *path,
- const char *sysfs_dir,
int unpriv_sgio);
int virGetDeviceUnprivSGIO(const char *path,
- const char *sysfs_dir,
int *unpriv_sgio);
char *virGetUnprivSGIOSysfsPath(const char *path,
const char *sysfs_dir);
--
2.34.1

View File

@ -0,0 +1,200 @@
From 5b96a8773d33af9822f6b6ccddc8f372841895a6 Mon Sep 17 00:00:00 2001
Message-Id: <5b96a8773d33af9822f6b6ccddc8f372841895a6@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 6 Mar 2020 15:52:22 +0100
Subject: [PATCH] RHEL: virscsi: Support TAPEs in virSCSIDeviceGetDevName()
If the SCSI device we want to get /dev node name for is TAPE
device we need to look at 'tape' symlink in the sysfs dir
corresponding to the device.
https://bugzilla.redhat.com/show_bug.cgi?id=1808390
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Message-Id: <20200306145226.1610708-3-abologna@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
---
src/util/virscsi.c | 27 +++++++++++++++
tests/virscsidata/2-0-0-0/model | 1 +
tests/virscsidata/2-0-0-0/scsi_tape/st0/dev | 1 +
tests/virscsidata/2-0-0-0/sg3/dev | 1 +
tests/virscsidata/2-0-0-0/tape | 1 +
tests/virscsidata/2-0-0-0/type | 1 +
tests/virscsidata/2-0-0-0/vendor | 1 +
tests/virscsidata/sg3 | 0
tests/virscsitest.c | 38 ++++++++++++++++++---
9 files changed, 66 insertions(+), 5 deletions(-)
create mode 100644 tests/virscsidata/2-0-0-0/model
create mode 100644 tests/virscsidata/2-0-0-0/scsi_tape/st0/dev
create mode 100644 tests/virscsidata/2-0-0-0/sg3/dev
create mode 120000 tests/virscsidata/2-0-0-0/tape
create mode 100644 tests/virscsidata/2-0-0-0/type
create mode 100644 tests/virscsidata/2-0-0-0/vendor
create mode 100644 tests/virscsidata/sg3
diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index 770f727cac..6165196423 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -224,6 +224,31 @@ virSCSIDeviceGetDevNameBlock(const char *prefix,
}
+static char *
+virSCSIDeviceGetDevNameTape(const char *prefix,
+ unsigned int adapter,
+ unsigned int bus,
+ unsigned int target,
+ unsigned long long unit)
+{
+ g_autofree char *path = NULL;
+ g_autofree char *resolvedPath = NULL;
+ g_autoptr(GError) err = NULL;
+
+ path = g_strdup_printf("%s/%d:%u:%u:%llu/tape",
+ prefix, adapter, bus, target, unit);
+
+ if (!(resolvedPath = g_file_read_link(path, &err))) {
+ virReportError(VIR_ERR_SYSTEM_ERROR,
+ _("Unable to read link: %s"),
+ err->message);
+ return NULL;
+ }
+
+ return g_path_get_basename(resolvedPath);
+}
+
+
/* Returns device name (e.g. "sdc") on success, or NULL
* on failure.
*/
@@ -250,6 +275,8 @@ virSCSIDeviceGetDevName(const char *sysfs_prefix,
return virSCSIDeviceGetDevNameBlock(prefix, adapter_id, bus, target, unit);
case VIR_SCSI_DEVICE_TYPE_TAPE:
+ return virSCSIDeviceGetDevNameTape(prefix, adapter_id, bus, target, unit);
+
case VIR_SCSI_DEVICE_TYPE_PRINTER:
case VIR_SCSI_DEVICE_TYPE_PROCESSOR:
case VIR_SCSI_DEVICE_TYPE_WORM:
diff --git a/tests/virscsidata/2-0-0-0/model b/tests/virscsidata/2-0-0-0/model
new file mode 100644
index 0000000000..d2ab4715c3
--- /dev/null
+++ b/tests/virscsidata/2-0-0-0/model
@@ -0,0 +1 @@
+scsi_debug
diff --git a/tests/virscsidata/2-0-0-0/scsi_tape/st0/dev b/tests/virscsidata/2-0-0-0/scsi_tape/st0/dev
new file mode 100644
index 0000000000..3dd777e840
--- /dev/null
+++ b/tests/virscsidata/2-0-0-0/scsi_tape/st0/dev
@@ -0,0 +1 @@
+9:0
diff --git a/tests/virscsidata/2-0-0-0/sg3/dev b/tests/virscsidata/2-0-0-0/sg3/dev
new file mode 100644
index 0000000000..b369a59b3e
--- /dev/null
+++ b/tests/virscsidata/2-0-0-0/sg3/dev
@@ -0,0 +1 @@
+21:3
diff --git a/tests/virscsidata/2-0-0-0/tape b/tests/virscsidata/2-0-0-0/tape
new file mode 120000
index 0000000000..6ca7f77539
--- /dev/null
+++ b/tests/virscsidata/2-0-0-0/tape
@@ -0,0 +1 @@
+scsi_tape/st0
\ No newline at end of file
diff --git a/tests/virscsidata/2-0-0-0/type b/tests/virscsidata/2-0-0-0/type
new file mode 100644
index 0000000000..d00491fd7e
--- /dev/null
+++ b/tests/virscsidata/2-0-0-0/type
@@ -0,0 +1 @@
+1
diff --git a/tests/virscsidata/2-0-0-0/vendor b/tests/virscsidata/2-0-0-0/vendor
new file mode 100644
index 0000000000..9b075671ea
--- /dev/null
+++ b/tests/virscsidata/2-0-0-0/vendor
@@ -0,0 +1 @@
+Linux
diff --git a/tests/virscsidata/sg3 b/tests/virscsidata/sg3
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/virscsitest.c b/tests/virscsitest.c
index c96699e157..924b77af08 100644
--- a/tests/virscsitest.c
+++ b/tests/virscsitest.c
@@ -33,17 +33,33 @@ VIR_LOG_INIT("tests.scsitest");
static char *virscsi_prefix;
+typedef struct {
+ const char *adapter;
+ unsigned int bus;
+ unsigned int target;
+ unsigned int unit;
+ const char *expectedName;
+} testGetDevNameData;
+
static int
-test1(const void *data G_GNUC_UNUSED)
+testGetDevName(const void *opaque)
{
+ const testGetDevNameData *data = opaque;
g_autofree char *name = NULL;
if (!(name = virSCSIDeviceGetDevName(virscsi_prefix,
- "scsi_host1", 0, 0, 0)))
+ data->adapter,
+ data->bus,
+ data->target,
+ data->unit)))
return -1;
- if (STRNEQ(name, "sdh"))
+ if (STRNEQ(name, data->expectedName)) {
+ fprintf(stderr,
+ "SCSI dev name mismatch, expected %s got %s",
+ data->expectedName, name);
return -1;
+ }
return 0;
}
@@ -200,15 +216,27 @@ mymain(void)
CREATE_SYMLINK("0-0-0-0", "0:0:0:0");
CREATE_SYMLINK("1-0-0-0", "1:0:0:0");
+ CREATE_SYMLINK("2-0-0-0", "2:0:0:0");
CREATE_SYMLINK("sg0", "sg0");
+ CREATE_SYMLINK("sg3", "sg3");
CREATE_SYMLINK("sg8", "sg8");
VIR_FREE(virscsi_prefix);
virscsi_prefix = g_strdup(tmpdir);
- if (virTestRun("test1", test1, NULL) < 0)
- ret = -1;
+#define TEST_GET_DEV_NAME(adapter, bus, target, unit, expectedName) \
+ do { \
+ testGetDevNameData data = {adapter, bus, target, unit, expectedName}; \
+ if (virTestRun("test getDevname " expectedName, \
+ testGetDevName, &data) < 0) \
+ ret = -1; \
+ } while (0)
+
+ TEST_GET_DEV_NAME("scsi_host0", 0, 0, 0, "sda");
+ TEST_GET_DEV_NAME("scsi_host1", 0, 0, 0, "sdh");
+ TEST_GET_DEV_NAME("scsi_host2", 0, 0, 0, "st0");
+
if (virTestRun("test2", test2, NULL) < 0)
ret = -1;
--
2.34.1

View File

@ -0,0 +1,37 @@
From ac8357ab7dd676af82b971673f8d7e862ff07624 Mon Sep 17 00:00:00 2001
Message-Id: <ac8357ab7dd676af82b971673f8d7e862ff07624@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 6 Mar 2020 15:52:24 +0100
Subject: [PATCH] RHEL: virutil: Accept non-block devices in virGetDeviceID()
If a caller wants to learn major or minor number for a device,
let them. There's no need to check if the device is a block
device here.
https://bugzilla.redhat.com/show_bug.cgi?id=1808390
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Message-Id: <20200306145226.1610708-5-abologna@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
---
src/util/virutil.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/util/virutil.c b/src/util/virutil.c
index b1e37b45c5..ced8493516 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -1333,9 +1333,6 @@ virGetDeviceID(const char *path, int *maj, int *min)
if (stat(path, &sb) < 0)
return -errno;
- if (!S_ISBLK(sb.st_mode))
- return -EINVAL;
-
if (maj)
*maj = major(sb.st_rdev);
if (min)
--
2.34.1

View File

@ -0,0 +1,103 @@
From 732113455fb7eadeea178c71cc77f0ffdf639f24 Mon Sep 17 00:00:00 2001
Message-Id: <732113455fb7eadeea178c71cc77f0ffdf639f24@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Tue, 18 Jan 2022 12:40:09 +0100
Subject: [PATCH] Revert "report error when virProcessGetStatInfo() is unable
to parse data"
This reverts commit 938382b60ae5bd1f83b5cb09e1ce68b9a88f679a.
Turns out, the commit did more harm than good. It changed
semantics on some public APIs. For instance, while
qemuDomainGetInfo() previously did not returned an error it does
now. While the calls to virProcessGetStatInfo() is guarded with
virDomainObjIsActive() it doesn't necessarily mean that QEMU's
PID is still alive. QEMU might be gone but we just haven't
realized it (e.g. because the eof handler thread is waiting for a
job).
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2041610
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
(cherry picked from commit 105dace22cc7b5b18d72a4dcad4a2cf386ce5c99)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/ch/ch_driver.c | 2 ++
src/qemu/qemu_driver.c | 7 ++++++-
src/util/virprocess.c | 8 ++------
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/ch/ch_driver.c b/src/ch/ch_driver.c
index 3cbc668489..53e0872207 100644
--- a/src/ch/ch_driver.c
+++ b/src/ch/ch_driver.c
@@ -1073,6 +1073,8 @@ chDomainHelperGetVcpus(virDomainObj *vm,
if (virProcessGetStatInfo(&vcpuinfo->cpuTime,
&vcpuinfo->cpu, NULL,
vm->pid, vcpupid) < 0) {
+ virReportSystemError(errno, "%s",
+ _("cannot get vCPU placement & pCPU time"));
return -1;
}
}
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 65ac5ef367..d3d76c003f 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -1359,6 +1359,8 @@ qemuDomainHelperGetVcpus(virDomainObj *vm,
if (virProcessGetStatInfo(&vcpuinfo->cpuTime,
&vcpuinfo->cpu, NULL,
vm->pid, vcpupid) < 0) {
+ virReportSystemError(errno, "%s",
+ _("cannot get vCPU placement & pCPU time"));
return -1;
}
}
@@ -2519,6 +2521,8 @@ qemuDomainGetInfo(virDomainPtr dom,
if (virDomainObjIsActive(vm)) {
if (virProcessGetStatInfo(&(info->cpuTime), NULL, NULL,
vm->pid, 0) < 0) {
+ virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+ _("cannot read cputime for domain"));
goto cleanup;
}
}
@@ -10526,7 +10530,8 @@ qemuDomainMemoryStatsInternal(virQEMUDriver *driver,
}
if (virProcessGetStatInfo(NULL, NULL, &rss, vm->pid, 0) < 0) {
- virResetLastError();
+ virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+ _("cannot get RSS for domain"));
} else {
stats[ret].tag = VIR_DOMAIN_MEMORY_STAT_RSS;
stats[ret].val = rss;
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 85d8c8e747..b559a4257e 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -1784,10 +1784,7 @@ virProcessGetStatInfo(unsigned long long *cpuTime,
virStrToLong_ullp(proc_stat[VIR_PROCESS_STAT_STIME], NULL, 10, &systime) < 0 ||
virStrToLong_l(proc_stat[VIR_PROCESS_STAT_RSS], NULL, 10, &rss) < 0 ||
virStrToLong_i(proc_stat[VIR_PROCESS_STAT_PROCESSOR], NULL, 10, &cpu) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("cannot parse process status data for pid '%d/%d'"),
- (int) pid, (int) tid);
- return -1;
+ VIR_WARN("cannot parse process status data");
}
/* We got jiffies
@@ -1884,8 +1881,7 @@ virProcessGetStatInfo(unsigned long long *cpuTime G_GNUC_UNUSED,
pid_t pid G_GNUC_UNUSED,
pid_t tid G_GNUC_UNUSED)
{
- virReportSystemError(ENOSYS, "%s",
- _("Process statistics data is not supported on this platform"));
+ errno = ENOSYS;
return -1;
}
--
2.35.0

View File

@ -1,286 +0,0 @@
From 5e88ca84d3988e7943cace7b53cd1a249c55a99b Mon Sep 17 00:00:00 2001
Message-ID: <5e88ca84d3988e7943cace7b53cd1a249c55a99b.1738940190.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 17:42:34 +0100
Subject: [PATCH] build: Bump minimum glib2 version to 2.66.0
Per our supported platforms the minimum available versions are:
CentOS Stream 9: 2.68.4
Debian 11: 2.66.8
Fedora 39: 2.78.6
openSUSE Leap 15.6: 2.78.6
Ubuntu 22.04: 2.72.4
FreeBSD ports: 2.80.5
macOS homebrew: 2.82.4
macOS macports: 2.78.4
Bump to 2.66 which is limited by Debian 11. While ideally we'd bump to
2.68 which would give us 'g_strv_builder' and friends 2.66 is enough for
g_ptr_array_steal() which can be used to emulate the former with almost
no extra code.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit 420c39d6bd66ccf4841878882f5a3e9e47103ebb)
https://issues.redhat.com/browse/RHEL-77884
---
libvirt.spec.in | 2 +-
meson.build | 2 +-
src/libvirt_private.syms | 4 --
src/qemu/qemu_agent.c | 2 +-
src/qemu/qemu_monitor.c | 2 +-
src/util/glibcompat.c | 94 ----------------------------------------
src/util/glibcompat.h | 18 --------
src/util/vireventglib.c | 12 ++---
8 files changed, 10 insertions(+), 126 deletions(-)
diff --git a/meson.build b/meson.build
index 89ac1594cb..d3e2c939ea 100644
--- a/meson.build
+++ b/meson.build
@@ -998,7 +998,7 @@ else
endif
endif
-glib_version = '2.58.0'
+glib_version = '2.66.0'
glib_dep = dependency('glib-2.0', version: '>=' + glib_version)
gobject_dep = dependency('gobject-2.0', version: '>=' + glib_version)
if host_machine.system() == 'windows'
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index c931003fad..43e2dfb9cd 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1871,10 +1871,6 @@ virStorageSourceUpdatePhysicalSize;
# util/glibcompat.h
-vir_g_fsync;
-vir_g_source_unref;
-vir_g_strdup_printf;
-vir_g_strdup_vprintf;
vir_g_string_replace;
diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index 22359f8518..43fca86f10 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -448,7 +448,7 @@ qemuAgentUnregister(qemuAgent *agent)
{
if (agent->watch) {
g_source_destroy(agent->watch);
- vir_g_source_unref(agent->watch, agent->context);
+ g_source_unref(agent->watch);
agent->watch = NULL;
}
}
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 73f37d26eb..79bd91b539 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -745,7 +745,7 @@ qemuMonitorUnregister(qemuMonitor *mon)
{
if (mon->watch) {
g_source_destroy(mon->watch);
- vir_g_source_unref(mon->watch, mon->context);
+ g_source_unref(mon->watch);
mon->watch = NULL;
}
}
diff --git a/src/util/glibcompat.c b/src/util/glibcompat.c
index 98dcfab389..bcb666992a 100644
--- a/src/util/glibcompat.c
+++ b/src/util/glibcompat.c
@@ -63,100 +63,6 @@
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#undef g_fsync
-#undef g_strdup_printf
-#undef g_strdup_vprintf
-
-
-/* Drop when min glib >= 2.63.0 */
-gint
-vir_g_fsync(gint fd)
-{
-#ifdef G_OS_WIN32
- return _commit(fd);
-#else
- return fsync(fd);
-#endif
-}
-
-
-/* Due to a bug in glib, g_strdup_printf() nor g_strdup_vprintf()
- * abort on OOM. It's fixed in glib's upstream. Provide our own
- * implementation until the fix gets distributed. */
-char *
-vir_g_strdup_printf(const char *msg, ...)
-{
- va_list args;
- char *ret;
- va_start(args, msg);
- ret = g_strdup_vprintf(msg, args);
- if (!ret)
- abort();
- va_end(args);
- return ret;
-}
-
-
-char *
-vir_g_strdup_vprintf(const char *msg, va_list args)
-{
- char *ret;
- ret = g_strdup_vprintf(msg, args);
- if (!ret)
- abort();
- return ret;
-}
-
-
-/*
- * If the last reference to a GSource is released in a non-main
- * thread we're exposed to a race condition that causes a
- * crash:
- *
- * https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1358
- *
- * Thus we're using an idle func to release our ref...
- *
- * ...but this imposes a significant performance penalty on
- * I/O intensive workloads which are sensitive to the iterations
- * of the event loop, so avoid the workaround if we know we have
- * new enough glib.
- *
- * The function below is used from a header file definition.
- *
- * Drop when min glib >= 2.64.0
- */
-#if GLIB_CHECK_VERSION(2, 64, 0)
-void vir_g_source_unref(GSource *src, GMainContext *ctx G_GNUC_UNUSED)
-{
- g_source_unref(src);
-}
-#else
-
-static gboolean
-virEventGLibSourceUnrefIdle(gpointer data)
-{
- GSource *src = data;
-
- g_source_unref(src);
-
- return FALSE;
-}
-
-void vir_g_source_unref(GSource *src, GMainContext *ctx)
-{
- GSource *idle = g_idle_source_new();
-
- g_source_set_callback(idle, virEventGLibSourceUnrefIdle, src, NULL);
-
- g_source_attach(idle, ctx);
-
- g_source_unref(idle);
-}
-
-#endif
-
-
/**
* Adapted (to pass syntax check) from 'g_string_replace' from
* glib-2.81.1. Drop once minimum glib is bumped to 2.68.
diff --git a/src/util/glibcompat.h b/src/util/glibcompat.h
index 474ff95bc5..a3d01089e6 100644
--- a/src/util/glibcompat.h
+++ b/src/util/glibcompat.h
@@ -42,24 +42,6 @@
#endif /* GLib < 2.67.0 */
-
-gint vir_g_fsync(gint fd);
-char *vir_g_strdup_printf(const char *msg, ...)
- G_GNUC_PRINTF(1, 2);
-char *vir_g_strdup_vprintf(const char *msg, va_list args)
- G_GNUC_PRINTF(1, 0);
-
-#if !GLIB_CHECK_VERSION(2, 64, 0)
-# define g_strdup_printf vir_g_strdup_printf
-# define g_strdup_vprintf vir_g_strdup_vprintf
-#endif
-
-#undef g_fsync
-#define g_fsync vir_g_fsync
-
-void vir_g_source_unref(GSource *src, GMainContext *ctx);
-
-
/* Drop once we require glib-2.68 at minimum */
guint
vir_g_string_replace(GString *string,
diff --git a/src/util/vireventglib.c b/src/util/vireventglib.c
index 023dc37445..6c54f62123 100644
--- a/src/util/vireventglib.c
+++ b/src/util/vireventglib.c
@@ -213,7 +213,7 @@ virEventGLibHandleUpdate(int watch,
if (data->source != NULL) {
VIR_DEBUG("Removed old handle source=%p", data->source);
g_source_destroy(data->source);
- vir_g_source_unref(data->source, NULL);
+ g_source_unref(data->source);
}
data->source = virEventGLibAddSocketWatch(
@@ -227,7 +227,7 @@ virEventGLibHandleUpdate(int watch,
VIR_DEBUG("Removed old handle source=%p", data->source);
g_source_destroy(data->source);
- vir_g_source_unref(data->source, NULL);
+ g_source_unref(data->source);
data->source = NULL;
data->events = 0;
}
@@ -276,7 +276,7 @@ virEventGLibHandleRemove(int watch)
if (data->source != NULL) {
g_source_destroy(data->source);
- vir_g_source_unref(data->source, NULL);
+ g_source_unref(data->source);
data->source = NULL;
data->events = 0;
}
@@ -409,7 +409,7 @@ virEventGLibTimeoutUpdate(int timer,
if (interval >= 0) {
if (data->source != NULL) {
g_source_destroy(data->source);
- vir_g_source_unref(data->source, NULL);
+ g_source_unref(data->source);
}
data->interval = interval;
@@ -419,7 +419,7 @@ virEventGLibTimeoutUpdate(int timer,
goto cleanup;
g_source_destroy(data->source);
- vir_g_source_unref(data->source, NULL);
+ g_source_unref(data->source);
data->source = NULL;
}
@@ -468,7 +468,7 @@ virEventGLibTimeoutRemove(int timer)
if (data->source != NULL) {
g_source_destroy(data->source);
- vir_g_source_unref(data->source, NULL);
+ g_source_unref(data->source);
data->source = NULL;
}
--
2.48.1

View File

@ -0,0 +1,75 @@
From b0fb5cbba2e03fbca8471487bf78931b3090b108 Mon Sep 17 00:00:00 2001
Message-Id: <b0fb5cbba2e03fbca8471487bf78931b3090b108@dist-git>
From: Jim Fehlig <jfehlig@suse.com>
Date: Mon, 10 Jan 2022 11:42:58 -0700
Subject: [PATCH] build: Only install libvirt-guests when building libvirtd
libvirt-guests was already moved to the libvirt daemon package in commit
d800c50349. It only needs to be installed when building libvirtd.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
(cherry picked from commit 3be5ba11a2c6fcb2dfdffa03ab4f847113f36b85)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2153688
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
tools/meson.build | 38 ++++++++++++++++++++------------------
1 file changed, 20 insertions(+), 18 deletions(-)
diff --git a/tools/meson.build b/tools/meson.build
index 22fa3604ba..2d0aecb90b 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -297,29 +297,31 @@ if conf.has('WITH_SANLOCK')
)
endif
-configure_file(
- input: 'libvirt-guests.sh.in',
- output: '@BASENAME@',
- configuration: tools_conf,
- install: true,
- install_dir: libexecdir,
- install_mode: 'rwxrwxr-x',
-)
-
-if init_script == 'systemd'
- install_data(
- 'libvirt-guests.sysconf',
- install_dir: sysconfdir / 'sysconfig',
- rename: 'libvirt-guests',
- )
-
+if conf.has('WITH_LIBVIRTD')
configure_file(
- input: 'libvirt-guests.service.in',
+ input: 'libvirt-guests.sh.in',
output: '@BASENAME@',
configuration: tools_conf,
install: true,
- install_dir: prefix / 'lib' / 'systemd' / 'system',
+ install_dir: libexecdir,
+ install_mode: 'rwxrwxr-x',
)
+
+ if init_script == 'systemd'
+ install_data(
+ 'libvirt-guests.sysconf',
+ install_dir: sysconfdir / 'sysconfig',
+ rename: 'libvirt-guests',
+ )
+
+ configure_file(
+ input: 'libvirt-guests.service.in',
+ output: '@BASENAME@',
+ configuration: tools_conf,
+ install: true,
+ install_dir: prefix / 'lib' / 'systemd' / 'system',
+ )
+ endif
endif
if bash_completion_dep.found()
--
2.39.0

View File

@ -1,72 +0,0 @@
From e34ac564b018b166a7d6f955f2abe80a9e62f07e Mon Sep 17 00:00:00 2001
Message-ID: <e34ac564b018b166a7d6f955f2abe80a9e62f07e.1737030652.git.jdenemar@redhat.com>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Mon, 6 Jan 2025 16:11:01 +0100
Subject: [PATCH] conf: Adjust hyperv tlbflush formatting
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit 247357cc292a added support for direct and extended modes for
tlbflush, but forgot to do the formatting as well.
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
(cherry picked from commit 9df14f51735eeb4221a25ccd408a2dccf0a35b59)
https://issues.redhat.com/browse/RHEL-7122
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
src/conf/domain_conf.c | 11 ++++++++++-
tests/qemuxmlconfdata/hyperv.x86_64-latest.xml | 5 ++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index c8254d2146..1f0b67ca28 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -27974,7 +27974,6 @@ virDomainDefFormatFeatures(virBuffer *buf,
case VIR_DOMAIN_HYPERV_RESET:
case VIR_DOMAIN_HYPERV_FREQUENCIES:
case VIR_DOMAIN_HYPERV_REENLIGHTENMENT:
- case VIR_DOMAIN_HYPERV_TLBFLUSH:
case VIR_DOMAIN_HYPERV_IPI:
case VIR_DOMAIN_HYPERV_EVMCS:
case VIR_DOMAIN_HYPERV_AVIC:
@@ -28004,6 +28003,16 @@ virDomainDefFormatFeatures(virBuffer *buf,
}
break;
+ case VIR_DOMAIN_HYPERV_TLBFLUSH:
+ if (def->hyperv_features[j] != VIR_TRISTATE_SWITCH_ON)
+ break;
+
+ if (def->hyperv_tlbflush_direct == VIR_TRISTATE_SWITCH_ON)
+ virBufferAddLit(&hypervChildBuf, "<direct state='on'/>\n");
+ if (def->hyperv_tlbflush_extended == VIR_TRISTATE_SWITCH_ON)
+ virBufferAddLit(&hypervChildBuf, "<extended state='on'/>\n");
+ break;
+
case VIR_DOMAIN_HYPERV_LAST:
break;
}
diff --git a/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml b/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml
index 36d9161fa8..49537188af 100644
--- a/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml
@@ -22,7 +22,10 @@
<vendor_id state='on' value='KVM Hv'/>
<frequencies state='on'/>
<reenlightenment state='on'/>
- <tlbflush state='on'/>
+ <tlbflush state='on'>
+ <direct state='on'/>
+ <extended state='on'/>
+ </tlbflush>
<ipi state='on'/>
<evmcs state='on'/>
<avic state='on'/>
--
2.47.1

View File

@ -0,0 +1,155 @@
From 19f7e6dc950baf346738f462ac5c6b815c04edcc Mon Sep 17 00:00:00 2001
Message-Id: <19f7e6dc950baf346738f462ac5c6b815c04edcc@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Mon, 21 Mar 2022 16:49:25 +0100
Subject: [PATCH] conf: Introduce memory allocation threads
Since its v5.0.0 release QEMU is capable of specifying number of
threads used to allocate memory. It defaults to 1, which may be
too low for humongous guests with gigantic pages.
In general, on QEMU cmd line level it is possible to use
different number of threads per each memory-backend-* object, in
practical terms it's not useful. Therefore, use <memoryBacking/>
to set guest wide value and let all memory devices 'inherit' it,
silently. IOW, don't introduce per device knob because that would
only complicate things for a little or no benefit.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
(cherry picked from commit ba7f98126fa84d354ce72929b77cc111a9a557a9)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2067126
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
docs/formatdomain.rst | 8 +++++---
docs/schemas/domaincommon.rng | 19 +++++++++++++------
src/conf/domain_conf.c | 15 ++++++++++++++-
src/conf/domain_conf.h | 1 +
tests/qemuxml2argvdata/memfd-memory-numa.xml | 2 +-
5 files changed, 34 insertions(+), 11 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 8128e43da4..17e89a0c0d 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -977,7 +977,7 @@ Memory Backing
<locked/>
<source type="file|anonymous|memfd"/>
<access mode="shared|private"/>
- <allocation mode="immediate|ondemand"/>
+ <allocation mode="immediate|ondemand" threads='8'/>
<discard/>
</memoryBacking>
...
@@ -1026,8 +1026,10 @@ influence how virtual memory pages are backed by host pages.
Using the ``mode`` attribute, specify if the memory is to be "shared" or
"private". This can be overridden per numa node by ``memAccess``.
``allocation``
- Using the ``mode`` attribute, specify when to allocate the memory by
- supplying either "immediate" or "ondemand".
+ Using the optional ``mode`` attribute, specify when to allocate the memory by
+ supplying either "immediate" or "ondemand". :since:`Since 8.2.0` it is
+ possible to set the number of threads that hypervisor uses to allocate
+ memory via ``threads`` attribute.
``discard``
When set and supported by hypervisor the memory content is discarded just
before guest shuts down (or when DIMM module is unplugged). Please note that
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 7fa5c2b8b5..c9c1529979 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -745,12 +745,19 @@
</optional>
<optional>
<element name="allocation">
- <attribute name="mode">
- <choice>
- <value>immediate</value>
- <value>ondemand</value>
- </choice>
- </attribute>
+ <optional>
+ <attribute name="mode">
+ <choice>
+ <value>immediate</value>
+ <value>ondemand</value>
+ </choice>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="threads">
+ <ref name="unsignedInt"/>
+ </attribute>
+ </optional>
</element>
</optional>
<optional>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 5691b8d2d5..805a15848e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -19095,6 +19095,13 @@ virDomainDefParseMemory(virDomainDef *def,
VIR_FREE(tmp);
}
+ if (virXPathUInt("string(./memoryBacking/allocation/@threads)",
+ ctxt, &def->mem.allocation_threads) == -2) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("Failed to parse memory allocation threads"));
+ return -1;
+ }
+
if (virXPathNode("./memoryBacking/hugepages", ctxt)) {
/* hugepages will be used */
if ((n = virXPathNodeSet("./memoryBacking/hugepages/page", ctxt, &nodes)) < 0) {
@@ -27639,6 +27646,7 @@ virDomainMemorybackingFormat(virBuffer *buf,
const virDomainMemtune *mem)
{
g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
+ g_auto(virBuffer) allocAttrBuf = VIR_BUFFER_INITIALIZER;
if (mem->nhugepages)
virDomainHugepagesFormat(&childBuf, mem->hugepages, mem->nhugepages);
@@ -27653,8 +27661,13 @@ virDomainMemorybackingFormat(virBuffer *buf,
virBufferAsprintf(&childBuf, "<access mode='%s'/>\n",
virDomainMemoryAccessTypeToString(mem->access));
if (mem->allocation)
- virBufferAsprintf(&childBuf, "<allocation mode='%s'/>\n",
+ virBufferAsprintf(&allocAttrBuf, " mode='%s'",
virDomainMemoryAllocationTypeToString(mem->allocation));
+ if (mem->allocation_threads > 0)
+ virBufferAsprintf(&allocAttrBuf, " threads='%u'", mem->allocation_threads);
+
+ virXMLFormatElement(&childBuf, "allocation", &allocAttrBuf, NULL);
+
if (mem->discard)
virBufferAddLit(&childBuf, "<discard/>\n");
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 144ba4dd12..10af94e2e4 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2677,6 +2677,7 @@ struct _virDomainMemtune {
int source; /* enum virDomainMemorySource */
int access; /* enum virDomainMemoryAccess */
int allocation; /* enum virDomainMemoryAllocation */
+ unsigned int allocation_threads;
virTristateBool discard;
};
diff --git a/tests/qemuxml2argvdata/memfd-memory-numa.xml b/tests/qemuxml2argvdata/memfd-memory-numa.xml
index 1ebcee8939..1ac87e3aef 100644
--- a/tests/qemuxml2argvdata/memfd-memory-numa.xml
+++ b/tests/qemuxml2argvdata/memfd-memory-numa.xml
@@ -10,7 +10,7 @@
</hugepages>
<source type='memfd'/>
<access mode='shared'/>
- <allocation mode='immediate'/>
+ <allocation mode='immediate' threads='8'/>
</memoryBacking>
<vcpu placement='static'>8</vcpu>
<numatune>
--
2.35.1

View File

@ -0,0 +1,46 @@
From 666b68a93006c4299747d159bcacb7164b8c5d91 Mon Sep 17 00:00:00 2001
Message-Id: <666b68a93006c4299747d159bcacb7164b8c5d91@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Thu, 24 Nov 2022 10:28:59 +0100
Subject: [PATCH] conf: Make VIR_DOMAIN_NET_TYPE_ETHERNET not share 'host view'
When setting up QoS for a domain <interface/>, or when reporting
its statistics we may need to swap TX/RX values. This is all
explained in comment to virDomainNetTypeSharesHostView().
However, this function claims that VIR_DOMAIN_NET_TYPE_ETHERNET
also shares the 'host view', meaning the TX/RX values must be
swapped. But that's not true.
An easy reproducer is to start a domain with two <interface/>-s:
one type of network, the other of type ethernet and configure the
same <bandwidth/> for both. Reversed setting can then be observed
(e.g. via tc).
Reported-by: Oleg Vasilev <oleg.vasilev@virtuozzo.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 0862cb3ce46253a58ca02d36b2b6a6397a60bfc7)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2172578
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/conf/domain_conf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 401ddaa1a0..427e7d1bb5 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -30472,9 +30472,9 @@ virDomainNetTypeSharesHostView(const virDomainNetDef *net)
virDomainNetType actualType = virDomainNetGetActualType(net);
switch (actualType) {
case VIR_DOMAIN_NET_TYPE_DIRECT:
- case VIR_DOMAIN_NET_TYPE_ETHERNET:
return true;
case VIR_DOMAIN_NET_TYPE_USER:
+ case VIR_DOMAIN_NET_TYPE_ETHERNET:
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
case VIR_DOMAIN_NET_TYPE_SERVER:
case VIR_DOMAIN_NET_TYPE_CLIENT:
--
2.39.2

View File

@ -0,0 +1,91 @@
From 00c5cab2b92b653edbf491d9ef60359578c3d59a Mon Sep 17 00:00:00 2001
Message-Id: <00c5cab2b92b653edbf491d9ef60359578c3d59a@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 11 May 2022 16:27:18 +0200
Subject: [PATCH] conf: Move virDomainObj::originalMemlock into
qemuDomainObjPrivate
Since v1.3.0-90-gafbe1d4c56 the original value of memlock limit
is stored inside virDomainObj struct directly (under
originalMemlock member). This is needless because the value is
used only inside QEMU driver and thus can reside in
qemuDomainObjPrivate struct.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 75df6d2c291c48d65c1e54dd93e3d2d3cb0712e7)
https://bugzilla.redhat.com/show_bug.cgi?id=2089433
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/conf/domain_conf.h | 3 ---
src/qemu/qemu_domain.c | 9 +++++----
src/qemu/qemu_domain.h | 3 +++
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index d0d0fdc815..45976beb2b 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -3031,9 +3031,6 @@ struct _virDomainObj {
int taint;
size_t ndeprecations;
char **deprecations;
-
- unsigned long long originalMemlock; /* Original RLIMIT_MEMLOCK, zero if no
- * restore will be required later */
};
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainObj, virObjectUnref);
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 40fe9985e6..86d673dafa 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9269,6 +9269,7 @@ int
qemuDomainAdjustMaxMemLock(virDomainObj *vm,
bool forceVFIO)
{
+ qemuDomainObjPrivate *priv = vm->privateData;
unsigned long long currentMemLock = 0;
unsigned long long desiredMemLock = 0;
@@ -9281,8 +9282,8 @@ qemuDomainAdjustMaxMemLock(virDomainObj *vm,
/* If this is the first time adjusting the limit, save the current
* value so that we can restore it once memory locking is no longer
* required */
- if (vm->originalMemlock == 0) {
- vm->originalMemlock = currentMemLock;
+ if (priv->originalMemlock == 0) {
+ priv->originalMemlock = currentMemLock;
}
} else {
/* If the limit is already high enough, we can assume
@@ -9295,8 +9296,8 @@ qemuDomainAdjustMaxMemLock(virDomainObj *vm,
} else {
/* Once memory locking is no longer required, we can restore the
* original, usually very low, limit */
- desiredMemLock = vm->originalMemlock;
- vm->originalMemlock = 0;
+ desiredMemLock = priv->originalMemlock;
+ priv->originalMemlock = 0;
}
if (desiredMemLock > 0 &&
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index e5046367e3..e9497d20de 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -241,6 +241,9 @@ struct _qemuDomainObjPrivate {
GSList *dbusVMStateIds;
/* true if -object dbus-vmstate was added */
bool dbusVMState;
+
+ unsigned long long originalMemlock; /* Original RLIMIT_MEMLOCK, zero if no
+ * restore will be required later */
};
#define QEMU_DOMAIN_PRIVATE(vm) \
--
2.35.1

View File

@ -0,0 +1,88 @@
From 3c65b917f70d556fa1059b0400771c8159b8ca3b Mon Sep 17 00:00:00 2001
Message-Id: <3c65b917f70d556fa1059b0400771c8159b8ca3b@dist-git>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Fri, 13 May 2022 12:31:08 +0200
Subject: [PATCH] conf: adjust method name virDomainDeviceCCWAddressParseXML
Adjust method name virDomainDeviceCCWAddressParseXML to
virCCWDeviceAddressParseXML.
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 2d9fd19bf5d7a3d33b94e464c335252682edd623)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/conf/device_conf.c | 4 ++--
src/conf/device_conf.h | 4 ++--
src/conf/domain_conf.c | 3 +--
src/libvirt_private.syms | 2 +-
4 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
index 958e2f43cc..e93fd57341 100644
--- a/src/conf/device_conf.c
+++ b/src/conf/device_conf.c
@@ -259,8 +259,8 @@ virPCIDeviceAddressFormat(virBuffer *buf,
}
int
-virDomainDeviceCCWAddressParseXML(xmlNodePtr node,
- virCCWDeviceAddress *addr)
+virCCWDeviceAddressParseXML(xmlNodePtr node,
+ virCCWDeviceAddress *addr)
{
int cssid;
int ssid;
diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h
index 01e2edccc9..910e6b7792 100644
--- a/src/conf/device_conf.h
+++ b/src/conf/device_conf.h
@@ -193,8 +193,8 @@ void virPCIDeviceAddressFormat(virBuffer *buf,
virPCIDeviceAddress addr,
bool includeTypeInAddr);
-int virDomainDeviceCCWAddressParseXML(xmlNodePtr node,
- virCCWDeviceAddress *addr);
+int virCCWDeviceAddressParseXML(xmlNodePtr node,
+ virCCWDeviceAddress *addr);
int virDomainDeviceDriveAddressParseXML(xmlNodePtr node,
virDomainDeviceDriveAddress *addr);
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 1e1c7f01b1..401ddaa1a0 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -6630,8 +6630,7 @@ virDomainDeviceAddressParseXML(xmlNodePtr address,
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
- if (virDomainDeviceCCWAddressParseXML
- (address, &info->addr.ccw) < 0)
+ if (virCCWDeviceAddressParseXML(address, &info->addr.ccw) < 0)
return -1;
break;
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 0d3ee4c20a..44b551fb60 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -124,6 +124,7 @@ virCPUModeTypeToString;
# conf/device_conf.h
+virCCWDeviceAddressParseXML;
virDeviceInfoPCIAddressExtensionIsPresent;
virDeviceInfoPCIAddressExtensionIsWanted;
virDeviceInfoPCIAddressIsPresent;
@@ -131,7 +132,6 @@ virDeviceInfoPCIAddressIsWanted;
virDomainDeviceAddressIsValid;
virDomainDeviceAddressTypeToString;
virDomainDeviceCcidAddressParseXML;
-virDomainDeviceCCWAddressParseXML;
virDomainDeviceDriveAddressParseXML;
virDomainDeviceInfoAddressIsEqual;
virDomainDeviceSpaprVioAddressParseXML;
--
2.39.1

View File

@ -1,158 +0,0 @@
From de4d1cf7306b8c456ccd167f29d47c7fb7b49943 Mon Sep 17 00:00:00 2001
Message-ID: <de4d1cf7306b8c456ccd167f29d47c7fb7b49943.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Tue, 11 Feb 2025 16:44:49 -0500
Subject: [PATCH] conf: change virDomainHostdevInsert() to return void
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We haven't checked for memalloc failure in many years, and that was
the only reason this function would have ever failed.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 956c6684113b46b2350db698dc75604f4c3a4b76)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/conf/domain_conf.c | 15 +++++----------
src/conf/domain_conf.h | 2 +-
src/libxl/libxl_domain.c | 5 +----
src/libxl/libxl_driver.c | 3 +--
src/lxc/lxc_driver.c | 3 +--
src/qemu/qemu_driver.c | 3 +--
src/qemu/qemu_process.c | 3 +--
7 files changed, 11 insertions(+), 23 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d83f1ba240..cba0b162f4 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -14456,12 +14456,10 @@ virDomainChrTargetTypeToString(int deviceType,
return type;
}
-int
+void
virDomainHostdevInsert(virDomainDef *def, virDomainHostdevDef *hostdev)
{
VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev);
-
- return 0;
}
virDomainHostdevDef *
@@ -14877,9 +14875,8 @@ virDomainDiskRemoveByName(virDomainDef *def, const char *name)
int virDomainNetInsert(virDomainDef *def, virDomainNetDef *net)
{
/* hostdev net devices must also exist in the hostdevs array */
- if (net->type == VIR_DOMAIN_NET_TYPE_HOSTDEV &&
- virDomainHostdevInsert(def, &net->data.hostdev.def) < 0)
- return -1;
+ if (net->type == VIR_DOMAIN_NET_TYPE_HOSTDEV)
+ virDomainHostdevInsert(def, &net->data.hostdev.def);
VIR_APPEND_ELEMENT(def->nets, def->nnets, net);
return 0;
@@ -19257,10 +19254,8 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt,
* where the actual network type is already known to be
* hostdev) must also be in the hostdevs array.
*/
- if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_HOSTDEV &&
- virDomainHostdevInsert(def, virDomainNetGetActualHostdev(net)) < 0) {
- return NULL;
- }
+ if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_HOSTDEV)
+ virDomainHostdevInsert(def, virDomainNetGetActualHostdev(net));
}
VIR_FREE(nodes);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 5237046196..2d38e8fa51 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -3982,7 +3982,7 @@ virDomainNetDef *virDomainNetRemove(virDomainDef *def, size_t i);
virDomainNetDef *virDomainNetRemoveByObj(virDomainDef *def, virDomainNetDef *net);
void virDomainNetRemoveHostdev(virDomainDef *def, virDomainNetDef *net);
-int virDomainHostdevInsert(virDomainDef *def, virDomainHostdevDef *hostdev);
+void virDomainHostdevInsert(virDomainDef *def, virDomainHostdevDef *hostdev);
virDomainHostdevDef *
virDomainHostdevRemove(virDomainDef *def, size_t i);
int virDomainHostdevFind(virDomainDef *def, virDomainHostdevDef *match,
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index cad6c9ce42..711e22b8df 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -1015,10 +1015,7 @@ libxlNetworkPrepareDevices(virDomainDef *def)
/* Each type='hostdev' network device must also have a
* corresponding entry in the hostdevs array.
*/
- virDomainHostdevDef *hostdev = virDomainNetGetActualHostdev(net);
-
- if (virDomainHostdevInsert(def, hostdev) < 0)
- return -1;
+ virDomainHostdevInsert(def, virDomainNetGetActualHostdev(net));
}
}
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 29dcee3cfc..b670e697c6 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -3585,8 +3585,7 @@ libxlDomainAttachDeviceConfig(virDomainDef *vmdef, virDomainDeviceDef *dev)
return -1;
}
- if (virDomainHostdevInsert(vmdef, hostdev) < 0)
- return -1;
+ virDomainHostdevInsert(vmdef, hostdev);
dev->data.hostdev = NULL;
break;
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index d682e7168a..9609d7d10c 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -3025,8 +3025,7 @@ lxcDomainAttachDeviceConfig(virDomainDef *vmdef,
_("device is already in the domain configuration"));
return -1;
}
- if (virDomainHostdevInsert(vmdef, hostdev) < 0)
- return -1;
+ virDomainHostdevInsert(vmdef, hostdev);
dev->data.hostdev = NULL;
ret = 0;
break;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 9a69574f31..379f9fb74f 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -6734,8 +6734,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef,
_("device is already in the domain configuration"));
return -1;
}
- if (virDomainHostdevInsert(vmdef, hostdev))
- return -1;
+ virDomainHostdevInsert(vmdef, hostdev);
dev->data.hostdev = NULL;
break;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 1866c8f4e1..a45f1b5b7d 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5929,8 +5929,7 @@ qemuProcessPrepareDomainNetwork(virDomainObj *vm)
if (qemuDomainPrepareHostdev(hostdev, priv) < 0)
return -1;
- if (virDomainHostdevInsert(def, hostdev) < 0)
- return -1;
+ virDomainHostdevInsert(def, hostdev);
}
}
return 0;
--
2.48.1

View File

@ -1,213 +0,0 @@
From 2acec098dbc64f20d36f2b7592c2867885196141 Mon Sep 17 00:00:00 2001
Message-ID: <2acec098dbc64f20d36f2b7592c2867885196141.1737030652.git.jdenemar@redhat.com>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Fri, 20 Dec 2024 12:27:22 +0100
Subject: [PATCH] conf, docs: Add support for direct and extended tlbflush
features
Similarly to stimer-direct these are subelements of <tlbflush/> in the
domain XML.
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit ac08b362da724f1dd7aa6f05c0a9e7a960a7f024)
https://issues.redhat.com/browse/RHEL-7122
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
docs/formatdomain.rst | 13 ++++++++-----
src/conf/domain_conf.c | 26 +++++++++++++++++++++++++-
src/conf/domain_conf.h | 2 ++
src/conf/schemas/domaincommon.rng | 21 ++++++++++++++++++++-
src/cpu/cpu_x86.c | 7 +++++++
src/cpu/cpu_x86_data.h | 2 ++
6 files changed, 64 insertions(+), 7 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 60bee8bd4f..8d787ef59a 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -1993,7 +1993,10 @@ Hypervisors may allow certain CPU / machine features to be toggled on/off.
<vendor_id state='on' value='KVM Hv'/>
<frequencies state='on'/>
<reenlightenment state='on'/>
- <tlbflush state='on'/>
+ <tlbflush state='on'>
+ <direct state='on'/>
+ <extended state='on'/>
+ </tlbflush>
<ipi state='on'/>
<evmcs state='on'/>
<emsr_bitmap state='on'/>
@@ -2068,9 +2071,9 @@ are:
Enable various features improving behavior of guests running Microsoft
Windows.
- =============== ====================================================================== ============================================ =======================================================
+ =============== ====================================================================== ============================================ ========================================================================
Feature Description Value Since
- =============== ====================================================================== ============================================ =======================================================
+ =============== ====================================================================== ============================================ ========================================================================
relaxed Relax constraints on timers on, off :since:`1.0.0 (QEMU 2.0)`
vapic Enable virtual APIC on, off :since:`1.1.0 (QEMU 2.0)`
spinlocks Enable spinlock support on, off; retries - at least 4095 :since:`1.1.0 (QEMU 2.0)`
@@ -2082,13 +2085,13 @@ are:
vendor_id Set hypervisor vendor id on, off; value - string, up to 12 characters :since:`1.3.3 (QEMU 2.5)`
frequencies Expose frequency MSRs on, off :since:`4.7.0 (QEMU 2.12)`
reenlightenment Enable re-enlightenment notification on migration on, off :since:`4.7.0 (QEMU 3.0)`
- tlbflush Enable PV TLB flush support on, off :since:`4.7.0 (QEMU 3.0)`
+ tlbflush Enable PV TLB flush support on, off; direct - on,off; extended - on,off :since:`4.7.0 (QEMU 3.0), direct and extended modes 11.0.0 (QEMU 7.1.0)`
ipi Enable PV IPI support on, off :since:`4.10.0 (QEMU 3.1)`
evmcs Enable Enlightened VMCS on, off :since:`4.10.0 (QEMU 3.1)`
avic Enable use Hyper-V SynIC with hardware APICv/AVIC on, off :since:`8.10.0 (QEMU 6.2)`
emsr_bitmap Avoid unnecessary updates to L2 MSR Bitmap upon vmexits. on, off :since:`10.7.0 (QEMU 7.1)`
xmm_input Enable XMM Fast Hypercall Input on, off :since:`10.7.0 (QEMU 7.1)`
- =============== ====================================================================== ============================================ =======================================================
+ =============== ====================================================================== ============================================ ========================================================================
:since:`Since 8.0.0`, the hypervisor can be configured further by setting
the ``mode`` attribute to one of the following values:
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 4ad8289b89..c2164f6377 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -16672,7 +16672,6 @@ virDomainFeaturesHyperVDefParse(virDomainDef *def,
case VIR_DOMAIN_HYPERV_RESET:
case VIR_DOMAIN_HYPERV_FREQUENCIES:
case VIR_DOMAIN_HYPERV_REENLIGHTENMENT:
- case VIR_DOMAIN_HYPERV_TLBFLUSH:
case VIR_DOMAIN_HYPERV_IPI:
case VIR_DOMAIN_HYPERV_EVMCS:
case VIR_DOMAIN_HYPERV_AVIC:
@@ -16680,6 +16679,31 @@ virDomainFeaturesHyperVDefParse(virDomainDef *def,
case VIR_DOMAIN_HYPERV_XMM_INPUT:
break;
+ case VIR_DOMAIN_HYPERV_TLBFLUSH:
+ if (value != VIR_TRISTATE_SWITCH_ON)
+ break;
+
+ child = xmlFirstElementChild(node);
+ while (child) {
+ if (STREQ((const char *)child->name, "direct")) {
+ if (virXMLPropTristateSwitch(child, "state", VIR_XML_PROP_REQUIRED,
+ &def->hyperv_tlbflush_direct) < 0)
+ return -1;
+ } else if (STREQ((const char *)child->name, "extended")) {
+ if (virXMLPropTristateSwitch(child, "state", VIR_XML_PROP_REQUIRED,
+ &def->hyperv_tlbflush_extended) < 0)
+ return -1;
+ } else {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("unsupported Hyper-V tlbflush feature: %1$s"),
+ child->name);
+ return -1;
+ }
+
+ child = xmlNextElementSibling(child);
+ }
+ break;
+
case VIR_DOMAIN_HYPERV_STIMER:
if (value != VIR_TRISTATE_SWITCH_ON)
break;
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index a187ab4083..9f7c28343f 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -3101,6 +3101,8 @@ struct _virDomainDef {
virDomainXenPassthroughMode xen_passthrough_mode;
unsigned int hyperv_spinlocks;
virTristateSwitch hyperv_stimer_direct;
+ virTristateSwitch hyperv_tlbflush_direct;
+ virTristateSwitch hyperv_tlbflush_extended;
virGICVersion gic_version;
virDomainHPTResizing hpt_resizing;
unsigned long long hpt_maxpagesize; /* Stored in KiB */
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index b3fdbf7ffb..7121519ca3 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -8027,7 +8027,7 @@
</optional>
<optional>
<element name="tlbflush">
- <ref name="featurestate"/>
+ <ref name="tlbflush"/>
</element>
</optional>
<optional>
@@ -8075,6 +8075,25 @@
</interleave>
</define>
+ <!-- Hyper-V tlbflush features -->
+ <define name="tlbflush">
+ <interleave>
+ <optional>
+ <ref name="featurestate"/>
+ </optional>
+ <optional>
+ <element name="direct">
+ <ref name="featurestate"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="extended">
+ <ref name="featurestate"/>
+ </element>
+ </optional>
+ </interleave>
+ </define>
+
<!-- Optional KVM features -->
<define name="kvm">
<element name="kvm">
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index 13695802da..6d72d446c9 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -99,6 +99,8 @@ KVM_FEATURE_DEF(VIR_CPU_x86_HV_REENLIGHTENMENT,
KVM_FEATURE_DEF(VIR_CPU_x86_HV_STIMER_DIRECT,
0x40000003, 0x0, 0x00080000);
+KVM_FEATURE_DEF(VIR_CPU_x86_HV_TLBFLUSH_DIRECT,
+ 0x40000003, 0x0, 0x00004000);
KVM_FEATURE_DEF(VIR_CPU_x86_HV_TLBFLUSH,
0x40000004, 0x00000004, 0x0);
@@ -109,6 +111,9 @@ KVM_FEATURE_DEF(VIR_CPU_x86_HV_IPI,
KVM_FEATURE_DEF(VIR_CPU_x86_HV_EVMCS,
0x40000004, 0x00004000, 0x0);
+KVM_FEATURE_DEF(VIR_CPU_x86_HV_TLBFLUSH_EXT,
+ 0x40000004, 0x0, 0x00004000);
+
KVM_FEATURE_DEF(VIR_CPU_x86_HV_EMSR_BITMAP,
0x4000000A, 0x00080000, 0x0);
static virCPUx86Feature x86_kvm_features[] =
@@ -130,6 +135,8 @@ static virCPUx86Feature x86_kvm_features[] =
KVM_FEATURE(VIR_CPU_x86_HV_EVMCS),
KVM_FEATURE(VIR_CPU_x86_HV_STIMER_DIRECT),
KVM_FEATURE(VIR_CPU_x86_HV_EMSR_BITMAP),
+ KVM_FEATURE(VIR_CPU_x86_HV_TLBFLUSH_DIRECT),
+ KVM_FEATURE(VIR_CPU_x86_HV_TLBFLUSH_EXT),
};
typedef struct _virCPUx86Signature virCPUx86Signature;
diff --git a/src/cpu/cpu_x86_data.h b/src/cpu/cpu_x86_data.h
index 43ad2faeb1..448acbbeb2 100644
--- a/src/cpu/cpu_x86_data.h
+++ b/src/cpu/cpu_x86_data.h
@@ -60,6 +60,8 @@ struct _virCPUx86MSR {
#define VIR_CPU_x86_HV_FREQUENCIES "hv-frequencies"
#define VIR_CPU_x86_HV_REENLIGHTENMENT "hv-reenlightenment"
#define VIR_CPU_x86_HV_TLBFLUSH "hv-tlbflush"
+#define VIR_CPU_x86_HV_TLBFLUSH_EXT "hv-tlbflush-ext"
+#define VIR_CPU_x86_HV_TLBFLUSH_DIRECT "hv-tlbflush-direct"
#define VIR_CPU_x86_HV_IPI "hv-ipi"
#define VIR_CPU_x86_HV_EVMCS "hv-evmcs"
#define VIR_CPU_x86_HV_AVIC "hv-avic"
--
2.47.1

View File

@ -1,170 +0,0 @@
From 8aac60b3f07513fea6968b1f9d340f7408a3a8e6 Mon Sep 17 00:00:00 2001
Message-ID: <8aac60b3f07513fea6968b1f9d340f7408a3a8e6.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Sun, 9 Feb 2025 22:52:54 -0500
Subject: [PATCH] conf/qemu: make <source> element *almost* optional for
type=vhostuser
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
For some reason, when vhostuser interface support was added in 2014,
the parser required that the XML for the <interface> have a <source>
element with type, mode, and path, all 3 also required. This in spite
of the fact that 'unix' is the only possible valid setting for type,
and 95% of the time the mode is set to 'client' (as I understand from
comments in the code, normally a guest will use mode='client' to
connect to an existing socket that is precreated (by OVS?), and the
only use for mode='server' is for test setups where one guest is setup
with a listening vhostuser socket (i.e. 'server') and another guest
connects to that socket (i.e. 'client')). (or maybe one guest connects
to OVS in server mode, and all the others connect in client mode, not
sure - I don't claim to be an expert on vhost-user.)
So from the point of view of existing vhost-user functionality, it
seems reasonable to make 'type' and 'mode' optional, and by default
fill in the vhostuser part of the NetDef as if they were 'unix' and
'client'.
In theory, the <source> element itself is also not *directly* required
after this patch, however, the path attribute of <source> *is*
required (for now), so effectively the <source> element is still
required.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit fb4bfa78589f7f556b6b0a176f109c94516d3cdd)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/conf/domain_conf.c | 56 ++++++++++++-------------------
src/conf/schemas/domaincommon.rng | 4 ++-
src/qemu/qemu_validate.c | 20 +++++++----
3 files changed, 39 insertions(+), 41 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index cba0b162f4..b1e9dda80e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9767,50 +9767,38 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
g_autofree char *vhostuser_type = NULL;
virDomainNetVhostuserMode vhostuser_mode;
- if (virDomainNetDefParseXMLRequireSource(def, source_node) < 0)
- return NULL;
-
- if (!(vhostuser_type = virXMLPropStringRequired(source_node, "type")))
- return NULL;
-
- if (STRNEQ_NULLABLE(vhostuser_type, "unix")) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Type='%1$s' unsupported for <interface type='vhostuser'>"),
- vhostuser_type);
- return NULL;
- }
-
if (!(def->data.vhostuser = virDomainChrSourceDefNew(xmlopt)))
return NULL;
+ /* Default (and only valid) value of type is "unix".
+ * Everything else's default value is 0/NULL.
+ */
def->data.vhostuser->type = VIR_DOMAIN_CHR_TYPE_UNIX;
- if (!(def->data.vhostuser->data.nix.path = virXMLPropStringRequired(source_node, "path")))
- return NULL;
+ if (source_node) {
+ if ((vhostuser_type = virXMLPropString(source_node, "type"))) {
+ if (STRNEQ(vhostuser_type, "unix")) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Type='%1$s' unsupported for <interface type='vhostuser'>"),
+ vhostuser_type);
+ return NULL;
+ }
+ }
- if (virXMLPropEnum(source_node, "mode",
- virDomainNetVhostuserModeTypeFromString,
- VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO,
- &vhostuser_mode) < 0)
- return NULL;
+ def->data.vhostuser->data.nix.path = virXMLPropString(source_node, "path");
- switch (vhostuser_mode) {
- case VIR_DOMAIN_NET_VHOSTUSER_MODE_CLIENT:
- def->data.vhostuser->data.nix.listen = false;
- break;
+ if (virXMLPropEnum(source_node, "mode", virDomainNetVhostuserModeTypeFromString,
+ VIR_XML_PROP_NONZERO, &vhostuser_mode) < 0) {
+ return NULL;
+ }
- case VIR_DOMAIN_NET_VHOSTUSER_MODE_SERVER:
- def->data.vhostuser->data.nix.listen = true;
- break;
+ if (vhostuser_mode == VIR_DOMAIN_NET_VHOSTUSER_MODE_SERVER)
+ def->data.vhostuser->data.nix.listen = true;
- case VIR_DOMAIN_NET_VHOSTUSER_MODE_NONE:
- case VIR_DOMAIN_NET_VHOSTUSER_MODE_LAST:
- break;
+ if (virDomainChrSourceReconnectDefParseXML(&def->data.vhostuser->data.nix.reconnect,
+ source_node, ctxt) < 0)
+ return NULL;
}
-
- if (virDomainChrSourceReconnectDefParseXML(&def->data.vhostuser->data.nix.reconnect,
- source_node, ctxt) < 0)
- return NULL;
}
break;
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index 7121519ca3..cbc093ca7b 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -3485,7 +3485,9 @@
<value>vhostuser</value>
</attribute>
<interleave>
- <ref name="unixSocketSource"/>
+ <optional>
+ <ref name="unixSocketSource"/>
+ </optional>
<ref name="interface-options"/>
</interleave>
</group>
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index b7b2e3d0af..eb8c5366f6 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1810,12 +1810,20 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
}
}
- if (net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER &&
- net->data.vhostuser->data.nix.listen &&
- net->data.vhostuser->data.nix.reconnect.enabled == VIR_TRISTATE_BOOL_YES) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("'reconnect' attribute is not supported when source mode='server' for <interface type='vhostuser'>"));
- return -1;
+ if (net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
+ if (!net->data.vhostuser->data.nix.path) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("Missing required attribute '%1$s' in element '%2$s'"),
+ "path", "source");
+ return -1;
+ }
+
+ if (net->data.vhostuser->data.nix.listen &&
+ net->data.vhostuser->data.nix.reconnect.enabled == VIR_TRISTATE_BOOL_YES) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("'reconnect' attribute is not supported when source mode='server' for <interface type='vhostuser'>"));
+ return -1;
+ }
}
if (!virDomainNetIsVirtioModel(net)) {
--
2.48.1

View File

@ -1,112 +0,0 @@
From 6f1673eb80487d090c4abc2feaf6a6821fb09580 Mon Sep 17 00:00:00 2001
Message-ID: <6f1673eb80487d090c4abc2feaf6a6821fb09580.1737030652.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Mon, 6 Jan 2025 17:20:57 +0100
Subject: [PATCH] conf: refactor hyperv features formatting
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add a nested buffer for whatever sub-elements a particular
hyperv feature might have.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
(cherry picked from commit ad6b4d1fef275036b31a2bee435144871ebbcfbb)
https://issues.redhat.com/browse/RHEL-7122
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
src/conf/domain_conf.c | 46 +++++++++++++++++-------------------------
1 file changed, 19 insertions(+), 27 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index c2164f6377..c8254d2146 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -27954,13 +27954,15 @@ virDomainDefFormatFeatures(virBuffer *buf,
virBufferAsprintf(&childBuf, "<hyperv mode='%s'>\n",
virDomainHyperVModeTypeToString(def->features[i]));
- virBufferAdjustIndent(&childBuf, 2);
+
for (j = 0; j < VIR_DOMAIN_HYPERV_LAST; j++) {
+ g_auto(virBuffer) hypervAttrBuf = VIR_BUFFER_INITIALIZER;
+ g_auto(virBuffer) hypervChildBuf = VIR_BUFFER_INIT_CHILD(&tmpChildBuf);
+
if (def->hyperv_features[j] == VIR_TRISTATE_SWITCH_ABSENT)
continue;
- virBufferAsprintf(&childBuf, "<%s state='%s'",
- virDomainHypervTypeToString(j),
+ virBufferAsprintf(&hypervAttrBuf, " state='%s'",
virTristateSwitchTypeToString(def->hyperv_features[j]));
switch ((virDomainHyperv) j) {
@@ -27978,49 +27980,39 @@ virDomainDefFormatFeatures(virBuffer *buf,
case VIR_DOMAIN_HYPERV_AVIC:
case VIR_DOMAIN_HYPERV_EMSR_BITMAP:
case VIR_DOMAIN_HYPERV_XMM_INPUT:
- virBufferAddLit(&childBuf, "/>\n");
break;
case VIR_DOMAIN_HYPERV_SPINLOCKS:
- if (def->hyperv_features[j] != VIR_TRISTATE_SWITCH_ON) {
- virBufferAddLit(&childBuf, "/>\n");
- break;
+ if (def->hyperv_features[j] == VIR_TRISTATE_SWITCH_ON) {
+ virBufferAsprintf(&hypervAttrBuf,
+ " retries='%d'", def->hyperv_spinlocks);
}
- virBufferAsprintf(&childBuf, " retries='%d'/>\n",
- def->hyperv_spinlocks);
break;
case VIR_DOMAIN_HYPERV_STIMER:
- if (def->hyperv_features[j] != VIR_TRISTATE_SWITCH_ON) {
- virBufferAddLit(&childBuf, "/>\n");
- break;
- }
- if (def->hyperv_stimer_direct == VIR_TRISTATE_SWITCH_ON) {
- virBufferAddLit(&childBuf, ">\n");
- virBufferAdjustIndent(&childBuf, 2);
- virBufferAddLit(&childBuf, "<direct state='on'/>\n");
- virBufferAdjustIndent(&childBuf, -2);
- virBufferAddLit(&childBuf, "</stimer>\n");
- } else {
- virBufferAddLit(&childBuf, "/>\n");
+ if (def->hyperv_features[j] == VIR_TRISTATE_SWITCH_ON &&
+ def->hyperv_stimer_direct == VIR_TRISTATE_SWITCH_ON) {
+ virBufferAddLit(&hypervChildBuf, "<direct state='on'/>\n");
}
break;
case VIR_DOMAIN_HYPERV_VENDOR_ID:
- if (def->hyperv_features[j] != VIR_TRISTATE_SWITCH_ON) {
- virBufferAddLit(&childBuf, "/>\n");
- break;
+ if (def->hyperv_features[j] == VIR_TRISTATE_SWITCH_ON) {
+ virBufferEscapeString(&hypervAttrBuf, " value='%s'",
+ def->hyperv_vendor_id);
}
- virBufferEscapeString(&childBuf, " value='%s'/>\n",
- def->hyperv_vendor_id);
break;
case VIR_DOMAIN_HYPERV_LAST:
break;
}
+
+ virXMLFormatElement(&tmpChildBuf, virDomainHypervTypeToString(j),
+ &hypervAttrBuf, &hypervChildBuf);
}
- virBufferAdjustIndent(&childBuf, -2);
+
+ virBufferAddBuffer(&childBuf, &tmpChildBuf);
virBufferAddLit(&childBuf, "</hyperv>\n");
break;
--
2.47.1

View File

@ -0,0 +1,151 @@
From 0c09e4225c511ce1b0ebe22e45962f83d5145e66 Mon Sep 17 00:00:00 2001
Message-Id: <0c09e4225c511ce1b0ebe22e45962f83d5145e66@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Fri, 10 Jun 2022 15:10:29 +0200
Subject: [PATCH] conf: virtiofs: add thread_pool element
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add an element to configure the thread pool size:
...
<binary>
<thread_pool size='16'/>
</binary>
...
https://bugzilla.redhat.com/show_bug.cgi?id=2072905
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 0df2e7df80452f81edbfeb0ee355235b533346a9)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
https://bugzilla.redhat.com/show_bug.cgi?id=2079582
---
docs/formatdomain.rst | 6 ++++++
docs/schemas/domaincommon.rng | 9 +++++++++
src/conf/domain_conf.c | 15 +++++++++++++++
src/conf/domain_conf.h | 1 +
.../qemuxml2argvdata/vhost-user-fs-fd-memory.xml | 1 +
5 files changed, 32 insertions(+)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 17e89a0c0d..e6cf2ec083 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -3316,6 +3316,7 @@ A directory on the host that can be accessed directly from the guest.
<cache mode='always'/>
<sandbox mode='namespace'/>
<lock posix='on' flock='on'/>
+ <thread_pool size='16'/>
</binary>
<source dir='/path'/>
<target dir='mount_tag'/>
@@ -3449,6 +3450,11 @@ A directory on the host that can be accessed directly from the guest.
``chroot``, see the
`virtiofsd documentation <https://qemu.readthedocs.io/en/latest/tools/virtiofsd.html>`__
for more details. ( :since:`Since 7.2.0` )
+ Element ``thread_pool`` accepts one attribute ``size`` which defines the
+ maximum thread pool size. A value of "0" disables the pool.
+ The thread pool helps increase the number of requests in flight when used with
+ storage that has a higher latency. However, it has an overhead, and so for
+ fast, low latency filesystems, it may be best to turn it off. ( :since:`Since 8.5.0` )
``source``
The resource on the host that is being accessed in the guest. The ``name``
attribute must be used with ``type='template'``, and the ``dir`` attribute
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index c9c1529979..79c8979410 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -3064,6 +3064,15 @@
</optional>
</element>
</optional>
+ <optional>
+ <element name="thread_pool">
+ <optional>
+ <attribute name="size">
+ <data type="integer"/>
+ </attribute>
+ </optional>
+ </element>
+ </optional>
</interleave>
</element>
</define>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 92510973e6..95afd9226e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2447,6 +2447,8 @@ virDomainFSDefNew(virDomainXMLOption *xmlopt)
ret->src = virStorageSourceNew();
+ ret->thread_pool_size = -1;
+
if (xmlopt &&
xmlopt->privateData.fsNew &&
!(ret->privateData = xmlopt->privateData.fsNew()))
@@ -9869,6 +9871,7 @@ virDomainFSDefParseXML(virDomainXMLOption *xmlopt,
if (def->fsdriver == VIR_DOMAIN_FS_DRIVER_TYPE_VIRTIOFS) {
g_autofree char *queue_size = virXPathString("string(./driver/@queue)", ctxt);
g_autofree char *binary = virXPathString("string(./binary/@path)", ctxt);
+ g_autofree char *thread_pool_size = virXPathString("string(./binary/thread_pool/@size)", ctxt);
g_autofree char *xattr = virXPathString("string(./binary/@xattr)", ctxt);
g_autofree char *cache = virXPathString("string(./binary/cache/@mode)", ctxt);
g_autofree char *sandbox = virXPathString("string(./binary/sandbox/@mode)", ctxt);
@@ -9883,6 +9886,14 @@ virDomainFSDefParseXML(virDomainXMLOption *xmlopt,
goto error;
}
+ if (thread_pool_size &&
+ virStrToLong_i(thread_pool_size, NULL, 10, &def->thread_pool_size) < 0) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("cannot parse thread pool size '%s' for virtiofs"),
+ queue_size);
+ goto error;
+ }
+
if (binary)
def->binary = virFileSanitizePath(binary);
@@ -24205,6 +24216,10 @@ virDomainFSDefFormat(virBuffer *buf,
}
virXMLFormatElement(&binaryBuf, "lock", &lockAttrBuf, NULL);
+
+ if (def->thread_pool_size >= 0)
+ virBufferAsprintf(&binaryBuf, "<thread_pool size='%d'/>\n", def->thread_pool_size);
+
}
virDomainVirtioOptionsFormat(&driverAttrBuf, def->virtio);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 10af94e2e4..d0d0fdc815 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -892,6 +892,7 @@ struct _virDomainFSDef {
virTristateSwitch posix_lock;
virTristateSwitch flock;
virDomainFSSandboxMode sandbox;
+ int thread_pool_size;
virDomainVirtioOptions *virtio;
virObject *privateData;
};
diff --git a/tests/qemuxml2argvdata/vhost-user-fs-fd-memory.xml b/tests/qemuxml2argvdata/vhost-user-fs-fd-memory.xml
index abddf0870b..81de8c0dd7 100644
--- a/tests/qemuxml2argvdata/vhost-user-fs-fd-memory.xml
+++ b/tests/qemuxml2argvdata/vhost-user-fs-fd-memory.xml
@@ -32,6 +32,7 @@
<cache mode='always'/>
<sandbox mode='chroot'/>
<lock posix='off' flock='off'/>
+ <thread_pool size='16'/>
</binary>
<source dir='/path'/>
<target dir='mount_tag'/>
--
2.35.1

View File

@ -1,658 +0,0 @@
From 307d105889cf0645b40d2ed7d7286f7124964732 Mon Sep 17 00:00:00 2001
Message-ID: <307d105889cf0645b40d2ed7d7286f7124964732.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:20:54 +0100
Subject: [PATCH] cpu_map: Add 486-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 2abf6bd47c795c05d299285876977394e60479e4)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_486-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_486-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 287cd7395e..e9fb278fd3 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -5,6 +5,7 @@
<group name='generic'>
<include filename='x86_486.xml'/>
+ <include filename='x86_486-v1.xml'/>
</group>
<group name='Intel-based QEMU generic CPU models'>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index f659ef230e..b335278b08 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -22,6 +22,7 @@ cpumap_data = [
'ppc64_POWERPC_e5500.xml',
'ppc64_POWERPC_e6500.xml',
'ppc64_vendors.xml',
+ 'x86_486-v1.xml',
'x86_486.xml',
'x86_athlon.xml',
'x86_Broadwell-IBRS.xml',
diff --git a/src/cpu_map/x86_486-v1.xml b/src/cpu_map/x86_486-v1.xml
new file mode 100644
index 0000000000..33f7ee09b5
--- /dev/null
+++ b/src/cpu_map/x86_486-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='486-v1'>
+ <decode host='on' guest='off'/>
+ <model name='486'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 5fa2d07976..46f1bd7d4f 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -62,7 +62,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 0348a65589..7153fe3925 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -74,7 +74,8 @@
<feature policy='disable' name='misalignsse'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 49a18cd333..93df9af8f6 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -61,7 +61,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index b990a2d597..25b16b34bb 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -62,7 +62,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 6746479be5..c9a124cda2 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -75,7 +75,8 @@
<feature policy='disable' name='misalignsse'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 81c9bb1444..a99c89e98b 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -61,7 +61,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 0cd73ee54f..c4f95a282b 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -63,7 +63,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 8a09c53177..b6f01ffbce 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -75,7 +75,8 @@
<feature policy='disable' name='misalignsse'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 5a23dfee52..5d3c1ab1aa 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -62,7 +62,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 84e783f739..c24b88f412 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -63,7 +63,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 4d7ed1eea8..eb8f5e3f22 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -77,7 +77,8 @@
<feature policy='disable' name='misalignsse'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 0446dff4fb..b1f198d62b 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -62,7 +62,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index e5718bc50c..7a4830b126 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -64,7 +64,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index c3a93369e4..d624842aab 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -78,7 +78,8 @@
<feature policy='disable' name='misalignsse'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 7415bda6bf..43bcca9b52 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -63,7 +63,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 720387e9db..275ce525fe 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -65,7 +65,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 3000d11487..6500ceac17 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -78,7 +78,8 @@
<feature policy='disable' name='misalignsse'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 31fe652a9f..1e54981f3c 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -64,7 +64,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 88db1c659e..5b1bb3ad55 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -70,7 +70,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 3392f2b42f..339c622684 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -67,7 +67,8 @@
<feature policy='disable' name='nrip-save'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 3392f2b42f..339c622684 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -67,7 +67,8 @@
<feature policy='disable' name='nrip-save'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 5223dbb2e2..a016f77b09 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -69,7 +69,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index e43c6710e9..9a42375791 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -70,7 +70,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 3d5c15fdf1..677ebbf2e6 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -71,7 +71,8 @@
<feature policy='disable' name='nrip-save'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 420dae738f..1eb4af3fdc 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -69,7 +69,8 @@
<feature policy='require' name='pschange-mc-no'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index e5853535ce..e2fa9da460 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -72,7 +72,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 22c40afdb1..787fc9d870 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -72,7 +72,8 @@
<feature policy='disable' name='nrip-save'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='hle'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index c40cbb8a73..3fa195c6aa 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -71,7 +71,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index cfc4b3e301..5fe9ab775c 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -73,7 +73,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 4383050d3c..5c9f1c92a5 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -71,7 +71,8 @@
<feature policy='disable' name='nrip-save'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='hle'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 062d91ba9a..73f129706d 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -72,7 +72,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index e8053efc99..2315bda338 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -73,7 +73,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 8f3357be6f..90c9862321 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -73,7 +73,8 @@
<feature policy='disable' name='nrip-save'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='hle'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index db12bd81e3..983597be92 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -72,7 +72,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index c3a7aff766..578dea23a5 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -77,7 +77,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index a18ce928a5..2009920390 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -72,7 +72,8 @@
<feature policy='disable' name='nrip-save'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='hle'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 5019918b9b..505ea9978f 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -76,7 +76,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 5cd872831b..e78f6a9dd3 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -77,7 +77,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 7afc9e3d69..da9f2a1193 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -72,7 +72,8 @@
<feature policy='disable' name='nrip-save'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='hle'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 11cfc7863d..74d1094511 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -76,7 +76,8 @@
<feature policy='disable' name='xsaves'/>
</mode>
<mode name='custom' supported='yes'>
- <model usable='yes' vendor='unknown'>486</model>
+ <model usable='yes' vendor='unknown' canonical='486-v1'>486</model>
+ <model usable='yes' vendor='unknown'>486-v1</model>
<model usable='no' vendor='Intel' canonical='Broadwell-v1'>Broadwell</model>
<blockers model='Broadwell'>
<feature name='erms'/>
--
2.47.1

View File

@ -1,684 +0,0 @@
From 4d951963cb08a659ab1a3077cabd6111d586f39f Mon Sep 17 00:00:00 2001
Message-ID: <4d951963cb08a659ab1a3077cabd6111d586f39f.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:38:08 +0100
Subject: [PATCH] cpu_map: Add Conroe-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 2d061eba8c2b7907cad1fe80fb6e2b1707417ed3)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_Conroe-v1.xml | 6 ++++++
tests/cputestdata/x86_64-cpuid-Core2-E6850-host.xml | 2 +-
tests/cputestdata/x86_64-cpuid-Xeon-5110-host.xml | 2 +-
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
45 files changed, 90 insertions(+), 42 deletions(-)
create mode 100644 src/cpu_map/x86_Conroe-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index a9a8d1b2c4..e9a180526e 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -39,6 +39,7 @@
<group name='Intel CPU models'>
<include filename='x86_Conroe.xml'/>
+ <include filename='x86_Conroe-v1.xml'/>
<include filename='x86_Penryn.xml'/>
<include filename='x86_Nehalem.xml'/>
<include filename='x86_Nehalem-IBRS.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 7ea53373ae..cbf7bb407b 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -40,6 +40,7 @@ cpumap_data = [
'x86_Cascadelake-Server-v4.xml',
'x86_Cascadelake-Server-v5.xml',
'x86_Cascadelake-Server.xml',
+ 'x86_Conroe-v1.xml',
'x86_Conroe.xml',
'x86_Cooperlake-v1.xml',
'x86_Cooperlake-v2.xml',
diff --git a/src/cpu_map/x86_Conroe-v1.xml b/src/cpu_map/x86_Conroe-v1.xml
new file mode 100644
index 0000000000..8dd626795a
--- /dev/null
+++ b/src/cpu_map/x86_Conroe-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='Conroe-v1'>
+ <decode host='on' guest='off'/>
+ <model name='Conroe'/>
+ </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Core2-E6850-host.xml b/tests/cputestdata/x86_64-cpuid-Core2-E6850-host.xml
index dae7f8846e..6625ebc44d 100644
--- a/tests/cputestdata/x86_64-cpuid-Core2-E6850-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core2-E6850-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>Conroe</model>
+ <model>Conroe-v1</model>
<vendor>Intel</vendor>
<signature family='6' model='15' stepping='11'/>
<feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-5110-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-5110-host.xml
index ec509f92e4..cca99c7b04 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-5110-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-5110-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>Conroe</model>
+ <model>Conroe-v1</model>
<vendor>Intel</vendor>
<signature family='6' model='15' stepping='6'/>
<feature name='dtes64'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 985a00cf84..3a14131fda 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -218,7 +218,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 74aa563566..5223402151 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -350,7 +350,8 @@
<feature name='x2apic'/>
<feature name='xsavec'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 4fdeaec417..a3638c64a4 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -217,7 +217,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 284d70c7cc..9af3b3768d 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -218,7 +218,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 07097ce25b..7932c25f39 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -351,7 +351,8 @@
<feature name='x2apic'/>
<feature name='xsavec'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 1aefe0ea08..72c598466a 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -217,7 +217,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 2ffe8cb354..b3ba5b020d 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -234,7 +234,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx-vnni'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 2a084c64fe..69a73ea9b2 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -379,7 +379,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index bda2e0ef68..54edabd43f 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -233,7 +233,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx-vnni'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index d2fbcad98c..be908c6cc6 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -234,7 +234,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 60093eda9a..8fb08191ea 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -381,7 +381,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index eafdc53ff6..1f9bdf36af 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -233,7 +233,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 03896267d5..14081dfafd 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -235,7 +235,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 52eb4b8215..d9ba0202bd 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -382,7 +382,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index f212097662..bba1b69e41 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -234,7 +234,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 38b0f47092..9fb0fbe581 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -236,7 +236,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 43de9e5193..b7f01c2b58 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -382,7 +382,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 92514055c9..f7e9853077 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -235,7 +235,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 10017064b8..4b670c95fe 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -241,7 +241,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 95b582af9f..8b85bd98b4 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -311,7 +311,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 95b582af9f..8b85bd98b4 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -311,7 +311,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 1e40bc5b23..0e1328f1fc 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -240,7 +240,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 392ec1e232..b3040a9e6e 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -241,7 +241,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 0893277250..ac533cccfa 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -315,7 +315,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 52ef9718d0..0558eb7588 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -240,7 +240,8 @@
<feature name='pku'/>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index ef74bbd2fa..3b334589ed 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -244,7 +244,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 404237ef67..9815a01beb 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -266,7 +266,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='arch-capabilities'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index eafacf0b61..3b1796949f 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -243,7 +243,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index c544eb02e3..c4d2a768bd 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -245,7 +245,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index b7b0ddd7c4..207092ba7b 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -265,7 +265,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='arch-capabilities'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index a4c86941c6..855dfef498 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -244,7 +244,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 06341f125a..f7ddcd9aff 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -245,7 +245,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index e759a15ea7..3419e26d32 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -252,7 +252,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='arch-capabilities'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index eb4822c667..43bc77f7cc 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -244,7 +244,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index a6c7d8e74c..0a962420cd 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -249,7 +249,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 18070cd01a..02209df41b 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -251,7 +251,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='arch-capabilities'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index e008a2f2e9..49e1df7be4 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -248,7 +248,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index ce19774d0d..56449ad3db 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -249,7 +249,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 217fbfe51c..04a759a16b 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -251,7 +251,8 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='arch-capabilities'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 4f34340651..7b3379b3e5 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -248,7 +248,8 @@
<feature name='spec-ctrl'/>
<feature name='xsaves'/>
</blockers>
- <model usable='yes' vendor='Intel'>Conroe</model>
+ <model usable='yes' vendor='Intel' canonical='Conroe-v1'>Conroe</model>
+ <model usable='yes' vendor='Intel'>Conroe-v1</model>
<model usable='no' vendor='Intel' canonical='Cooperlake-v1'>Cooperlake</model>
<blockers model='Cooperlake'>
<feature name='avx512-bf16'/>
--
2.47.1

View File

@ -1,869 +0,0 @@
From c849388f86989e8bced51ad498b58c7cd40af179 Mon Sep 17 00:00:00 2001
Message-ID: <c849388f86989e8bced51ad498b58c7cd40af179.1734433247.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 16:02:17 +0100
Subject: [PATCH] cpu_map: Add EPYC-Genoa-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit da2439b746c5da1b6544d6e1cc0d6dd6b9691a1b)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_EPYC-Genoa-v1.xml | 6 +++
.../domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 42 ++++++++++++++++++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 41 +++++++++++++++++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 41 +++++++++++++++++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 41 +++++++++++++++++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 32 +++++++++++++-
.../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 41 +++++++++++++++++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 32 +++++++++++++-
18 files changed, 519 insertions(+), 15 deletions(-)
create mode 100644 src/cpu_map/x86_EPYC-Genoa-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 9bd90cc83b..8e74195312 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -161,6 +161,7 @@
<include filename='x86_EPYC-Milan-v1.xml'/>
<include filename='x86_EPYC-Milan-v2.xml'/>
<include filename='x86_EPYC-Genoa.xml'/>
+ <include filename='x86_EPYC-Genoa-v1.xml'/>
</group>
<group name='Hygon CPU models'>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 5ac3c82dc7..fa7faa4016 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -59,6 +59,7 @@ cpumap_data = [
'x86_Dhyana-v1.xml',
'x86_Dhyana-v2.xml',
'x86_Dhyana.xml',
+ 'x86_EPYC-Genoa-v1.xml',
'x86_EPYC-Genoa.xml',
'x86_EPYC-IBPB.xml',
'x86_EPYC-Milan-v1.xml',
diff --git a/src/cpu_map/x86_EPYC-Genoa-v1.xml b/src/cpu_map/x86_EPYC-Genoa-v1.xml
new file mode 100644
index 0000000000..df45ca18ff
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-Genoa-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='EPYC-Genoa-v1'>
+ <decode host='on' guest='off'/>
+ <model name='EPYC-Genoa'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 197efcbe59..e80e175376 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -334,7 +334,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -364,6 +364,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 07fdd0c3a3..62ffabb3e2 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -414,7 +414,7 @@
<feature name='topoext'/>
<feature name='xsavec'/>
</blockers>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='amd-ssbd'/>
@@ -454,6 +454,46 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='clzero'/>
+ <feature name='fxsr_opt'/>
+ <feature name='gfni'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='nrip-save'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='osvw'/>
+ <feature name='pcid'/>
+ <feature name='perfctr_core'/>
+ <feature name='sha-ni'/>
+ <feature name='stibp-always-on'/>
+ <feature name='topoext'/>
+ <feature name='vnmi'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<blockers model='EPYC-IBPB'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index ec95c1a2ac..4117d926cb 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -333,7 +333,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -363,6 +363,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index d1d330df87..dfa88bcf96 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -335,7 +335,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -365,6 +365,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 75cb1b8f17..327cad253e 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -408,7 +408,7 @@
<feature name='topoext'/>
<feature name='xsavec'/>
</blockers>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='amd-ssbd'/>
@@ -447,6 +447,45 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='clzero'/>
+ <feature name='fxsr_opt'/>
+ <feature name='gfni'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='nrip-save'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='osvw'/>
+ <feature name='pcid'/>
+ <feature name='perfctr_core'/>
+ <feature name='stibp-always-on'/>
+ <feature name='topoext'/>
+ <feature name='vnmi'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<blockers model='EPYC-IBPB'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 5f6e72e7ca..f8dbb717f1 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -334,7 +334,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -364,6 +364,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 3c005d0c10..c5a653f57b 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -335,7 +335,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -365,6 +365,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 3a6424eddf..30876c5fef 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -388,7 +388,7 @@
<feature name='topoext'/>
<feature name='xsavec'/>
</blockers>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='amd-ssbd'/>
@@ -427,6 +427,45 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='clzero'/>
+ <feature name='fxsr_opt'/>
+ <feature name='gfni'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='nrip-save'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='osvw'/>
+ <feature name='pcid'/>
+ <feature name='perfctr_core'/>
+ <feature name='stibp-always-on'/>
+ <feature name='topoext'/>
+ <feature name='vnmi'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<blockers model='EPYC-IBPB'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 79c39678ca..6c141e1cb9 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -334,7 +334,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -364,6 +364,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 117947ef13..9445d999b5 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -339,7 +339,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -369,6 +369,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index c2c244f464..61d92550c1 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -387,7 +387,7 @@
<feature name='topoext'/>
<feature name='xsavec'/>
</blockers>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='amd-ssbd'/>
@@ -426,6 +426,45 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='clzero'/>
+ <feature name='fxsr_opt'/>
+ <feature name='gfni'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='nrip-save'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='osvw'/>
+ <feature name='pcid'/>
+ <feature name='perfctr_core'/>
+ <feature name='stibp-always-on'/>
+ <feature name='topoext'/>
+ <feature name='vnmi'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<blockers model='EPYC-IBPB'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 30959cd723..5e87efe5e8 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -338,7 +338,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -368,6 +368,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 5fc9576495..99445e5f44 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -339,7 +339,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -369,6 +369,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index eeba43f9fa..8bf967c99f 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -387,7 +387,7 @@
<feature name='topoext'/>
<feature name='xsavec'/>
</blockers>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='amd-ssbd'/>
@@ -426,6 +426,45 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='clzero'/>
+ <feature name='fxsr_opt'/>
+ <feature name='gfni'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='nrip-save'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='osvw'/>
+ <feature name='pcid'/>
+ <feature name='perfctr_core'/>
+ <feature name='stibp-always-on'/>
+ <feature name='topoext'/>
+ <feature name='vnmi'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<blockers model='EPYC-IBPB'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 96d789ee1c..40aa971144 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -338,7 +338,7 @@
<feature name='xsaves'/>
</blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v1'>EPYC</model>
- <model usable='no' vendor='AMD'>EPYC-Genoa</model>
+ <model usable='no' vendor='AMD' canonical='EPYC-Genoa-v1'>EPYC-Genoa</model>
<blockers model='EPYC-Genoa'>
<feature name='amd-psfd'/>
<feature name='auto-ibrs'/>
@@ -368,6 +368,36 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Genoa-v1</model>
+ <blockers model='EPYC-Genoa-v1'>
+ <feature name='amd-psfd'/>
+ <feature name='auto-ibrs'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-vpopcntdq'/>
+ <feature name='avx512bitalg'/>
+ <feature name='avx512bw'/>
+ <feature name='avx512cd'/>
+ <feature name='avx512dq'/>
+ <feature name='avx512f'/>
+ <feature name='avx512ifma'/>
+ <feature name='avx512vbmi'/>
+ <feature name='avx512vbmi2'/>
+ <feature name='avx512vl'/>
+ <feature name='avx512vnni'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='gfni'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-v2'>EPYC-IBPB</model>
<model usable='no' vendor='AMD' canonical='EPYC-Milan-v1'>EPYC-Milan</model>
<blockers model='EPYC-Milan'>
--
2.47.1

File diff suppressed because it is too large Load Diff

View File

@ -1,658 +0,0 @@
From a16cad37582dc4641a63b9494c0c2e62b20cd8a5 Mon Sep 17 00:00:00 2001
Message-ID: <a16cad37582dc4641a63b9494c0c2e62b20cd8a5.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:45:11 +0100
Subject: [PATCH] cpu_map: Add Opteron_G1-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit a1625b73f6408918a3a5b07572b21d5bbb5f2fbd)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_Opteron_G1-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_Opteron_G1-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 74b315c661..4cf884e778 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -137,6 +137,7 @@
<include filename='x86_phenom.xml'/>
<include filename='x86_phenom-v1.xml'/>
<include filename='x86_Opteron_G1.xml'/>
+ <include filename='x86_Opteron_G1-v1.xml'/>
<include filename='x86_Opteron_G2.xml'/>
<include filename='x86_Opteron_G3.xml'/>
<include filename='x86_Opteron_G4.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 47c93deace..8385c89552 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -112,6 +112,7 @@ cpumap_data = [
'x86_Nehalem-v1.xml',
'x86_Nehalem-v2.xml',
'x86_Nehalem.xml',
+ 'x86_Opteron_G1-v1.xml',
'x86_Opteron_G1.xml',
'x86_Opteron_G2.xml',
'x86_Opteron_G3.xml',
diff --git a/src/cpu_map/x86_Opteron_G1-v1.xml b/src/cpu_map/x86_Opteron_G1-v1.xml
new file mode 100644
index 0000000000..b040da4dea
--- /dev/null
+++ b/src/cpu_map/x86_Opteron_G1-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='Opteron_G1-v1'>
+ <decode host='on' guest='off'/>
+ <model name='Opteron_G1'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 27d36feccf..d12aa0d569 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -572,7 +572,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index b06febb821..2aabe77417 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1067,7 +1067,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 21b4ab8c5c..743262e1a0 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -571,7 +571,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 83bb914c7d..b15ba4ebb6 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -594,7 +594,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 47ab7240fb..38b2861714 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1157,7 +1157,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index cc212722f5..01a0eb2f47 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -593,7 +593,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index ec7abc3903..ac184c5075 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -664,7 +664,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 87fe22edd7..02b362c722 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1297,7 +1297,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 35bba84033..00b61e4380 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -663,7 +663,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index b448d7bdb8..dc82ce2aa9 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -661,7 +661,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index a8a96f2bb4..1a016f7379 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1294,7 +1294,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 303b714aa7..b5389e8a3f 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -660,7 +660,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 9da8e156e2..ccb8bb7f7b 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -688,7 +688,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index a5b9edaeb6..e0e53e543d 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1323,7 +1323,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 3029403bac..980c296c18 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -687,7 +687,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 259613d7fe..10d31b6007 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -655,7 +655,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index d3ecad143c..e916f523ac 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1271,7 +1271,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 7f08dd995d..434fa7bd95 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -654,7 +654,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 1057fc58d3..80497c5125 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -660,7 +660,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index fa4e9cfb8c..e67ae9b280 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1048,7 +1048,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index fa4e9cfb8c..e67ae9b280 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1048,7 +1048,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 0c0f363d2b..e0a1209cea 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -659,7 +659,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index b1de96fadd..03c40996e1 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -660,7 +660,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index c83819435d..3d52b5fda0 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1047,7 +1047,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 8f195f0e39..8c84a54239 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -659,7 +659,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 5495883fe9..dcce5a827f 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -838,7 +838,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 87fc57da66..d086460c7d 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1055,7 +1055,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 43703fefab..19ff721d09 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -837,7 +837,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 2eab4e49b1..c09f4c56bf 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -839,7 +839,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 08b45ba90b..13c2cc5439 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1030,7 +1030,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 28b233d35d..bd6c173c04 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -838,7 +838,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 16a3cdacb5..f644b1ac5c 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -839,7 +839,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 549e21c273..2107e5b7be 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -986,7 +986,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 16e0d61c51..5cf479694e 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -838,7 +838,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 2b33304882..5c52c08ee7 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -872,7 +872,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index f91fcdd4e5..1d41d3ef8c 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1011,7 +1011,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 82fe2b3b1a..dfb6f741c4 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -871,7 +871,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 0c896766cb..c711064a04 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -872,7 +872,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 94c6914767..caf86d2c2b 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1011,7 +1011,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 1f73e3903c..16a34ed042 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -871,7 +871,8 @@
<blockers model='Nehalem-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
+ <model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
--
2.47.1

View File

@ -1,658 +0,0 @@
From d70b69c794be4bcda17250c0101772bd2ffd2996 Mon Sep 17 00:00:00 2001
Message-ID: <d70b69c794be4bcda17250c0101772bd2ffd2996.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:47:52 +0100
Subject: [PATCH] cpu_map: Add Opteron_G2-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 51ffa44fb4242bd6c6610271a6c45d2c3672a55d)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_Opteron_G2-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_Opteron_G2-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 4cf884e778..0070796dee 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -139,6 +139,7 @@
<include filename='x86_Opteron_G1.xml'/>
<include filename='x86_Opteron_G1-v1.xml'/>
<include filename='x86_Opteron_G2.xml'/>
+ <include filename='x86_Opteron_G2-v1.xml'/>
<include filename='x86_Opteron_G3.xml'/>
<include filename='x86_Opteron_G4.xml'/>
<include filename='x86_Opteron_G5.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 8385c89552..fb6494a14a 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -114,6 +114,7 @@ cpumap_data = [
'x86_Nehalem.xml',
'x86_Opteron_G1-v1.xml',
'x86_Opteron_G1.xml',
+ 'x86_Opteron_G2-v1.xml',
'x86_Opteron_G2.xml',
'x86_Opteron_G3.xml',
'x86_Opteron_G4.xml',
diff --git a/src/cpu_map/x86_Opteron_G2-v1.xml b/src/cpu_map/x86_Opteron_G2-v1.xml
new file mode 100644
index 0000000000..8f0a05f37c
--- /dev/null
+++ b/src/cpu_map/x86_Opteron_G2-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='Opteron_G2-v1'>
+ <decode host='on' guest='off'/>
+ <model name='Opteron_G2'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index d12aa0d569..8f0b9b3bff 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -574,7 +574,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 2aabe77417..b4f2c700f9 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1069,7 +1069,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 743262e1a0..bd3095fec9 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -573,7 +573,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index b15ba4ebb6..b426bd1e63 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -596,7 +596,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 38b2861714..d89a9b2c32 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1159,7 +1159,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 01a0eb2f47..a8773fb4f7 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -595,7 +595,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index ac184c5075..de1f78b335 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -666,7 +666,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 02b362c722..581afc86a0 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1299,7 +1299,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 00b61e4380..53d83980a6 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -665,7 +665,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index dc82ce2aa9..77eab8aa95 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -663,7 +663,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 1a016f7379..710866e495 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1296,7 +1296,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index b5389e8a3f..99fe26dc76 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -662,7 +662,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index ccb8bb7f7b..eab56f9a7c 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -690,7 +690,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index e0e53e543d..e5b4cff7c6 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1325,7 +1325,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 980c296c18..6ec56068bd 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -689,7 +689,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 10d31b6007..0e27b3400c 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -657,7 +657,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index e916f523ac..e588593d91 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1273,7 +1273,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 434fa7bd95..7cb9663805 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -656,7 +656,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 80497c5125..c66731ceac 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -662,7 +662,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index e67ae9b280..ec61c328c9 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1050,7 +1050,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index e67ae9b280..ec61c328c9 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1050,7 +1050,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index e0a1209cea..8fd837d2c4 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -661,7 +661,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 03c40996e1..2a78fe6926 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -662,7 +662,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 3d52b5fda0..cb7bb1513c 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1049,7 +1049,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 8c84a54239..7c66d893ae 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -661,7 +661,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index dcce5a827f..1d23c25196 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -840,7 +840,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index d086460c7d..768769a4ef 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1057,7 +1057,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 19ff721d09..95106cfeab 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -839,7 +839,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index c09f4c56bf..5b777b730b 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -841,7 +841,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 13c2cc5439..0ea4c2cdb8 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1032,7 +1032,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index bd6c173c04..506b949225 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -840,7 +840,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index f644b1ac5c..d84324eac6 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -841,7 +841,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 2107e5b7be..cccf48aafb 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -988,7 +988,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 5cf479694e..05c06c9b25 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -840,7 +840,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 5c52c08ee7..e295c808d7 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -874,7 +874,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 1d41d3ef8c..8b338c75be 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1013,7 +1013,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index dfb6f741c4..6b2c1f15b5 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -873,7 +873,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index c711064a04..ab82a874b1 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -874,7 +874,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index caf86d2c2b..bf20e3d536 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1013,7 +1013,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='no' vendor='AMD'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 16a34ed042..d28d4c1f14 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -873,7 +873,8 @@
</blockers>
<model usable='yes' vendor='AMD' canonical='Opteron_G1-v1'>Opteron_G1</model>
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
+ <model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
<model usable='yes' vendor='AMD'>Opteron_G3</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
--
2.47.1

View File

@ -1,768 +0,0 @@
From d46a39eb87ab713ef82982ed9578ab1e5e826237 Mon Sep 17 00:00:00 2001
Message-ID: <d46a39eb87ab713ef82982ed9578ab1e5e826237.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:48:47 +0100
Subject: [PATCH] cpu_map: Add Opteron_G3-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 422d90dc56d34879e6f52f34516c92dfc7f286fa)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_Opteron_G3-v1.xml | 6 ++++++
tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml | 2 +-
tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml | 2 +-
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
45 files changed, 132 insertions(+), 42 deletions(-)
create mode 100644 src/cpu_map/x86_Opteron_G3-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 0070796dee..cdb8a568a6 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -141,6 +141,7 @@
<include filename='x86_Opteron_G2.xml'/>
<include filename='x86_Opteron_G2-v1.xml'/>
<include filename='x86_Opteron_G3.xml'/>
+ <include filename='x86_Opteron_G3-v1.xml'/>
<include filename='x86_Opteron_G4.xml'/>
<include filename='x86_Opteron_G5.xml'/>
<include filename='x86_EPYC.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index fb6494a14a..d735c54fd6 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -116,6 +116,7 @@ cpumap_data = [
'x86_Opteron_G1.xml',
'x86_Opteron_G2-v1.xml',
'x86_Opteron_G2.xml',
+ 'x86_Opteron_G3-v1.xml',
'x86_Opteron_G3.xml',
'x86_Opteron_G4.xml',
'x86_Opteron_G5.xml',
diff --git a/src/cpu_map/x86_Opteron_G3-v1.xml b/src/cpu_map/x86_Opteron_G3-v1.xml
new file mode 100644
index 0000000000..8a625c5b1f
--- /dev/null
+++ b/src/cpu_map/x86_Opteron_G3-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='Opteron_G3-v1'>
+ <decode host='on' guest='off'/>
+ <model name='Opteron_G3'/>
+ </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml b/tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml
index 53b98713e5..87aee9febe 100644
--- a/tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-1352-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>Opteron_G3</model>
+ <model>Opteron_G3-v1</model>
<vendor>AMD</vendor>
<signature family='16' model='2' stepping='3'/>
<feature name='monitor'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml b/tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml
index 53b98713e5..87aee9febe 100644
--- a/tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Opteron-2350-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>Opteron_G3</model>
+ <model>Opteron_G3-v1</model>
<vendor>AMD</vendor>
<signature family='16' model='2' stepping='3'/>
<feature name='monitor'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 8f0b9b3bff..f673f670a0 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -576,7 +576,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index b4f2c700f9..6a3af31956 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1071,10 +1071,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index bd3095fec9..f0f6303099 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -575,7 +575,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index b426bd1e63..24f2c91022 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -598,7 +598,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index d89a9b2c32..111613d0b8 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1161,10 +1161,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index a8773fb4f7..82dbca5341 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -597,7 +597,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index de1f78b335..a869314868 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -668,7 +668,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 581afc86a0..660744d28c 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1301,10 +1301,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 53d83980a6..8bc739091e 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -667,7 +667,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 77eab8aa95..a3014c8142 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -665,7 +665,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 710866e495..b4d902b44c 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1298,10 +1298,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 99fe26dc76..2e9bc75e1f 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -664,7 +664,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index eab56f9a7c..8a6379b7b9 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -692,7 +692,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index e5b4cff7c6..02a5887255 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1327,10 +1327,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 6ec56068bd..7168fb805a 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -691,7 +691,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 0e27b3400c..93373fbe5b 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -659,7 +659,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index e588593d91..890164b50a 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1275,10 +1275,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 7cb9663805..1c0a102063 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -658,7 +658,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index c66731ceac..6348bf9eb9 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -664,7 +664,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index ec61c328c9..dc9a0cc4b2 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1052,10 +1052,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index ec61c328c9..dc9a0cc4b2 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1052,10 +1052,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 8fd837d2c4..70c15a677a 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -663,7 +663,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 2a78fe6926..875f902101 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -664,7 +664,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index cb7bb1513c..52324024a0 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1051,10 +1051,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='3dnowprefetch'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 7c66d893ae..6291c3c303 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -663,7 +663,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 1d23c25196..cc248936df 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -842,7 +842,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 768769a4ef..b1e820ea61 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1059,10 +1059,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 95106cfeab..c3cd328dea 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -841,7 +841,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 5b777b730b..5dbfe76dd8 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -843,7 +843,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 0ea4c2cdb8..a51e57f66d 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1034,10 +1034,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 506b949225..dfc98e58f0 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -842,7 +842,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index d84324eac6..9c21297cec 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -843,7 +843,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index cccf48aafb..81c404727c 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -990,10 +990,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 05c06c9b25..744280a43a 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -842,7 +842,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index e295c808d7..3b5ee6ec78 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -876,7 +876,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 8b338c75be..9091305bb5 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1015,10 +1015,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 6b2c1f15b5..330e9748b9 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -875,7 +875,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index ab82a874b1..adf0140fc2 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -876,7 +876,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index bf20e3d536..93efe9253b 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1015,10 +1015,14 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='no' vendor='AMD'>Opteron_G3</model>
+ <model usable='no' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
<blockers model='Opteron_G3'>
<feature name='misalignsse'/>
</blockers>
+ <model usable='no' vendor='AMD'>Opteron_G3-v1</model>
+ <blockers model='Opteron_G3-v1'>
+ <feature name='misalignsse'/>
+ </blockers>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index d28d4c1f14..e2e11f239f 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -875,7 +875,8 @@
<model usable='yes' vendor='AMD'>Opteron_G1-v1</model>
<model usable='yes' vendor='AMD' canonical='Opteron_G2-v1'>Opteron_G2</model>
<model usable='yes' vendor='AMD'>Opteron_G2-v1</model>
- <model usable='yes' vendor='AMD'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD' canonical='Opteron_G3-v1'>Opteron_G3</model>
+ <model usable='yes' vendor='AMD'>Opteron_G3-v1</model>
<model usable='no' vendor='AMD'>Opteron_G4</model>
<blockers model='Opteron_G4'>
<feature name='fma4'/>
--
2.47.1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,684 +0,0 @@
From 8eb51b4d75eccc4ba1d2f812a9ff13cb3953c22a Mon Sep 17 00:00:00 2001
Message-ID: <8eb51b4d75eccc4ba1d2f812a9ff13cb3953c22a.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:41:18 +0100
Subject: [PATCH] cpu_map: Add Penryn-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 537f136549ea9c02642b6114c540c6cb1276ed6e)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_Penryn-v1.xml | 6 ++++++
tests/cputestdata/x86_64-cpuid-Core2-Q9500-host.xml | 2 +-
tests/cputestdata/x86_64-cpuid-Xeon-X5460-host.xml | 2 +-
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
45 files changed, 90 insertions(+), 42 deletions(-)
create mode 100644 src/cpu_map/x86_Penryn-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index e9a180526e..16ebe36539 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -41,6 +41,7 @@
<include filename='x86_Conroe.xml'/>
<include filename='x86_Conroe-v1.xml'/>
<include filename='x86_Penryn.xml'/>
+ <include filename='x86_Penryn-v1.xml'/>
<include filename='x86_Nehalem.xml'/>
<include filename='x86_Nehalem-IBRS.xml'/>
<include filename='x86_Nehalem-v1.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index cbf7bb407b..4d74431c55 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -115,6 +115,7 @@ cpumap_data = [
'x86_Opteron_G3.xml',
'x86_Opteron_G4.xml',
'x86_Opteron_G5.xml',
+ 'x86_Penryn-v1.xml',
'x86_Penryn.xml',
'x86_pentium-v1.xml',
'x86_pentium.xml',
diff --git a/src/cpu_map/x86_Penryn-v1.xml b/src/cpu_map/x86_Penryn-v1.xml
new file mode 100644
index 0000000000..5da70a233e
--- /dev/null
+++ b/src/cpu_map/x86_Penryn-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='Penryn-v1'>
+ <decode host='on' guest='off'/>
+ <model name='Penryn'/>
+ </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Core2-Q9500-host.xml b/tests/cputestdata/x86_64-cpuid-Core2-Q9500-host.xml
index dac84ba5fc..5034355859 100644
--- a/tests/cputestdata/x86_64-cpuid-Core2-Q9500-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core2-Q9500-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>Penryn</model>
+ <model>Penryn-v1</model>
<vendor>Intel</vendor>
<signature family='6' model='23' stepping='10'/>
<feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-X5460-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-X5460-host.xml
index b7bc4cbb5b..a0516e6652 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-X5460-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-X5460-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>Penryn</model>
+ <model>Penryn-v1</model>
<vendor>Intel</vendor>
<signature family='6' model='23' stepping='6'/>
<feature name='dtes64'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 3a14131fda..efd8f06104 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -574,7 +574,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 5223402151..beb923a1f3 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1076,7 +1076,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index a3638c64a4..d9ae5568be 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -573,7 +573,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 9af3b3768d..403b9f6674 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -596,7 +596,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 7932c25f39..f2ad35c6cd 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1166,7 +1166,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 72c598466a..07570f5b02 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -595,7 +595,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index b3ba5b020d..4cf841b3e9 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -666,7 +666,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 69a73ea9b2..bbb9cfff7f 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1306,7 +1306,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 54edabd43f..0c615f1802 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -665,7 +665,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index be908c6cc6..e468a90911 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -663,7 +663,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 8fb08191ea..b46a515864 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1303,7 +1303,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 1f9bdf36af..d06e67a5e2 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -662,7 +662,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 14081dfafd..a0c47fd84e 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -690,7 +690,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index d9ba0202bd..db68047af7 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1332,7 +1332,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index bba1b69e41..71999ab677 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -689,7 +689,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 9fb0fbe581..3a2874f08a 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -657,7 +657,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index b7f01c2b58..2416987852 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1280,7 +1280,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='avx'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index f7e9853077..eda271a1b2 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -656,7 +656,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 4b670c95fe..2b5cfdae87 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -662,7 +662,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 8b85bd98b4..6a191f3ce8 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1057,7 +1057,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='tsc-deadline'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 8b85bd98b4..6a191f3ce8 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1057,7 +1057,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='tsc-deadline'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 0e1328f1fc..48b4ced22f 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -661,7 +661,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index b3040a9e6e..ec1fea19fc 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -662,7 +662,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index ac533cccfa..049bef7aa6 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1056,7 +1056,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='tsc-deadline'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 0558eb7588..206a3a86a2 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -661,7 +661,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 3b334589ed..34fbc59118 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -840,7 +840,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 9815a01beb..2a836cbc21 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1064,7 +1064,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='tsc-deadline'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 3b1796949f..3380b8a9aa 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -839,7 +839,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index c4d2a768bd..0ec9ebeafe 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -841,7 +841,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 207092ba7b..b3fd8eb6c6 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1039,7 +1039,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='tsc-deadline'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 855dfef498..210024bc44 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -840,7 +840,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index f7ddcd9aff..2aade71dae 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -841,7 +841,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 3419e26d32..36cec1ee6b 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -996,7 +996,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='tsc-deadline'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 43bc77f7cc..8316b40fce 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -840,7 +840,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 0a962420cd..cabd1c3694 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -874,7 +874,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 02209df41b..67a8a5f5e7 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1021,7 +1021,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='tsc-deadline'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 49e1df7be4..45252b6b81 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -873,7 +873,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 56449ad3db..cc5cbfbf19 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -874,7 +874,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 04a759a16b..d0761a2c57 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1021,7 +1021,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<blockers model='SandyBridge'>
<feature name='tsc-deadline'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 7b3379b3e5..df2f9d27ad 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -873,7 +873,8 @@
<feature name='tbm'/>
<feature name='xop'/>
</blockers>
- <model usable='yes' vendor='Intel'>Penryn</model>
+ <model usable='yes' vendor='Intel' canonical='Penryn-v1'>Penryn</model>
+ <model usable='yes' vendor='Intel'>Penryn-v1</model>
<model usable='yes' vendor='Intel' canonical='SandyBridge-v1'>SandyBridge</model>
<model usable='no' vendor='Intel' canonical='SandyBridge-v2'>SandyBridge-IBRS</model>
<blockers model='SandyBridge-IBRS'>
--
2.47.1

View File

@ -1,879 +0,0 @@
From 74bf67730d74babf7f32e3c3328eb64a980fb0dc Mon Sep 17 00:00:00 2001
Message-ID: <74bf67730d74babf7f32e3c3328eb64a980fb0dc.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:43:25 +0100
Subject: [PATCH] cpu_map: Add athlon-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 6b775a68ec90595c2a0892c70985ca0784f87c10)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_athlon-v1.xml | 6 ++++++
tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml | 2 +-
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 7 ++++++-
44 files changed, 193 insertions(+), 41 deletions(-)
create mode 100644 src/cpu_map/x86_athlon-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index a0aa677dee..5f42fdc7fd 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -133,6 +133,7 @@
<group name='AMD CPU models'>
<include filename='x86_athlon.xml'/>
+ <include filename='x86_athlon-v1.xml'/>
<include filename='x86_phenom.xml'/>
<include filename='x86_Opteron_G1.xml'/>
<include filename='x86_Opteron_G2.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 70c7d2091b..8d45feee00 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -24,6 +24,7 @@ cpumap_data = [
'ppc64_vendors.xml',
'x86_486-v1.xml',
'x86_486.xml',
+ 'x86_athlon-v1.xml',
'x86_athlon.xml',
'x86_Broadwell-IBRS.xml',
'x86_Broadwell-noTSX-IBRS.xml',
diff --git a/src/cpu_map/x86_athlon-v1.xml b/src/cpu_map/x86_athlon-v1.xml
new file mode 100644
index 0000000000..cefe282c51
--- /dev/null
+++ b/src/cpu_map/x86_athlon-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='athlon-v1'>
+ <decode host='on' guest='off'/>
+ <model name='athlon'/>
+ </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml b/tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml
index 6a4196b735..b337947d3e 100644
--- a/tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Phenom-B95-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>athlon</model>
+ <model>athlon-v1</model>
<vendor>AMD</vendor>
<signature family='16' model='4' stepping='2'/>
<feature name='pni'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 43e1ca8861..c71286deb2 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -788,11 +788,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 0718de04f7..26f3eed92b 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1431,7 +1431,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 6eb78e68f0..6e67479e25 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -787,11 +787,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 3b716faf00..d5b703e09a 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -810,11 +810,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index bd8c0a086c..5928a72da9 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1521,7 +1521,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index b6ec55cf0c..69c1eb816f 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -809,11 +809,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index e6615316f7..c65db67a41 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -911,11 +911,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 50d6395d7f..e85937b36d 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1718,7 +1718,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 974346f980..b1b76ad6fd 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -910,11 +910,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 812ebd5e0a..fa27ff520a 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -917,11 +917,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 24f22dd53f..33ff630126 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1733,7 +1733,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 9af219d59d..0cf8733f1e 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -916,11 +916,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 439f609233..ba3669f4b2 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -944,11 +944,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 53c114699c..43b6a68e24 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1757,7 +1757,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 6d91c4ac75..a7d454b330 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -943,11 +943,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index d61b339dd9..08c27dbab8 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -911,11 +911,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index a758fbabc5..8e974ebfde 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1705,7 +1705,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 48e8299c23..71cb90d172 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -910,11 +910,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 6a15994158..2d346b5a15 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -916,11 +916,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 4d0def8fc7..31a774af8a 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1414,7 +1414,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 4d0def8fc7..31a774af8a 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1414,7 +1414,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index ead8df9815..46b0e223c7 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -915,11 +915,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 1936c89c70..95d809d412 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -998,11 +998,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index d72b0c93d3..95c413a22f 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1509,7 +1509,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 4adb6402ae..4cd5d8e640 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -997,11 +997,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index c9f53064ff..94def05942 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1227,11 +1227,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index b2e2c3264b..958b250336 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1493,7 +1493,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index c630356571..4480ff39cd 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1226,11 +1226,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 17f4f6c4f0..9f91f9ef93 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1228,11 +1228,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 3ea2911762..cf6ce11821 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1460,7 +1460,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 77286e9aef..07034ee9a7 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1227,11 +1227,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index d304fbd62b..020ad5bdba 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1228,11 +1228,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 3e6cc25529..b0a25f5ea6 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1389,7 +1389,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index a6fae9e3f1..f6e47f704a 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1227,11 +1227,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 060d96ab09..b501544f11 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1364,11 +1364,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 75f83cb376..1704b3b265 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1494,7 +1494,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 66dcb81fe6..3a1642af94 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1363,11 +1363,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 72df5e5e7d..91eab35039 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1364,11 +1364,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 6a756782cd..e807b965f6 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1494,7 +1494,8 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='yes' vendor='AMD'>athlon</model>
+ <model usable='yes' vendor='AMD' canonical='athlon-v1'>athlon</model>
+ <model usable='yes' vendor='AMD'>athlon-v1</model>
<model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index ef7b2bb67b..a876e7b98f 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1363,11 +1363,16 @@
<blockers model='Westmere-v2'>
<feature name='spec-ctrl'/>
</blockers>
- <model usable='no' vendor='AMD'>athlon</model>
+ <model usable='no' vendor='AMD' canonical='athlon-v1'>athlon</model>
<blockers model='athlon'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>athlon-v1</model>
+ <blockers model='athlon-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
--
2.47.1

View File

@ -1,827 +0,0 @@
From 0d09852c46c6acfac300098f853f9f6f53ef0104 Mon Sep 17 00:00:00 2001
Message-ID: <0d09852c46c6acfac300098f853f9f6f53ef0104.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:32:57 +0100
Subject: [PATCH] cpu_map: Add core2duo-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit a3cab1ae67c4d0657a1ebfeaaa0e6d41d951d780)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_core2duo-v1.xml | 6 ++++++
tests/cputestdata/x86_64-cpuid-Pentium-P6100-host.xml | 2 +-
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 6 +++++-
44 files changed, 167 insertions(+), 41 deletions(-)
create mode 100644 src/cpu_map/x86_core2duo-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 9534e5f308..eb847341da 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -21,6 +21,7 @@
<include filename='x86_n270.xml'/>
<include filename='x86_n270-v1.xml'/>
<include filename='x86_core2duo.xml'/>
+ <include filename='x86_core2duo-v1.xml'/>
</group>
<group name='Generic QEMU CPU models'>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 5e85e24eb9..b179fb442c 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -44,6 +44,7 @@ cpumap_data = [
'x86_Cooperlake-v1.xml',
'x86_Cooperlake-v2.xml',
'x86_Cooperlake.xml',
+ 'x86_core2duo-v1.xml',
'x86_core2duo.xml',
'x86_coreduo-v1.xml',
'x86_coreduo.xml',
diff --git a/src/cpu_map/x86_core2duo-v1.xml b/src/cpu_map/x86_core2duo-v1.xml
new file mode 100644
index 0000000000..e23855ae75
--- /dev/null
+++ b/src/cpu_map/x86_core2duo-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='core2duo-v1'>
+ <decode host='on' guest='off'/>
+ <model name='core2duo'/>
+ </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Pentium-P6100-host.xml b/tests/cputestdata/x86_64-cpuid-Pentium-P6100-host.xml
index a1a42d4b83..1bad0b11d3 100644
--- a/tests/cputestdata/x86_64-cpuid-Pentium-P6100-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Pentium-P6100-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>core2duo</model>
+ <model>core2duo-v1</model>
<vendor>Intel</vendor>
<signature family='6' model='37' stepping='5'/>
<feature name='dtes64'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 1ba8a7eb11..d4853706b3 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -779,10 +779,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 1abbfcc4bb..03c88241c8 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1412,7 +1412,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 3040deeb50..75592e124e 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -778,10 +778,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index cb59946b78..de38e87010 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -801,10 +801,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index e6165eab77..29aa3f9adc 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1502,7 +1502,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 5aae9a3fca..6469251e47 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -800,10 +800,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 2898e56b41..3918fd5101 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -902,10 +902,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 2b5baf0a02..5d5b18cfdf 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1699,7 +1699,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 0fd3e38ee6..98bcfec2bb 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -901,10 +901,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 690959d35a..ed4a66a4ca 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -908,10 +908,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 6153d8a9ee..a748c623bc 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1714,7 +1714,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 15edc7e73d..f9a0221e7b 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -907,10 +907,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index a1f68beb2a..6b97ff8ba7 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -935,10 +935,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 9eda36d3c8..2e27e674f2 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1738,7 +1738,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 249baa1342..99d8cf9558 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -934,10 +934,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index b65196f979..e101305e83 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -902,10 +902,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 84df14bc63..24f90ed830 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1686,7 +1686,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 2e41f4a73a..0f993e3763 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -901,10 +901,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index ca8391756b..bfea565a00 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -907,10 +907,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 258212d852..91fc6133e4 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1399,7 +1399,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 258212d852..91fc6133e4 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1399,7 +1399,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 819010acff..1e8f10d17f 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -906,10 +906,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 68b1192153..8dfbc2b21a 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -989,10 +989,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index ea0bc81bea..6982dc8035 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1494,7 +1494,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index bddb1413a1..a739ec6b73 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -988,10 +988,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 7f1f4a2082..4d6e8c8a7f 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1218,10 +1218,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index e2fc678bb6..0009fb007d 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1480,7 +1480,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 4b0aed148d..74f9fe6dbe 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1217,10 +1217,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index ab371ea688..d4d7a9e079 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1219,10 +1219,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index a256fed6d7..b948f32538 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1447,7 +1447,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 3f952bb379..3e22f5e9b3 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1218,10 +1218,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 21358e340a..7a30c27b83 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1219,10 +1219,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index d34524193a..ee71c658cb 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1377,7 +1377,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 9bbb95c0cb..8509032a62 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1218,10 +1218,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index c5cbe2d855..b43b607c39 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1355,10 +1355,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 3ec8575cf4..b79140038c 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1482,7 +1482,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 513f4486cb..509b5a6c33 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1354,10 +1354,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 089ab497e0..9114ece766 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1355,10 +1355,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 64e893116a..e2e40d7ca2 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1482,7 +1482,8 @@
<feature name='spec-ctrl'/>
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
- <model usable='yes' vendor='Intel'>core2duo</model>
+ <model usable='yes' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
+ <model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 6e4f518b23..4a5a09c488 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1354,10 +1354,14 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='no' vendor='Intel'>core2duo</model>
+ <model usable='no' vendor='Intel' canonical='core2duo-v1'>core2duo</model>
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>core2duo-v1</model>
+ <blockers model='core2duo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
--
2.47.1

View File

@ -1,814 +0,0 @@
From 679d1ce3b64151c9673a0287c5dada9f11b77cfc Mon Sep 17 00:00:00 2001
Message-ID: <679d1ce3b64151c9673a0287c5dada9f11b77cfc.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:30:57 +0100
Subject: [PATCH] cpu_map: Add coreduo-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit ae14b20aaa11f506977b2e88b3c6050ad50ec33d)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_coreduo-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 6 +++++-
43 files changed, 166 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_coreduo-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 87cc4f61ed..d8df3b214d 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -17,6 +17,7 @@
<include filename='x86_pentium3-v1.xml'/>
<include filename='x86_pentiumpro.xml'/>
<include filename='x86_coreduo.xml'/>
+ <include filename='x86_coreduo-v1.xml'/>
<include filename='x86_n270.xml'/>
<include filename='x86_core2duo.xml'/>
</group>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 6645786736..1213f6929c 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -45,6 +45,7 @@ cpumap_data = [
'x86_Cooperlake-v2.xml',
'x86_Cooperlake.xml',
'x86_core2duo.xml',
+ 'x86_coreduo-v1.xml',
'x86_coreduo.xml',
'x86_cpu64-rhel5.xml',
'x86_cpu64-rhel6.xml',
diff --git a/src/cpu_map/x86_coreduo-v1.xml b/src/cpu_map/x86_coreduo-v1.xml
new file mode 100644
index 0000000000..c32be47485
--- /dev/null
+++ b/src/cpu_map/x86_coreduo-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='coreduo-v1'>
+ <decode host='on' guest='off'/>
+ <model name='coreduo'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index f887be4468..cb6db8f83c 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -783,10 +783,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 0c5a3a81f8..36625a07b3 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1413,7 +1413,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 7591b2efe9..fcd76f9bc8 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -782,10 +782,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index a7b325fd61..4b2d94b281 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -805,10 +805,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 63c1ff9b4a..b20dbe72c1 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1503,7 +1503,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 3d6ff5657e..ad3be21085 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -804,10 +804,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index e475c264ee..a76f03f910 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -906,10 +906,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 5deb101fe3..da44554a73 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1700,7 +1700,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index f4542588e8..4369595b2e 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -905,10 +905,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index c388b7919a..dc6dd2f743 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -912,10 +912,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index bae374c05b..d8bb03fbfd 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1715,7 +1715,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 43d1a8d3a2..69afbc55f0 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -911,10 +911,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index b882feace0..0798ee74de 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -939,10 +939,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index dcdad93bc4..07bbd505fa 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1739,7 +1739,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index f825365d4e..bf07fa3f51 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -938,10 +938,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index f8ac31d143..694561221f 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -906,10 +906,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index c4a159a3da..d98b895940 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1687,7 +1687,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 5efd8d499f..e02f39bdf5 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -905,10 +905,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index a0f10ca42d..faa838ee4b 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -911,10 +911,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 26e716e0e8..c65ffc40bb 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1400,7 +1400,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 26e716e0e8..c65ffc40bb 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1400,7 +1400,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 871949d74f..0a88511093 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -910,10 +910,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 9fb5e0a823..e931d7445d 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -993,10 +993,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index d7aeb43b83..c0cc453fd1 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1495,7 +1495,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 8e226ee237..59c36bfa49 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -992,10 +992,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 27fddae9f5..f822c040de 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1222,10 +1222,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 30169a55e4..7ea876c1fc 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1481,7 +1481,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index c91b05f312..56a57665f1 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1221,10 +1221,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 76d9f80936..d2e14fcaab 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1223,10 +1223,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 7f08733452..25fe5a3f48 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1448,7 +1448,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 4bf5988cf3..dfcbcf2477 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1222,10 +1222,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 8e2d2a636e..7b20023b19 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1223,10 +1223,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 0b488faa07..ee58ddff1d 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1378,7 +1378,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 9b41cc5fcc..d2f19183f0 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1222,10 +1222,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 996a269525..3e3bd2b5e1 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1359,10 +1359,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 5d914aa62c..f4e8163256 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1483,7 +1483,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 094ec28df0..54d5323f71 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1358,10 +1358,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 0e9a63cf4e..b9697229d9 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1359,10 +1359,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 9fb8cb4e4a..cc672be9a1 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1483,7 +1483,8 @@
</blockers>
<model usable='yes' vendor='AMD'>athlon</model>
<model usable='yes' vendor='Intel'>core2duo</model>
- <model usable='yes' vendor='Intel'>coreduo</model>
+ <model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
+ <model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index d99a66ecfe..c29d1e99bc 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1358,10 +1358,14 @@
<blockers model='core2duo'>
<feature name='ss'/>
</blockers>
- <model usable='no' vendor='Intel'>coreduo</model>
+ <model usable='no' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<blockers model='coreduo'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>coreduo-v1</model>
+ <blockers model='coreduo-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel'>n270</model>
--
2.47.1

View File

@ -1,658 +0,0 @@
From e116e273f4d3a88c2997f1780b3a8d0633907fcf Mon Sep 17 00:00:00 2001
Message-ID: <e116e273f4d3a88c2997f1780b3a8d0633907fcf.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:35:19 +0100
Subject: [PATCH] cpu_map: Add kvm32-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 4a8259b5a3bfa224b431767e9091f54caefb25a2)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_kvm32-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_kvm32-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 0fe2a513ca..81d77e4dba 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -28,6 +28,7 @@
<include filename='x86_qemu32.xml'/>
<include filename='x86_qemu32-v1.xml'/>
<include filename='x86_kvm32.xml'/>
+ <include filename='x86_kvm32-v1.xml'/>
<include filename='x86_cpu64-rhel5.xml'/>
<include filename='x86_cpu64-rhel6.xml'/>
<include filename='x86_qemu64.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 61c5e403f9..d73a1b4feb 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -99,6 +99,7 @@ cpumap_data = [
'x86_IvyBridge-v2.xml',
'x86_IvyBridge.xml',
'x86_KnightsMill.xml',
+ 'x86_kvm32-v1.xml',
'x86_kvm32.xml',
'x86_kvm64.xml',
'x86_n270-v1.xml',
diff --git a/src/cpu_map/x86_kvm32-v1.xml b/src/cpu_map/x86_kvm32-v1.xml
new file mode 100644
index 0000000000..cce4b1d7c5
--- /dev/null
+++ b/src/cpu_map/x86_kvm32-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='kvm32-v1'>
+ <decode host='on' guest='off'/>
+ <model name='kvm32'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 90a947b72a..da05a9358f 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -795,7 +795,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index a1d2982897..296f4bce12 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1416,7 +1416,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 1c6e65a408..dd5df8de0d 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -794,7 +794,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index bafaee4dc5..4330afb33a 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -817,7 +817,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index bac7c98eea..873d4b7b1f 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1506,7 +1506,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index fe78b42ab3..f1f8362f52 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -816,7 +816,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index c4e6cfeb84..7e0ed073a2 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -918,7 +918,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 3390d156e5..b93e3ca9ac 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1703,7 +1703,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 62d5a4bdad..8c538a6568 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -917,7 +917,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 77fa39cf13..dc8fd0539b 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -924,7 +924,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index ee36631717..e075cc7dca 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1718,7 +1718,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index fb66ff6032..d0955a30f2 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -923,7 +923,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index fbbe1f7ed4..4f2d2a272d 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -951,7 +951,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index f5a84c16f7..fcb175557c 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1742,7 +1742,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index d828319061..07fa015c26 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -950,7 +950,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 968be6fc31..7880718caf 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -918,7 +918,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index d0a03a641c..e34444f915 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1690,7 +1690,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index a0492d152e..dd045555db 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -917,7 +917,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index dfb06177ff..34527a0fc0 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -923,7 +923,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 90908a78e2..14f0bc7f87 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1403,7 +1403,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 90908a78e2..14f0bc7f87 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1403,7 +1403,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index f3c03fe68b..de7e039b84 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -922,7 +922,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 27e43a875e..eeee7b926c 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1005,7 +1005,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 8fc17e9d8a..882ef3ed4d 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1498,7 +1498,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index ccaf3af991..dee27a40c4 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1004,7 +1004,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index f77e36d1ea..14f9d0a3a5 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1234,7 +1234,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 5e5cf92e53..1347de2c5b 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1484,7 +1484,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 3b53baae7a..6855f75ba4 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1233,7 +1233,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index a4faf9112c..63bce83ba5 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1235,7 +1235,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 3e7ba22317..6b4db43077 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1451,7 +1451,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index a2fbea3b21..b9449120d3 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1234,7 +1234,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index b945327d7a..5b0f2f84be 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1235,7 +1235,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 1c00bbb899..04049d17af 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1381,7 +1381,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index c0d45ff56b..4ec2b2e96d 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1234,7 +1234,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 7d5c0b114d..9e152d5b55 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1371,7 +1371,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 915970f0ca..1c79f73ae2 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1486,7 +1486,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 3703b8b6f4..0af8a79cb4 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1370,7 +1370,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index c76d4d112f..4cb0a22a9b 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1371,7 +1371,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index cf9ef74abe..99858a0b91 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1486,7 +1486,8 @@
<model usable='yes' vendor='Intel'>core2duo-v1</model>
<model usable='yes' vendor='Intel' canonical='coreduo-v1'>coreduo</model>
<model usable='yes' vendor='Intel'>coreduo-v1</model>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index bb64a26754..cfedba3e8e 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1370,7 +1370,8 @@
<blockers model='coreduo-v1'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>kvm32</model>
+ <model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
+ <model usable='yes' vendor='unknown'>kvm32-v1</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
--
2.47.1

View File

@ -1,658 +0,0 @@
From 7297a02322a0fcc19ab46d0a39f0adae25bbb1ed Mon Sep 17 00:00:00 2001
Message-ID: <7297a02322a0fcc19ab46d0a39f0adae25bbb1ed.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:37:01 +0100
Subject: [PATCH] cpu_map: Add kvm64-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 6d25eafaec0f138a57fbaa5c3e51952548ffae18)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_kvm64-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_kvm64-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 8077da260d..a9a8d1b2c4 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -34,6 +34,7 @@
<include filename='x86_qemu64.xml'/>
<include filename='x86_qemu64-v1.xml'/>
<include filename='x86_kvm64.xml'/>
+ <include filename='x86_kvm64-v1.xml'/>
</group>
<group name='Intel CPU models'>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 799a72df47..7ea53373ae 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -101,6 +101,7 @@ cpumap_data = [
'x86_KnightsMill.xml',
'x86_kvm32-v1.xml',
'x86_kvm32.xml',
+ 'x86_kvm64-v1.xml',
'x86_kvm64.xml',
'x86_n270-v1.xml',
'x86_n270.xml',
diff --git a/src/cpu_map/x86_kvm64-v1.xml b/src/cpu_map/x86_kvm64-v1.xml
new file mode 100644
index 0000000000..73d1e4f574
--- /dev/null
+++ b/src/cpu_map/x86_kvm64-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='kvm64-v1'>
+ <decode host='on' guest='off'/>
+ <model name='kvm64'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index e6c0863d54..985a00cf84 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -797,7 +797,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 7f68ca79c7..74aa563566 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1418,7 +1418,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 13aef737e2..4fdeaec417 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -796,7 +796,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 734d1f3bb2..284d70c7cc 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -819,7 +819,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 39f1aaf3f8..07097ce25b 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1508,7 +1508,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 3db605a87b..1aefe0ea08 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -818,7 +818,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index c77b05c257..2ffe8cb354 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -920,7 +920,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 67b5a9f3d8..2a084c64fe 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1705,7 +1705,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index daafd91079..bda2e0ef68 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -919,7 +919,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 6c15cae03d..d2fbcad98c 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -926,7 +926,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 2480513c4b..60093eda9a 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1720,7 +1720,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 914f011071..eafdc53ff6 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -925,7 +925,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index f368716de9..03896267d5 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -953,7 +953,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index c3dba8ccd7..52eb4b8215 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1744,7 +1744,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 4592e03dc4..f212097662 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -952,7 +952,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 39535a73ad..38b0f47092 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -920,7 +920,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 0694b5426e..43de9e5193 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1692,7 +1692,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index c36ebcf7fd..92514055c9 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -919,7 +919,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 3d15c7dca5..10017064b8 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -925,7 +925,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index bfb94bc389..95b582af9f 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1405,7 +1405,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index bfb94bc389..95b582af9f 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1405,7 +1405,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 2c3bca4a76..1e40bc5b23 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -924,7 +924,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index bf2c489691..392ec1e232 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1007,7 +1007,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 345f8177f2..0893277250 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1500,7 +1500,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 758ce18d38..52ef9718d0 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1006,7 +1006,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 4a478b678f..ef74bbd2fa 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1236,7 +1236,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index e3dda5ff74..404237ef67 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1486,7 +1486,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index aa94c97499..eafacf0b61 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1235,7 +1235,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index f3ad13ff40..c544eb02e3 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1237,7 +1237,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 4aa6ddca4f..b7b0ddd7c4 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1453,7 +1453,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 8ad3499c67..a4c86941c6 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1236,7 +1236,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index b3325f4e36..06341f125a 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1237,7 +1237,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 90a785ed55..e759a15ea7 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1383,7 +1383,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 9bac49c553..eb4822c667 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1236,7 +1236,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 986c3936c0..a6c7d8e74c 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1373,7 +1373,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 9f4d2d8af8..18070cd01a 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1488,7 +1488,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index e8b70c7e0f..e008a2f2e9 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1372,7 +1372,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 4ac90bad0d..ce19774d0d 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1373,7 +1373,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 94d866a5f0..217fbfe51c 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1488,7 +1488,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
<model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 84303bee0b..4f34340651 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1372,7 +1372,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='kvm32-v1'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm32-v1</model>
- <model usable='yes' vendor='unknown'>kvm64</model>
+ <model usable='yes' vendor='unknown' canonical='kvm64-v1'>kvm64</model>
+ <model usable='yes' vendor='unknown'>kvm64-v1</model>
<model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
--
2.47.1

View File

@ -1,840 +0,0 @@
From 345fbc5a96c77d785879f1457dc83b5a9f6a5a30 Mon Sep 17 00:00:00 2001
Message-ID: <345fbc5a96c77d785879f1457dc83b5a9f6a5a30.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:32:08 +0100
Subject: [PATCH] cpu_map: Add n270-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit c9fa77bfe84b8184254bb381d04f365391ab8a96)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_n270-v1.xml | 6 ++++++
tests/cputestdata/x86_64-cpuid-Atom-D510-host.xml | 2 +-
tests/cputestdata/x86_64-cpuid-Atom-N450-host.xml | 2 +-
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 6 +++++-
45 files changed, 168 insertions(+), 42 deletions(-)
create mode 100644 src/cpu_map/x86_n270-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index d8df3b214d..9534e5f308 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -19,6 +19,7 @@
<include filename='x86_coreduo.xml'/>
<include filename='x86_coreduo-v1.xml'/>
<include filename='x86_n270.xml'/>
+ <include filename='x86_n270-v1.xml'/>
<include filename='x86_core2duo.xml'/>
</group>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 1213f6929c..5e85e24eb9 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -100,6 +100,7 @@ cpumap_data = [
'x86_KnightsMill.xml',
'x86_kvm32.xml',
'x86_kvm64.xml',
+ 'x86_n270-v1.xml',
'x86_n270.xml',
'x86_Nehalem-IBRS.xml',
'x86_Nehalem-v1.xml',
diff --git a/src/cpu_map/x86_n270-v1.xml b/src/cpu_map/x86_n270-v1.xml
new file mode 100644
index 0000000000..f49b823953
--- /dev/null
+++ b/src/cpu_map/x86_n270-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='n270-v1'>
+ <decode host='on' guest='off'/>
+ <model name='n270'/>
+ </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-Atom-D510-host.xml b/tests/cputestdata/x86_64-cpuid-Atom-D510-host.xml
index 1e9c6782e9..10797e0633 100644
--- a/tests/cputestdata/x86_64-cpuid-Atom-D510-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Atom-D510-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>n270</model>
+ <model>n270-v1</model>
<vendor>Intel</vendor>
<signature family='6' model='28' stepping='10'/>
<feature name='dtes64'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Atom-N450-host.xml b/tests/cputestdata/x86_64-cpuid-Atom-N450-host.xml
index 4856cf53c4..498863b3ed 100644
--- a/tests/cputestdata/x86_64-cpuid-Atom-N450-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Atom-N450-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>n270</model>
+ <model>n270-v1</model>
<vendor>Intel</vendor>
<signature family='6' model='28' stepping='10'/>
<feature name='dtes64'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index cb6db8f83c..1ba8a7eb11 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -793,10 +793,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 36625a07b3..1abbfcc4bb 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1417,7 +1417,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index fcd76f9bc8..3040deeb50 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -792,10 +792,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 4b2d94b281..cb59946b78 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -815,10 +815,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index b20dbe72c1..e6165eab77 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1507,7 +1507,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index ad3be21085..5aae9a3fca 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -814,10 +814,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index a76f03f910..2898e56b41 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -916,10 +916,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index da44554a73..2b5baf0a02 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1704,7 +1704,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 4369595b2e..0fd3e38ee6 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -915,10 +915,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index dc6dd2f743..690959d35a 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -922,10 +922,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index d8bb03fbfd..6153d8a9ee 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1719,7 +1719,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 69afbc55f0..15edc7e73d 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -921,10 +921,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 0798ee74de..a1f68beb2a 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -949,10 +949,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 07bbd505fa..9eda36d3c8 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1743,7 +1743,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index bf07fa3f51..249baa1342 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -948,10 +948,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 694561221f..b65196f979 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -916,10 +916,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index d98b895940..84df14bc63 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1691,7 +1691,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index e02f39bdf5..2e41f4a73a 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -915,10 +915,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index faa838ee4b..ca8391756b 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -921,10 +921,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index c65ffc40bb..258212d852 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1404,7 +1404,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index c65ffc40bb..258212d852 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1404,7 +1404,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 0a88511093..819010acff 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -920,10 +920,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index e931d7445d..68b1192153 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1003,10 +1003,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index c0cc453fd1..ea0bc81bea 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1499,7 +1499,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 59c36bfa49..bddb1413a1 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1002,10 +1002,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index f822c040de..7f1f4a2082 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1232,10 +1232,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 7ea876c1fc..e2fc678bb6 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1485,7 +1485,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 56a57665f1..4b0aed148d 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1231,10 +1231,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index d2e14fcaab..ab371ea688 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1233,10 +1233,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 25fe5a3f48..a256fed6d7 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1452,7 +1452,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index dfcbcf2477..3f952bb379 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1232,10 +1232,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 7b20023b19..21358e340a 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1233,10 +1233,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index ee58ddff1d..d34524193a 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1382,7 +1382,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index d2f19183f0..9bbb95c0cb 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1232,10 +1232,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 3e3bd2b5e1..c5cbe2d855 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1369,10 +1369,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index f4e8163256..3ec8575cf4 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1487,7 +1487,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 54d5323f71..513f4486cb 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1368,10 +1368,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index b9697229d9..089ab497e0 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1369,10 +1369,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index cc672be9a1..64e893116a 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1487,7 +1487,8 @@
<model usable='yes' vendor='Intel'>coreduo-v1</model>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='yes' vendor='Intel'>n270</model>
+ <model usable='yes' vendor='Intel' canonical='n270-v1'>n270</model>
+ <model usable='yes' vendor='Intel'>n270-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index c29d1e99bc..6e4f518b23 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1368,10 +1368,14 @@
</blockers>
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
- <model usable='no' vendor='Intel'>n270</model>
+ <model usable='no' vendor='Intel' canonical='n270-v1'>n270</model>
<blockers model='n270'>
<feature name='ss'/>
</blockers>
+ <model usable='no' vendor='Intel'>n270-v1</model>
+ <blockers model='n270-v1'>
+ <feature name='ss'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
--
2.47.1

View File

@ -1,658 +0,0 @@
From f0ff972e084c4bc36624cfc965674a9d9ac91615 Mon Sep 17 00:00:00 2001
Message-ID: <f0ff972e084c4bc36624cfc965674a9d9ac91615.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:23:04 +0100
Subject: [PATCH] cpu_map: Add pentium-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 70a4ec29a780d47b34ed0026f968cc4a66f3a2ee)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_pentium-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_pentium-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index e9fb278fd3..a12c32eec6 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -10,6 +10,7 @@
<group name='Intel-based QEMU generic CPU models'>
<include filename='x86_pentium.xml'/>
+ <include filename='x86_pentium-v1.xml'/>
<include filename='x86_pentium2.xml'/>
<include filename='x86_pentium3.xml'/>
<include filename='x86_pentiumpro.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index b335278b08..2c76b32280 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -110,6 +110,7 @@ cpumap_data = [
'x86_Opteron_G4.xml',
'x86_Opteron_G5.xml',
'x86_Penryn.xml',
+ 'x86_pentium-v1.xml',
'x86_pentium.xml',
'x86_pentium2.xml',
'x86_pentium3.xml',
diff --git a/src/cpu_map/x86_pentium-v1.xml b/src/cpu_map/x86_pentium-v1.xml
new file mode 100644
index 0000000000..2b690dab19
--- /dev/null
+++ b/src/cpu_map/x86_pentium-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='pentium-v1'>
+ <decode host='on' guest='off'/>
+ <model name='pentium'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 46f1bd7d4f..783df2e45f 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -793,7 +793,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 7153fe3925..b0c660dda2 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1417,7 +1417,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 93df9af8f6..d600d744f4 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -792,7 +792,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 25b16b34bb..5076c5f864 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -815,7 +815,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index c9a124cda2..d47632f95f 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1507,7 +1507,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index a99c89e98b..1a5ba3ed86 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -814,7 +814,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index c4f95a282b..6f444b15ec 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -916,7 +916,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index b6f01ffbce..d1a8a432d3 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1704,7 +1704,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 5d3c1ab1aa..9c83624e20 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -915,7 +915,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index c24b88f412..b696860c36 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -922,7 +922,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index eb8f5e3f22..686d89e864 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1719,7 +1719,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index b1f198d62b..c1ed9f13e9 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -921,7 +921,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 7a4830b126..1a0860f81a 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -949,7 +949,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index d624842aab..b8f950e7f3 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1743,7 +1743,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 43bcca9b52..9b7046a713 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -948,7 +948,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 275ce525fe..087c90344e 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -916,7 +916,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 6500ceac17..521eae41ce 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1691,7 +1691,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 1e54981f3c..5d6438d440 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -915,7 +915,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 5b1bb3ad55..b7175be7dc 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -921,7 +921,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 339c622684..08534be348 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1404,7 +1404,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 339c622684..08534be348 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1404,7 +1404,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index a016f77b09..f8b95431ac 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -920,7 +920,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 9a42375791..30cf441d89 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1003,7 +1003,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 677ebbf2e6..940f1338e9 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1499,7 +1499,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 1eb4af3fdc..7ba288f0b2 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1002,7 +1002,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index e2fa9da460..f5f6afb094 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1232,7 +1232,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 787fc9d870..3fabd84691 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1485,7 +1485,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 3fa195c6aa..b52d6d68d6 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1231,7 +1231,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 5fe9ab775c..b67425cd20 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1233,7 +1233,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 5c9f1c92a5..69be0c7ffe 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1452,7 +1452,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 73f129706d..29e6285b17 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1232,7 +1232,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 2315bda338..c75666a7fd 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1233,7 +1233,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 90c9862321..de856ff33b 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1382,7 +1382,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 983597be92..b6d210838c 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1232,7 +1232,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 578dea23a5..054b233cfc 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1369,7 +1369,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 2009920390..d847b56680 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1487,7 +1487,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 505ea9978f..6a4918211c 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1368,7 +1368,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index e78f6a9dd3..fe8e7c6a8d 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1369,7 +1369,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index da9f2a1193..58ee6816e7 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1487,7 +1487,8 @@
<model usable='yes' vendor='unknown'>kvm32</model>
<model usable='yes' vendor='unknown'>kvm64</model>
<model usable='yes' vendor='Intel'>n270</model>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 74d1094511..7aae7a2904 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1368,7 +1368,8 @@
<blockers model='n270'>
<feature name='ss'/>
</blockers>
- <model usable='yes' vendor='unknown'>pentium</model>
+ <model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
+ <model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
--
2.47.1

View File

@ -1,658 +0,0 @@
From 435f48536a5c989da9caf0dc0374e9c08f911a55 Mon Sep 17 00:00:00 2001
Message-ID: <435f48536a5c989da9caf0dc0374e9c08f911a55.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:25:30 +0100
Subject: [PATCH] cpu_map: Add pentium2-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit df34ae48e9cb8fe0ed9b50900eab07cd6e87481c)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_pentium2-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_pentium2-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index a12c32eec6..1f1536339c 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -12,6 +12,7 @@
<include filename='x86_pentium.xml'/>
<include filename='x86_pentium-v1.xml'/>
<include filename='x86_pentium2.xml'/>
+ <include filename='x86_pentium2-v1.xml'/>
<include filename='x86_pentium3.xml'/>
<include filename='x86_pentiumpro.xml'/>
<include filename='x86_coreduo.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 2c76b32280..47c22db5b7 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -112,6 +112,7 @@ cpumap_data = [
'x86_Penryn.xml',
'x86_pentium-v1.xml',
'x86_pentium.xml',
+ 'x86_pentium2-v1.xml',
'x86_pentium2.xml',
'x86_pentium3.xml',
'x86_pentiumpro.xml',
diff --git a/src/cpu_map/x86_pentium2-v1.xml b/src/cpu_map/x86_pentium2-v1.xml
new file mode 100644
index 0000000000..554aebce41
--- /dev/null
+++ b/src/cpu_map/x86_pentium2-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='pentium2-v1'>
+ <decode host='on' guest='off'/>
+ <model name='pentium2'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 783df2e45f..db91ece840 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -795,7 +795,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index b0c660dda2..17ad483a0c 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1419,7 +1419,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index d600d744f4..88b506eeac 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -794,7 +794,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 5076c5f864..ec626f9c82 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -817,7 +817,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index d47632f95f..1f9f215a63 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1509,7 +1509,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 1a5ba3ed86..3551b22832 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -816,7 +816,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 6f444b15ec..057b9a392a 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -918,7 +918,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index d1a8a432d3..e6a74efc27 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1706,7 +1706,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 9c83624e20..8583b09a19 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -917,7 +917,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index b696860c36..5662860ea4 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -924,7 +924,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 686d89e864..3ae800014b 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1721,7 +1721,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index c1ed9f13e9..ac04083e6d 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -923,7 +923,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 1a0860f81a..4c884f4385 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -951,7 +951,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index b8f950e7f3..6e308eb156 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1745,7 +1745,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 9b7046a713..347c13024b 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -950,7 +950,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 087c90344e..9d11b5f6c3 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -918,7 +918,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 521eae41ce..92d0d0d24f 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1693,7 +1693,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 5d6438d440..e3eb689de3 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -917,7 +917,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index b7175be7dc..d9aaf6bd10 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -923,7 +923,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 08534be348..1b4ee8ab7a 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1406,7 +1406,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 08534be348..1b4ee8ab7a 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1406,7 +1406,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index f8b95431ac..1bd4e45095 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -922,7 +922,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 30cf441d89..7b9d952866 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1005,7 +1005,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 940f1338e9..dd96957e79 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1501,7 +1501,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 7ba288f0b2..876d2a37a8 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1004,7 +1004,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index f5f6afb094..269c399d8c 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1234,7 +1234,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 3fabd84691..d0899b6beb 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1487,7 +1487,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index b52d6d68d6..647ba2ab7a 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1233,7 +1233,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index b67425cd20..a0b2a7c84b 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1235,7 +1235,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 69be0c7ffe..4b9cf3e152 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1454,7 +1454,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 29e6285b17..df21513db3 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1234,7 +1234,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index c75666a7fd..1c872e7f20 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1235,7 +1235,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index de856ff33b..439a82f4e2 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1384,7 +1384,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index b6d210838c..16764a7d67 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1234,7 +1234,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 054b233cfc..c45c2a88d5 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1371,7 +1371,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index d847b56680..2391821956 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1489,7 +1489,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 6a4918211c..1c23ac2b9d 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1370,7 +1370,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index fe8e7c6a8d..135546d930 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1371,7 +1371,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 58ee6816e7..2002feb338 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1489,7 +1489,8 @@
<model usable='yes' vendor='Intel'>n270</model>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 7aae7a2904..871af7f505 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1370,7 +1370,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='pentium-v1'>pentium</model>
<model usable='yes' vendor='unknown'>pentium-v1</model>
- <model usable='yes' vendor='unknown'>pentium2</model>
+ <model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
+ <model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown'>pentium3</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
--
2.47.1

View File

@ -1,658 +0,0 @@
From cfb9b30ea4c8fc9304a2aa27946538e39fc7b7fd Mon Sep 17 00:00:00 2001
Message-ID: <cfb9b30ea4c8fc9304a2aa27946538e39fc7b7fd.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:28:21 +0100
Subject: [PATCH] cpu_map: Add pentium3-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 886fd169c5e03ca9c065e69634ab3cd5656faf36)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_pentium3-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_pentium3-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 1f1536339c..87cc4f61ed 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -14,6 +14,7 @@
<include filename='x86_pentium2.xml'/>
<include filename='x86_pentium2-v1.xml'/>
<include filename='x86_pentium3.xml'/>
+ <include filename='x86_pentium3-v1.xml'/>
<include filename='x86_pentiumpro.xml'/>
<include filename='x86_coreduo.xml'/>
<include filename='x86_n270.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 47c22db5b7..6645786736 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -114,6 +114,7 @@ cpumap_data = [
'x86_pentium.xml',
'x86_pentium2-v1.xml',
'x86_pentium2.xml',
+ 'x86_pentium3-v1.xml',
'x86_pentium3.xml',
'x86_pentiumpro.xml',
'x86_phenom.xml',
diff --git a/src/cpu_map/x86_pentium3-v1.xml b/src/cpu_map/x86_pentium3-v1.xml
new file mode 100644
index 0000000000..7547e0ef0c
--- /dev/null
+++ b/src/cpu_map/x86_pentium3-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='pentium3-v1'>
+ <decode host='on' guest='off'/>
+ <model name='pentium3'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index db91ece840..f887be4468 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -797,7 +797,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 17ad483a0c..0c5a3a81f8 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1421,7 +1421,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 88b506eeac..7591b2efe9 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -796,7 +796,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index ec626f9c82..a7b325fd61 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -819,7 +819,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 1f9f215a63..63c1ff9b4a 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1511,7 +1511,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 3551b22832..3d6ff5657e 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -818,7 +818,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 057b9a392a..e475c264ee 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -920,7 +920,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index e6a74efc27..5deb101fe3 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1708,7 +1708,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 8583b09a19..f4542588e8 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -919,7 +919,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 5662860ea4..c388b7919a 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -926,7 +926,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 3ae800014b..bae374c05b 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1723,7 +1723,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index ac04083e6d..43d1a8d3a2 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -925,7 +925,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 4c884f4385..b882feace0 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -953,7 +953,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 6e308eb156..dcdad93bc4 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1747,7 +1747,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 347c13024b..f825365d4e 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -952,7 +952,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 9d11b5f6c3..f8ac31d143 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -920,7 +920,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 92d0d0d24f..c4a159a3da 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1695,7 +1695,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index e3eb689de3..5efd8d499f 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -919,7 +919,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index d9aaf6bd10..a0f10ca42d 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -925,7 +925,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 1b4ee8ab7a..26e716e0e8 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1408,7 +1408,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 1b4ee8ab7a..26e716e0e8 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1408,7 +1408,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 1bd4e45095..871949d74f 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -924,7 +924,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 7b9d952866..9fb5e0a823 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1007,7 +1007,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index dd96957e79..d7aeb43b83 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1503,7 +1503,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 876d2a37a8..8e226ee237 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1006,7 +1006,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 269c399d8c..27fddae9f5 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1236,7 +1236,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index d0899b6beb..30169a55e4 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1489,7 +1489,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 647ba2ab7a..c91b05f312 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1235,7 +1235,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index a0b2a7c84b..76d9f80936 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1237,7 +1237,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 4b9cf3e152..7f08733452 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1456,7 +1456,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index df21513db3..4bf5988cf3 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1236,7 +1236,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 1c872e7f20..8e2d2a636e 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1237,7 +1237,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 439a82f4e2..0b488faa07 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1386,7 +1386,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 16764a7d67..9b41cc5fcc 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1236,7 +1236,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index c45c2a88d5..996a269525 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1373,7 +1373,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 2391821956..5d914aa62c 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1491,7 +1491,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 1c23ac2b9d..094ec28df0 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1372,7 +1372,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 135546d930..0e9a63cf4e 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1373,7 +1373,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 2002feb338..9fb8cb4e4a 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1491,7 +1491,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 871af7f505..d99a66ecfe 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1372,7 +1372,8 @@
<model usable='yes' vendor='unknown'>pentium-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium2-v1'>pentium2</model>
<model usable='yes' vendor='unknown'>pentium2-v1</model>
- <model usable='yes' vendor='unknown'>pentium3</model>
+ <model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
+ <model usable='yes' vendor='unknown'>pentium3-v1</model>
<model usable='no' vendor='AMD'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
--
2.47.1

View File

@ -1,950 +0,0 @@
From 83e6078e15989f132d4c949d23bd6042a20f507d Mon Sep 17 00:00:00 2001
Message-ID: <83e6078e15989f132d4c949d23bd6042a20f507d.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:44:29 +0100
Subject: [PATCH] cpu_map: Add phenom-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 332136e49ab4d122d053b11646c292a1a72e732a)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_phenom-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 6 +++++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 7 ++++++-
43 files changed, 234 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_phenom-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 5f42fdc7fd..74b315c661 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -135,6 +135,7 @@
<include filename='x86_athlon.xml'/>
<include filename='x86_athlon-v1.xml'/>
<include filename='x86_phenom.xml'/>
+ <include filename='x86_phenom-v1.xml'/>
<include filename='x86_Opteron_G1.xml'/>
<include filename='x86_Opteron_G2.xml'/>
<include filename='x86_Opteron_G3.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 8d45feee00..47c93deace 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -126,6 +126,7 @@ cpumap_data = [
'x86_pentium3-v1.xml',
'x86_pentium3.xml',
'x86_pentiumpro.xml',
+ 'x86_phenom-v1.xml',
'x86_phenom.xml',
'x86_qemu32-v1.xml',
'x86_qemu32.xml',
diff --git a/src/cpu_map/x86_phenom-v1.xml b/src/cpu_map/x86_phenom-v1.xml
new file mode 100644
index 0000000000..f465c0e1d3
--- /dev/null
+++ b/src/cpu_map/x86_phenom-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='phenom-v1'>
+ <decode host='on' guest='off'/>
+ <model name='phenom'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index c71286deb2..27d36feccf 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -832,11 +832,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 26f3eed92b..b06febb821 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1449,10 +1449,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 6e67479e25..21b4ab8c5c 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -831,11 +831,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index d5b703e09a..83bb914c7d 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -854,11 +854,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 5928a72da9..47ab7240fb 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1539,10 +1539,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 69c1eb816f..cc212722f5 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -853,11 +853,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index c65db67a41..ec7abc3903 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -955,11 +955,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index e85937b36d..87fe22edd7 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1736,10 +1736,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index b1b76ad6fd..35bba84033 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -954,11 +954,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index fa27ff520a..b448d7bdb8 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -961,11 +961,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 33ff630126..a8a96f2bb4 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1751,10 +1751,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index 0cf8733f1e..303b714aa7 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -960,11 +960,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index ba3669f4b2..9da8e156e2 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -988,11 +988,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 43b6a68e24..a5b9edaeb6 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1775,10 +1775,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index a7d454b330..3029403bac 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -987,11 +987,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 08c27dbab8..259613d7fe 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -955,11 +955,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 8e974ebfde..d3ecad143c 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1723,10 +1723,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 71cb90d172..7f08dd995d 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -954,11 +954,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 2d346b5a15..1057fc58d3 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -960,11 +960,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 31a774af8a..fa4e9cfb8c 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1432,10 +1432,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 31a774af8a..fa4e9cfb8c 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1432,10 +1432,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 46b0e223c7..0c0f363d2b 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -959,11 +959,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 95d809d412..b1de96fadd 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1042,11 +1042,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 95c413a22f..c83819435d 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1527,10 +1527,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 4cd5d8e640..8f195f0e39 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1041,11 +1041,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 94def05942..5495883fe9 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1271,11 +1271,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 958b250336..87fc57da66 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1511,10 +1511,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 4480ff39cd..43703fefab 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1270,11 +1270,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 9f91f9ef93..2eab4e49b1 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1272,11 +1272,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index cf6ce11821..08b45ba90b 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1478,10 +1478,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 07034ee9a7..28b233d35d 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1271,11 +1271,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 020ad5bdba..16a3cdacb5 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1272,11 +1272,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index b0a25f5ea6..549e21c273 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1407,10 +1407,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index f6e47f704a..16e0d61c51 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1271,11 +1271,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index b501544f11..2b33304882 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1408,11 +1408,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 1704b3b265..f91fcdd4e5 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1512,10 +1512,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 3a1642af94..82fe2b3b1a 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1407,11 +1407,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 91eab35039..0c896766cb 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1408,11 +1408,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index e807b965f6..94c6914767 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1512,10 +1512,14 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='fxsr_opt'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index a876e7b98f..1f73e3903c 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1407,11 +1407,16 @@
<model usable='yes' vendor='unknown'>pentium2-v1</model>
<model usable='yes' vendor='unknown' canonical='pentium3-v1'>pentium3</model>
<model usable='yes' vendor='unknown'>pentium3-v1</model>
- <model usable='no' vendor='AMD'>phenom</model>
+ <model usable='no' vendor='AMD' canonical='phenom-v1'>phenom</model>
<blockers model='phenom'>
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
+ <model usable='no' vendor='AMD'>phenom-v1</model>
+ <blockers model='phenom-v1'>
+ <feature name='3dnow'/>
+ <feature name='3dnowext'/>
+ </blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
--
2.47.1

View File

@ -1,658 +0,0 @@
From e901d5338199da24fa6a96410b1369df2ce13d5a Mon Sep 17 00:00:00 2001
Message-ID: <e901d5338199da24fa6a96410b1369df2ce13d5a.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:34:21 +0100
Subject: [PATCH] cpu_map: Add qemu32-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit d9b23d77c0165a3a1cbea6b6bf953ae49547b60d)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_qemu32-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_qemu32-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index eb847341da..0fe2a513ca 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -26,6 +26,7 @@
<group name='Generic QEMU CPU models'>
<include filename='x86_qemu32.xml'/>
+ <include filename='x86_qemu32-v1.xml'/>
<include filename='x86_kvm32.xml'/>
<include filename='x86_cpu64-rhel5.xml'/>
<include filename='x86_cpu64-rhel6.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index b179fb442c..61c5e403f9 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -121,6 +121,7 @@ cpumap_data = [
'x86_pentium3.xml',
'x86_pentiumpro.xml',
'x86_phenom.xml',
+ 'x86_qemu32-v1.xml',
'x86_qemu32.xml',
'x86_qemu64.xml',
'x86_SandyBridge-IBRS.xml',
diff --git a/src/cpu_map/x86_qemu32-v1.xml b/src/cpu_map/x86_qemu32-v1.xml
new file mode 100644
index 0000000000..904c3c6461
--- /dev/null
+++ b/src/cpu_map/x86_qemu32-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='qemu32-v1'>
+ <decode host='on' guest='off'/>
+ <model name='qemu32'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index d4853706b3..90a947b72a 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -816,7 +816,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 03c88241c8..a1d2982897 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1430,7 +1430,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 75592e124e..1c6e65a408 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -815,7 +815,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index de38e87010..bafaee4dc5 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -838,7 +838,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 29aa3f9adc..bac7c98eea 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1520,7 +1520,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 6469251e47..fe78b42ab3 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -837,7 +837,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 3918fd5101..c4e6cfeb84 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -939,7 +939,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index 5d5b18cfdf..3390d156e5 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1717,7 +1717,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 98bcfec2bb..62d5a4bdad 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -938,7 +938,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index ed4a66a4ca..77fa39cf13 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -945,7 +945,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index a748c623bc..ee36631717 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1732,7 +1732,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index f9a0221e7b..fb66ff6032 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -944,7 +944,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 6b97ff8ba7..fbbe1f7ed4 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -972,7 +972,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 2e27e674f2..f5a84c16f7 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1756,7 +1756,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 99d8cf9558..d828319061 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -971,7 +971,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index e101305e83..968be6fc31 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -939,7 +939,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 24f90ed830..d0a03a641c 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1704,7 +1704,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 0f993e3763..a0492d152e 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -938,7 +938,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index bfea565a00..dfb06177ff 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -944,7 +944,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 91fc6133e4..90908a78e2 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1417,7 +1417,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 91fc6133e4..90908a78e2 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1417,7 +1417,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index 1e8f10d17f..f3c03fe68b 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -943,7 +943,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 8dfbc2b21a..27e43a875e 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1026,7 +1026,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 6982dc8035..8fc17e9d8a 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1512,7 +1512,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index a739ec6b73..ccaf3af991 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1025,7 +1025,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 4d6e8c8a7f..f77e36d1ea 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1255,7 +1255,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 0009fb007d..5e5cf92e53 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1498,7 +1498,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 74f9fe6dbe..3b53baae7a 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1254,7 +1254,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index d4d7a9e079..a4faf9112c 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1256,7 +1256,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index b948f32538..3e7ba22317 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1465,7 +1465,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index 3e22f5e9b3..a2fbea3b21 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1255,7 +1255,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 7a30c27b83..b945327d7a 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1256,7 +1256,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index ee71c658cb..1c00bbb899 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1395,7 +1395,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 8509032a62..c0d45ff56b 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1255,7 +1255,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index b43b607c39..7d5c0b114d 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1392,7 +1392,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index b79140038c..915970f0ca 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1500,7 +1500,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 509b5a6c33..3703b8b6f4 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1391,7 +1391,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 9114ece766..c76d4d112f 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1392,7 +1392,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index e2e40d7ca2..cf9ef74abe 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1500,7 +1500,8 @@
<blockers model='phenom'>
<feature name='fxsr_opt'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index 4a5a09c488..bb64a26754 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1391,7 +1391,8 @@
<feature name='3dnow'/>
<feature name='3dnowext'/>
</blockers>
- <model usable='yes' vendor='unknown'>qemu32</model>
+ <model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
+ <model usable='yes' vendor='unknown'>qemu32-v1</model>
<model usable='yes' vendor='unknown'>qemu64</model>
</mode>
</cpu>
--
2.47.1

View File

@ -1,658 +0,0 @@
From 420c80f7e9d9d6eed500ad45c53a9bf49a00d07e Mon Sep 17 00:00:00 2001
Message-ID: <420c80f7e9d9d6eed500ad45c53a9bf49a00d07e.1734433246.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 5 Dec 2024 15:36:14 +0100
Subject: [PATCH] cpu_map: Add qemu64-v1 CPU model
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 2c6a015a7f7bdeffc38d5a16c91283c16325bef0)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_qemu64-v1.xml | 6 ++++++
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 3 ++-
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 3 ++-
43 files changed, 88 insertions(+), 40 deletions(-)
create mode 100644 src/cpu_map/x86_qemu64-v1.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 81d77e4dba..8077da260d 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -32,6 +32,7 @@
<include filename='x86_cpu64-rhel5.xml'/>
<include filename='x86_cpu64-rhel6.xml'/>
<include filename='x86_qemu64.xml'/>
+ <include filename='x86_qemu64-v1.xml'/>
<include filename='x86_kvm64.xml'/>
</group>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index d73a1b4feb..799a72df47 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -124,6 +124,7 @@ cpumap_data = [
'x86_phenom.xml',
'x86_qemu32-v1.xml',
'x86_qemu32.xml',
+ 'x86_qemu64-v1.xml',
'x86_qemu64.xml',
'x86_SandyBridge-IBRS.xml',
'x86_SandyBridge-v1.xml',
diff --git a/src/cpu_map/x86_qemu64-v1.xml b/src/cpu_map/x86_qemu64-v1.xml
new file mode 100644
index 0000000000..1ed9da14a7
--- /dev/null
+++ b/src/cpu_map/x86_qemu64-v1.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='qemu64-v1'>
+ <decode host='on' guest='off'/>
+ <model name='qemu64'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index da05a9358f..e6c0863d54 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -819,7 +819,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 296f4bce12..7f68ca79c7 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -1433,7 +1433,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index dd5df8de0d..13aef737e2 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -818,7 +818,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 4330afb33a..734d1f3bb2 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -841,7 +841,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 873d4b7b1f..39f1aaf3f8 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -1523,7 +1523,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index f1f8362f52..3db605a87b 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -840,7 +840,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index 7e0ed073a2..c77b05c257 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -942,7 +942,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index b93e3ca9ac..67b5a9f3d8 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -1720,7 +1720,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 8c538a6568..daafd91079 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -941,7 +941,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index dc8fd0539b..6c15cae03d 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -948,7 +948,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index e075cc7dca..2480513c4b 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -1735,7 +1735,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index d0955a30f2..914f011071 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -947,7 +947,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 4f2d2a272d..f368716de9 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -975,7 +975,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index fcb175557c..c3dba8ccd7 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -1759,7 +1759,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index 07fa015c26..4592e03dc4 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -974,7 +974,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 7880718caf..39535a73ad 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -942,7 +942,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index e34444f915..0694b5426e 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -1707,7 +1707,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index dd045555db..c36ebcf7fd 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -941,7 +941,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index 34527a0fc0..3d15c7dca5 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -947,7 +947,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 14f0bc7f87..bfb94bc389 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -1420,7 +1420,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 14f0bc7f87..bfb94bc389 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -1420,7 +1420,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index de7e039b84..2c3bca4a76 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -946,7 +946,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index eeee7b926c..bf2c489691 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -1029,7 +1029,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index 882ef3ed4d..345f8177f2 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -1515,7 +1515,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index dee27a40c4..758ce18d38 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -1028,7 +1028,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 14f9d0a3a5..4a478b678f 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -1258,7 +1258,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index 1347de2c5b..e3dda5ff74 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -1501,7 +1501,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 6855f75ba4..aa94c97499 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -1257,7 +1257,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index 63bce83ba5..f3ad13ff40 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -1259,7 +1259,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 6b4db43077..4aa6ddca4f 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -1468,7 +1468,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index b9449120d3..8ad3499c67 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -1258,7 +1258,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
index 5b0f2f84be..b3325f4e36 100644
--- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml
@@ -1259,7 +1259,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
index 04049d17af..90a785ed55 100644
--- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml
@@ -1398,7 +1398,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
index 4ec2b2e96d..9bac49c553 100644
--- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml
@@ -1258,7 +1258,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
index 9e152d5b55..986c3936c0 100644
--- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml
@@ -1395,7 +1395,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
index 1c79f73ae2..9f4d2d8af8 100644
--- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml
@@ -1503,7 +1503,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
index 0af8a79cb4..e8b70c7e0f 100644
--- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml
@@ -1394,7 +1394,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
index 4cb0a22a9b..4ac90bad0d 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -1395,7 +1395,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
index 99858a0b91..94d866a5f0 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -1503,7 +1503,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
index cfedba3e8e..84303bee0b 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -1394,7 +1394,8 @@
</blockers>
<model usable='yes' vendor='unknown' canonical='qemu32-v1'>qemu32</model>
<model usable='yes' vendor='unknown'>qemu32-v1</model>
- <model usable='yes' vendor='unknown'>qemu64</model>
+ <model usable='yes' vendor='unknown' canonical='qemu64-v1'>qemu64</model>
+ <model usable='yes' vendor='unknown'>qemu64-v1</model>
</mode>
</cpu>
<memoryBacking supported='yes'>
--
2.47.1

View File

@ -0,0 +1,60 @@
From 46f4cfe513f0f893c862dca7f02ed7d7932b2115 Mon Sep 17 00:00:00 2001
Message-Id: <46f4cfe513f0f893c862dca7f02ed7d7932b2115@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Tue, 26 Apr 2022 12:50:41 +0200
Subject: [PATCH] cpu_map: Disable cpu64-rhel* for host-model and baseline
These ancient RHEL-only CPU models should not really be used by any CPU
definition created by libvirt. We keep them just for backwards
compatibility with domains which might still be using them.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit d2e4d66be35cd04da72e5f5129a8a4da6a931505)
https://bugzilla.redhat.com/show_bug.cgi?id=1851227
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/x86_cpu64-rhel5.xml | 2 +-
src/cpu_map/x86_cpu64-rhel6.xml | 2 +-
tests/cputestdata/x86_64-baseline-no-vendor-result.xml | 3 ++-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/cpu_map/x86_cpu64-rhel5.xml b/src/cpu_map/x86_cpu64-rhel5.xml
index be6bcdb7a6..7402b7603c 100644
--- a/src/cpu_map/x86_cpu64-rhel5.xml
+++ b/src/cpu_map/x86_cpu64-rhel5.xml
@@ -1,6 +1,6 @@
<cpus>
<model name='cpu64-rhel5'>
- <decode host='on' guest='on'/>
+ <decode host='off' guest='off'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
diff --git a/src/cpu_map/x86_cpu64-rhel6.xml b/src/cpu_map/x86_cpu64-rhel6.xml
index c62b1b5575..061939c733 100644
--- a/src/cpu_map/x86_cpu64-rhel6.xml
+++ b/src/cpu_map/x86_cpu64-rhel6.xml
@@ -1,6 +1,6 @@
<cpus>
<model name='cpu64-rhel6'>
- <decode host='on' guest='on'/>
+ <decode host='off' guest='off'/>
<feature name='apic'/>
<feature name='clflush'/>
<feature name='cmov'/>
diff --git a/tests/cputestdata/x86_64-baseline-no-vendor-result.xml b/tests/cputestdata/x86_64-baseline-no-vendor-result.xml
index 00e03b2152..4b4921cf93 100644
--- a/tests/cputestdata/x86_64-baseline-no-vendor-result.xml
+++ b/tests/cputestdata/x86_64-baseline-no-vendor-result.xml
@@ -1,3 +1,4 @@
<cpu mode='custom' match='exact'>
- <model fallback='allow'>cpu64-rhel6</model>
+ <model fallback='allow'>kvm64</model>
+ <feature policy='require' name='lahf_lm'/>
</cpu>
--
2.35.1

View File

@ -1,73 +0,0 @@
From 9c52c91dd1d901dc23105c475ea01631315b827e Mon Sep 17 00:00:00 2001
Message-ID: <9c52c91dd1d901dc23105c475ea01631315b827e.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 28 Nov 2024 13:24:49 +0100
Subject: [PATCH] cpu_map: Sort data files in meson.build
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 50c6d727b6f0cc00333a1bc26925ab5f26f8f781)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/meson.build | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 88d67f4cce..f659ef230e 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -4,8 +4,8 @@ cpumap_data = [
'arm_cortex-a57.xml',
'arm_cortex-a72.xml',
'arm_Falkor.xml',
- 'arm_FT-2000plus.xml',
'arm_features.xml',
+ 'arm_FT-2000plus.xml',
'arm_Kunpeng-920.xml',
'arm_Neoverse-N1.xml',
'arm_Neoverse-N2.xml',
@@ -14,11 +14,11 @@ cpumap_data = [
'arm_ThunderX299xx.xml',
'arm_vendors.xml',
'index.xml',
+ 'ppc64_POWER10.xml',
'ppc64_POWER6.xml',
'ppc64_POWER7.xml',
'ppc64_POWER8.xml',
'ppc64_POWER9.xml',
- 'ppc64_POWER10.xml',
'ppc64_POWERPC_e5500.xml',
'ppc64_POWERPC_e6500.xml',
'ppc64_vendors.xml',
@@ -54,13 +54,8 @@ cpumap_data = [
'x86_Dhyana-v1.xml',
'x86_Dhyana-v2.xml',
'x86_Dhyana.xml',
- 'x86_EPYC-IBPB.xml',
- 'x86_EPYC-v1.xml',
- 'x86_EPYC-v2.xml',
- 'x86_EPYC-v3.xml',
- 'x86_EPYC-v4.xml',
- 'x86_EPYC.xml',
'x86_EPYC-Genoa.xml',
+ 'x86_EPYC-IBPB.xml',
'x86_EPYC-Milan-v1.xml',
'x86_EPYC-Milan-v2.xml',
'x86_EPYC-Milan.xml',
@@ -69,6 +64,11 @@ cpumap_data = [
'x86_EPYC-Rome-v3.xml',
'x86_EPYC-Rome-v4.xml',
'x86_EPYC-Rome.xml',
+ 'x86_EPYC-v1.xml',
+ 'x86_EPYC-v2.xml',
+ 'x86_EPYC-v3.xml',
+ 'x86_EPYC-v4.xml',
+ 'x86_EPYC.xml',
'x86_features.xml',
'x86_GraniteRapids-v1.xml',
'x86_GraniteRapids.xml',
--
2.47.1

View File

@ -0,0 +1,75 @@
From 99a298a4a0575bf0072f504c4b8e4551400c44c0 Mon Sep 17 00:00:00 2001
Message-Id: <99a298a4a0575bf0072f504c4b8e4551400c44c0@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Tue, 26 Apr 2022 11:58:07 +0200
Subject: [PATCH] cpu_x86: Consolidate signature match in x86DecodeUseCandidate
Checking the signature in two different places makes no sense since the
code in between can only mark the candidate as the best option so far,
which is what the second signature match does as well.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 35ce086667e68e8f546cf36473591dd7c19c72eb)
https://bugzilla.redhat.com/show_bug.cgi?id=1851227
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu/cpu_x86.c | 31 ++++++++++++++-----------------
1 file changed, 14 insertions(+), 17 deletions(-)
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index 5cb9caef8a..f007487824 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -2020,15 +2020,22 @@ x86DecodeUseCandidate(virCPUx86Model *current,
}
/* Ideally we want to select a model with family/model equal to
- * family/model of the real CPU. Once we found such model, we only
+ * family/model of the real CPU and once we found such model, we only
* consider candidates with matching family/model.
*/
- if (signature &&
- virCPUx86SignaturesMatch(current->signatures, signature) &&
- !virCPUx86SignaturesMatch(candidate->signatures, signature)) {
- VIR_DEBUG("%s differs in signature from matching %s",
- cpuCandidate->model, cpuCurrent->model);
- return 0;
+ if (signature) {
+ if (virCPUx86SignaturesMatch(current->signatures, signature) &&
+ !virCPUx86SignaturesMatch(candidate->signatures, signature)) {
+ VIR_DEBUG("%s differs in signature from matching %s",
+ cpuCandidate->model, cpuCurrent->model);
+ return 0;
+ }
+
+ if (!virCPUx86SignaturesMatch(current->signatures, signature) &&
+ virCPUx86SignaturesMatch(candidate->signatures, signature)) {
+ VIR_DEBUG("%s provides matching signature", cpuCandidate->model);
+ return 1;
+ }
}
if (cpuCurrent->nfeatures > cpuCandidate->nfeatures) {
@@ -2037,16 +2044,6 @@ x86DecodeUseCandidate(virCPUx86Model *current,
return 1;
}
- /* Prefer a candidate with matching signature even though it would
- * result in longer list of features.
- */
- if (signature &&
- virCPUx86SignaturesMatch(candidate->signatures, signature) &&
- !virCPUx86SignaturesMatch(current->signatures, signature)) {
- VIR_DEBUG("%s provides matching signature", cpuCandidate->model);
- return 1;
- }
-
VIR_DEBUG("%s does not result in shorter feature list than %s",
cpuCandidate->model, cpuCurrent->model);
return 0;
--
2.35.1

View File

@ -0,0 +1,272 @@
From 752c74eeae67d41e7550991cb3bbe289984ec9d3 Mon Sep 17 00:00:00 2001
Message-Id: <752c74eeae67d41e7550991cb3bbe289984ec9d3@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Fri, 29 Apr 2022 10:35:02 +0200
Subject: [PATCH] cpu_x86: Ignore enabled features for input models in
x86DecodeUseCandidate
While we don't want to aim for the shortest list of disabled features in
the baseline result (it would select a very old model), we want to do so
while looking at any of the input models for which we're trying to
compute a baseline CPU model. Given a set of input models, we always
want to take the least capable one of them (i.e., the one with shortest
list of disabled features) or a better model which is not one of the
input models.
So when considering an input model, we just check whether its list of
disabled features is shorter than the currently best one. When looking
at other models we check both enabled and disabled features while
penalizing disabled features as implemented by the previous patch.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit bb6cedd2082599323257ee0df18c93a6e0551b0b)
https://bugzilla.redhat.com/show_bug.cgi?id=1851227
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu/cpu_x86.c | 66 ++++++++++++-------
...4-baseline-Westmere+Nehalem-migratable.xml | 8 ++-
...86_64-baseline-Westmere+Nehalem-result.xml | 8 ++-
...-cpuid-baseline-Cooperlake+Cascadelake.xml | 13 ++--
4 files changed, 64 insertions(+), 31 deletions(-)
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index ebcd96edb1..7b59dad8bf 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -1975,7 +1975,8 @@ virCPUx86Compare(virCPUDef *host,
static int
virCPUx86CompareCandidateFeatureList(virCPUDef *cpuCurrent,
- virCPUDef *cpuCandidate)
+ virCPUDef *cpuCandidate,
+ bool isPreferred)
{
size_t current = cpuCurrent->nfeatures;
size_t enabledCurrent = current;
@@ -2017,6 +2018,14 @@ virCPUx86CompareCandidateFeatureList(virCPUDef *cpuCurrent,
return 1;
}
+ if (isPreferred && disabled < disabledCurrent) {
+ VIR_DEBUG("%s is in the list of preferred models and provides fewer "
+ "disabled features than %s: %zu < %zu",
+ cpuCandidate->model, cpuCurrent->model,
+ disabled, disabledCurrent);
+ return 1;
+ }
+
VIR_DEBUG("%s is not better than %s: %zu (%zu, %zu) >= %zu (%zu, %zu)",
cpuCandidate->model, cpuCurrent->model,
candidate, enabled, disabled,
@@ -2039,8 +2048,10 @@ x86DecodeUseCandidate(virCPUx86Model *current,
virCPUx86Model *candidate,
virCPUDef *cpuCandidate,
uint32_t signature,
- const char *preferred)
+ const char **preferred)
{
+ bool isPreferred = false;
+
if (cpuCandidate->type == VIR_CPU_TYPE_HOST &&
!candidate->decodeHost) {
VIR_DEBUG("%s is not supposed to be used for host CPU definition",
@@ -2064,9 +2075,13 @@ x86DecodeUseCandidate(virCPUx86Model *current,
}
}
- if (preferred && STREQ(cpuCandidate->model, preferred)) {
- VIR_DEBUG("%s is the preferred model", cpuCandidate->model);
- return 2;
+ if (preferred) {
+ isPreferred = g_strv_contains(preferred, cpuCandidate->model);
+
+ if (isPreferred && !preferred[1]) {
+ VIR_DEBUG("%s is the preferred model", cpuCandidate->model);
+ return 2;
+ }
}
if (!cpuCurrent) {
@@ -2093,7 +2108,8 @@ x86DecodeUseCandidate(virCPUx86Model *current,
}
}
- return virCPUx86CompareCandidateFeatureList(cpuCurrent, cpuCandidate);
+ return virCPUx86CompareCandidateFeatureList(cpuCurrent, cpuCandidate,
+ isPreferred);
}
@@ -2136,7 +2152,7 @@ static int
x86Decode(virCPUDef *cpu,
const virCPUx86Data *cpuData,
virDomainCapsCPUModels *models,
- const char *preferred,
+ const char **preferred,
bool migratable)
{
virCPUx86Map *map;
@@ -2169,6 +2185,9 @@ x86Decode(virCPUDef *cpu,
x86DataFilterTSX(&data, vendor, map);
+ if (preferred && !preferred[0])
+ preferred = NULL;
+
/* Walk through the CPU models in reverse order to check newest
* models first.
*/
@@ -2176,16 +2195,18 @@ x86Decode(virCPUDef *cpu,
candidate = map->models[i];
if (models &&
!(hvModel = virDomainCapsCPUModelsGet(models, candidate->name))) {
- if (preferred && STREQ(candidate->name, preferred)) {
+ if (preferred &&
+ !preferred[1] &&
+ STREQ(candidate->name, preferred[0])) {
if (cpu->fallback != VIR_CPU_FALLBACK_ALLOW) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("CPU model %s is not supported by hypervisor"),
- preferred);
+ preferred[0]);
return -1;
} else {
VIR_WARN("Preferred CPU model %s not allowed by"
" hypervisor; closest supported model will be"
- " used", preferred);
+ " used", preferred[0]);
}
} else {
VIR_DEBUG("CPU model %s not allowed by hypervisor; ignoring",
@@ -2793,8 +2814,8 @@ virCPUx86Baseline(virCPUDef **cpus,
size_t i;
virCPUx86Vendor *vendor = NULL;
bool outputVendor = true;
- const char *modelName;
- bool matchingNames = true;
+ g_autofree char **modelNames = NULL;
+ size_t namesLen = 0;
g_autoptr(virCPUData) featData = NULL;
if (!(map = virCPUx86GetMap()))
@@ -2816,19 +2837,17 @@ virCPUx86Baseline(virCPUDef **cpus,
return NULL;
}
- modelName = cpus[0]->model;
+ modelNames = g_new0(char *, ncpus + 1);
+ if (cpus[0]->model)
+ modelNames[namesLen++] = cpus[0]->model;
+
for (i = 1; i < ncpus; i++) {
g_autoptr(virCPUx86Model) model = NULL;
const char *vn = NULL;
- if (matchingNames && cpus[i]->model) {
- if (!modelName) {
- modelName = cpus[i]->model;
- } else if (STRNEQ(modelName, cpus[i]->model)) {
- modelName = NULL;
- matchingNames = false;
- }
- }
+ if (cpus[i]->model &&
+ !g_strv_contains((const char **) modelNames, cpus[i]->model))
+ modelNames[namesLen++] = cpus[i]->model;
if (!(model = x86ModelFromCPU(cpus[i], map, -1)))
return NULL;
@@ -2891,10 +2910,11 @@ virCPUx86Baseline(virCPUDef **cpus,
virCPUx86DataAddItem(&base_model->data, &vendor->data) < 0)
return NULL;
- if (x86Decode(cpu, &base_model->data, models, modelName, migratable) < 0)
+ if (x86Decode(cpu, &base_model->data, models,
+ (const char **) modelNames, migratable) < 0)
return NULL;
- if (STREQ_NULLABLE(cpu->model, modelName))
+ if (namesLen == 1 && STREQ(cpu->model, modelNames[0]))
cpu->fallback = VIR_CPU_FALLBACK_FORBID;
if (!outputVendor)
diff --git a/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
index 775a27de2e..f5846b1619 100644
--- a/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
+++ b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
@@ -1,10 +1,14 @@
<cpu mode='custom' match='exact'>
- <model fallback='allow'>SandyBridge</model>
+ <model fallback='allow'>Westmere</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ss'/>
+ <feature policy='require' name='pclmuldq'/>
<feature policy='require' name='pcid'/>
+ <feature policy='require' name='x2apic'/>
+ <feature policy='require' name='tsc-deadline'/>
+ <feature policy='require' name='xsave'/>
<feature policy='require' name='osxsave'/>
+ <feature policy='require' name='avx'/>
<feature policy='require' name='hypervisor'/>
- <feature policy='disable' name='rdtscp'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
index cafca97d62..166833276c 100644
--- a/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
+++ b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
@@ -1,11 +1,15 @@
<cpu mode='custom' match='exact'>
- <model fallback='allow'>SandyBridge</model>
+ <model fallback='allow'>Westmere</model>
<vendor>Intel</vendor>
<feature policy='require' name='vme'/>
<feature policy='require' name='ss'/>
+ <feature policy='require' name='pclmuldq'/>
<feature policy='require' name='pcid'/>
+ <feature policy='require' name='x2apic'/>
+ <feature policy='require' name='tsc-deadline'/>
+ <feature policy='require' name='xsave'/>
<feature policy='require' name='osxsave'/>
+ <feature policy='require' name='avx'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='invtsc'/>
- <feature policy='disable' name='rdtscp'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
index 46c32c996f..ecac749b97 100644
--- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
@@ -1,17 +1,22 @@
<cpu mode='custom' match='exact'>
- <model fallback='allow'>Cooperlake</model>
+ <model fallback='allow'>Cascadelake-Server</model>
<vendor>Intel</vendor>
<feature policy='require' name='ss'/>
<feature policy='require' name='vmx'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='tsc_adjust'/>
- <feature policy='require' name='mpx'/>
<feature policy='require' name='umip'/>
+ <feature policy='require' name='pku'/>
<feature policy='require' name='md-clear'/>
+ <feature policy='require' name='stibp'/>
+ <feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='xsaves'/>
<feature policy='require' name='ibpb'/>
<feature policy='require' name='amd-ssbd'/>
+ <feature policy='require' name='rdctl-no'/>
+ <feature policy='require' name='ibrs-all'/>
+ <feature policy='require' name='skip-l1dfl-vmentry'/>
+ <feature policy='require' name='mds-no'/>
+ <feature policy='require' name='pschange-mc-no'/>
<feature policy='require' name='tsx-ctrl'/>
- <feature policy='disable' name='avx512-bf16'/>
- <feature policy='disable' name='taa-no'/>
</cpu>
--
2.35.1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,73 @@
From 3d7a4041d31e403dc9e762b34f7faf36f7f20a28 Mon Sep 17 00:00:00 2001
Message-Id: <3d7a4041d31e403dc9e762b34f7faf36f7f20a28@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Tue, 26 Apr 2022 15:02:51 +0200
Subject: [PATCH] cpu_x86: Refactor feature list comparison in
x86DecodeUseCandidate
It will become more complicated and so it deserves to be separated into
a new function.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 1d6ca40ac23c039abc4392b668f256d0eda33280)
https://bugzilla.redhat.com/show_bug.cgi?id=1851227
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu/cpu_x86.c | 31 ++++++++++++++++++++++---------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index f007487824..81c2441b8b 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -1970,6 +1970,27 @@ virCPUx86Compare(virCPUDef *host,
}
+static int
+virCPUx86CompareCandidateFeatureList(virCPUDef *cpuCurrent,
+ virCPUDef *cpuCandidate)
+{
+ size_t current = cpuCurrent->nfeatures;
+ size_t candidate = cpuCandidate->nfeatures;
+
+ if (candidate < current) {
+ VIR_DEBUG("%s is better than %s: %zu < %zu",
+ cpuCandidate->model, cpuCurrent->model,
+ candidate, current);
+ return 1;
+ }
+
+ VIR_DEBUG("%s is not better than %s: %zu >= %zu",
+ cpuCandidate->model, cpuCurrent->model,
+ candidate, current);
+ return 0;
+}
+
+
/*
* Checks whether a candidate model is a better fit for the CPU data than the
* current model.
@@ -2038,15 +2059,7 @@ x86DecodeUseCandidate(virCPUx86Model *current,
}
}
- if (cpuCurrent->nfeatures > cpuCandidate->nfeatures) {
- VIR_DEBUG("%s results in shorter feature list than %s",
- cpuCandidate->model, cpuCurrent->model);
- return 1;
- }
-
- VIR_DEBUG("%s does not result in shorter feature list than %s",
- cpuCandidate->model, cpuCurrent->model);
- return 0;
+ return virCPUx86CompareCandidateFeatureList(cpuCurrent, cpuCandidate);
}
--
2.35.1

View File

@ -0,0 +1,498 @@
From b37a398da4323407de24d19afac937eac80170cc Mon Sep 17 00:00:00 2001
Message-Id: <b37a398da4323407de24d19afac937eac80170cc@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 21 Apr 2022 18:25:15 +0200
Subject: [PATCH] cputest: Add some real world baseline tests
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 63d633b9a4fc42da7e2acaf45501914607d968a5)
https://bugzilla.redhat.com/show_bug.cgi?id=1851227
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
tests/cputest.c | 118 +++++++++++++++---
...id-baseline-Broadwell-IBRS+Cascadelake.xml | 11 ++
..._64-cpuid-baseline-Cascadelake+Icelake.xml | 14 +++
...puid-baseline-Cascadelake+Skylake-IBRS.xml | 12 ++
..._64-cpuid-baseline-Cascadelake+Skylake.xml | 8 ++
...-cpuid-baseline-Cooperlake+Cascadelake.xml | 17 +++
...6_64-cpuid-baseline-Cooperlake+Icelake.xml | 14 +++
.../x86_64-cpuid-baseline-EPYC+Rome.xml | 13 ++
.../x86_64-cpuid-baseline-Haswell+Skylake.xml | 14 +++
...-baseline-Haswell-noTSX-IBRS+Broadwell.xml | 14 +++
...seline-Haswell-noTSX-IBRS+Skylake-IBRS.xml | 14 +++
...id-baseline-Haswell-noTSX-IBRS+Skylake.xml | 14 +++
.../x86_64-cpuid-baseline-Ryzen+Rome.xml | 13 ++
...4-cpuid-baseline-Skylake-Client+Server.xml | 9 ++
14 files changed, 271 insertions(+), 14 deletions(-)
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Broadwell-IBRS+Cascadelake.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-EPYC+Rome.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Haswell+Skylake.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Broadwell.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake-IBRS.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Ryzen+Rome.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
diff --git a/tests/cputest.c b/tests/cputest.c
index b939e20718..b39ec7e18b 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -58,6 +58,8 @@ struct data {
const char *name;
virDomainCapsCPUModels *models;
const char *modelsName;
+ const char **cpus;
+ int ncpus;
unsigned int flags;
int result;
};
@@ -561,6 +563,60 @@ cpuTestCPUID(bool guest, const void *arg)
}
+static int
+cpuTestCPUIDBaseline(const void *arg)
+{
+ const struct data *data = arg;
+ int ret = -1;
+ virCPUDef **cpus = NULL;
+ virCPUDef *baseline = NULL;
+ g_autofree char *result = NULL;
+ size_t i;
+
+ cpus = g_new0(virCPUDef *, data->ncpus);
+ for (i = 0; i < data->ncpus; i++) {
+ g_autofree char *name = NULL;
+
+ name = g_strdup_printf("cpuid-%s-json", data->cpus[i]);
+ if (!(cpus[i] = cpuTestLoadXML(data->arch, name)))
+ goto cleanup;
+ }
+
+ baseline = virCPUBaseline(data->arch, cpus, data->ncpus, NULL, NULL, false);
+ if (!baseline)
+ goto cleanup;
+
+ result = g_strdup_printf("cpuid-baseline-%s", data->name);
+
+ if (cpuTestCompareXML(data->arch, baseline, result) < 0)
+ goto cleanup;
+
+ for (i = 0; i < data->ncpus; i++) {
+ virCPUCompareResult cmp;
+
+ cmp = virCPUCompare(data->arch, cpus[i], baseline, false);
+ if (cmp != VIR_CPU_COMPARE_SUPERSET &&
+ cmp != VIR_CPU_COMPARE_IDENTICAL) {
+ VIR_TEST_VERBOSE("\nbaseline CPU is incompatible with CPU %zu", i);
+ VIR_TEST_VERBOSE("%74s", "... ");
+ ret = -1;
+ goto cleanup;
+ }
+ }
+
+ ret = 0;
+
+ cleanup:
+ if (cpus) {
+ for (i = 0; i < data->ncpus; i++)
+ virCPUDefFree(cpus[i]);
+ VIR_FREE(cpus);
+ }
+ virCPUDefFree(baseline);
+ return ret;
+}
+
+
static int
cpuTestHostCPUID(const void *arg)
{
@@ -888,13 +944,13 @@ mymain(void)
goto cleanup;
}
-#define DO_TEST(arch, api, name, host, cpu, \
+#define DO_TEST(arch, api, name, host, cpu, cpus, ncpus, \
models, flags, result) \
do { \
struct data data = { \
arch, host, cpu, models, \
models == NULL ? NULL : #models, \
- flags, result \
+ cpus, ncpus, flags, result \
}; \
g_autofree char *testLabel = NULL; \
\
@@ -907,12 +963,12 @@ mymain(void)
#define DO_TEST_COMPARE(arch, host, cpu, result) \
DO_TEST(arch, cpuTestCompare, \
host "/" cpu " (" #result ")", \
- host, cpu, NULL, 0, result)
+ host, cpu, NULL, 0, NULL, 0, result)
#define DO_TEST_UPDATE_ONLY(arch, host, cpu) \
DO_TEST(arch, cpuTestUpdate, \
cpu " on " host, \
- host, cpu, NULL, 0, 0)
+ host, cpu, NULL, 0, NULL, 0, 0)
#define DO_TEST_UPDATE(arch, host, cpu, result) \
do { \
@@ -930,31 +986,31 @@ mymain(void)
suffix = " (migratable)"; \
label = g_strdup_printf("%s%s", name, suffix); \
DO_TEST(arch, cpuTestBaseline, label, NULL, \
- "baseline-" name, NULL, flags, result); \
+ "baseline-" name, NULL, 0, NULL, flags, result); \
} while (0)
#define DO_TEST_HASFEATURE(arch, host, feature, result) \
DO_TEST(arch, cpuTestHasFeature, \
host "/" feature " (" #result ")", \
- host, feature, NULL, 0, result)
+ host, feature, NULL, 0, NULL, 0, result)
#define DO_TEST_GUESTCPU(arch, host, cpu, models, result) \
DO_TEST(arch, cpuTestGuestCPU, \
host "/" cpu " (" #models ")", \
- host, cpu, models, 0, result)
+ host, cpu, NULL, 0, models, 0, result)
#if WITH_QEMU
# define DO_TEST_JSON(arch, host, json) \
do { \
if (json == JSON_MODELS) { \
DO_TEST(arch, cpuTestGuestCPUID, host, host, \
- NULL, NULL, 0, 0); \
+ NULL, NULL, 0, NULL, 0, 0); \
} \
if (json != JSON_NONE) { \
DO_TEST(arch, cpuTestJSONCPUID, host, host, \
- NULL, NULL, json, 0); \
+ NULL, NULL, 0, NULL, json, 0); \
DO_TEST(arch, cpuTestJSONSignature, host, host, \
- NULL, NULL, 0, 0); \
+ NULL, NULL, 0, NULL, 0, 0); \
} \
} while (0)
#else
@@ -964,18 +1020,26 @@ mymain(void)
#define DO_TEST_CPUID(arch, host, json) \
do { \
DO_TEST(arch, cpuTestHostCPUID, host, host, \
- NULL, NULL, 0, 0); \
+ NULL, NULL, 0, NULL, 0, 0); \
DO_TEST(arch, cpuTestGuestCPUID, host, host, \
- NULL, NULL, json, 0); \
+ NULL, NULL, 0, NULL, json, 0); \
DO_TEST(arch, cpuTestCPUIDSignature, host, host, \
- NULL, NULL, 0, 0); \
+ NULL, NULL, 0, NULL, 0, 0); \
DO_TEST_JSON(arch, host, json); \
if (json != JSON_NONE) { \
DO_TEST(arch, cpuTestUpdateLive, host, host, \
- NULL, NULL, json, 0); \
+ NULL, NULL, 0, NULL, json, 0); \
} \
} while (0)
+#define DO_TEST_CPUID_BASELINE(arch, label, cpu1, cpu2) \
+ do { \
+ const char *cpus[] = {cpu1, cpu2}; \
+ DO_TEST(arch, cpuTestCPUIDBaseline, \
+ label " (" cpu1 ", " cpu2 ")", \
+ NULL, label, cpus, 2, NULL, 0, 0); \
+ } while (0)
+
/* host to host comparison */
DO_TEST_COMPARE(VIR_ARCH_X86_64, "host", "host", VIR_CPU_COMPARE_IDENTICAL);
DO_TEST_COMPARE(VIR_ARCH_X86_64, "host", "host-better", VIR_CPU_COMPARE_INCOMPATIBLE);
@@ -1157,6 +1221,32 @@ mymain(void)
DO_TEST_CPUID(VIR_ARCH_X86_64, "Ice-Lake-Server", JSON_MODELS);
DO_TEST_CPUID(VIR_ARCH_X86_64, "Cooperlake", JSON_MODELS);
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Ryzen+Rome",
+ "Ryzen-7-1800X-Eight-Core", "Ryzen-9-3900X-12-Core");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "EPYC+Rome",
+ "EPYC-7601-32-Core", "EPYC-7502-32-Core");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Haswell-noTSX-IBRS+Skylake",
+ "Xeon-E5-2609-v3", "Xeon-Gold-6148");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Haswell-noTSX-IBRS+Skylake-IBRS",
+ "Xeon-E5-2609-v3", "Xeon-Gold-6130");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Broadwell-IBRS+Cascadelake",
+ "Xeon-E5-2623-v4", "Xeon-Platinum-8268");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cascadelake+Skylake-IBRS",
+ "Xeon-Platinum-8268", "Xeon-Gold-6130");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cascadelake+Skylake",
+ "Xeon-Platinum-9242", "Xeon-Gold-6148");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cascadelake+Icelake",
+ "Xeon-Platinum-9242", "Ice-Lake-Server");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cooperlake+Icelake",
+ "Cooperlake", "Ice-Lake-Server");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cooperlake+Cascadelake",
+ "Cooperlake", "Xeon-Platinum-9242");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Skylake-Client+Server",
+ "Core-i5-6600", "Xeon-Gold-6148");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Haswell-noTSX-IBRS+Broadwell",
+ "Xeon-E5-2609-v3", "Xeon-E5-2650-v4");
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Haswell+Skylake",
+ "Xeon-E7-8890-v3", "Xeon-Gold-5115");
cleanup:
#if WITH_QEMU
qemuTestDriverFree(&driver);
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Broadwell-IBRS+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Broadwell-IBRS+Cascadelake.xml
new file mode 100644
index 0000000000..4e3f253e9b
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Broadwell-IBRS+Cascadelake.xml
@@ -0,0 +1,11 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Skylake-Client-IBRS</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='pdpe1gb'/>
+ <feature policy='disable' name='mpx'/>
+ <feature policy='disable' name='xsavec'/>
+ <feature policy='disable' name='xgetbv1'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
new file mode 100644
index 0000000000..e372a3e446
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
@@ -0,0 +1,14 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Cooperlake</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='mpx'/>
+ <feature policy='require' name='umip'/>
+ <feature policy='require' name='xsaves'/>
+ <feature policy='disable' name='avx512-bf16'/>
+ <feature policy='disable' name='mds-no'/>
+ <feature policy='disable' name='pschange-mc-no'/>
+ <feature policy='disable' name='taa-no'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
new file mode 100644
index 0000000000..e559e01583
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
@@ -0,0 +1,12 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Cascadelake-Server</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='umip'/>
+ <feature policy='require' name='pku'/>
+ <feature policy='require' name='xsaves'/>
+ <feature policy='require' name='skip-l1dfl-vmentry'/>
+ <feature policy='disable' name='avx512vnni'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
new file mode 100644
index 0000000000..906259df0b
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
@@ -0,0 +1,8 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Skylake-Server</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='clflushopt'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
new file mode 100644
index 0000000000..46c32c996f
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
@@ -0,0 +1,17 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Cooperlake</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='vmx'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='mpx'/>
+ <feature policy='require' name='umip'/>
+ <feature policy='require' name='md-clear'/>
+ <feature policy='require' name='xsaves'/>
+ <feature policy='require' name='ibpb'/>
+ <feature policy='require' name='amd-ssbd'/>
+ <feature policy='require' name='tsx-ctrl'/>
+ <feature policy='disable' name='avx512-bf16'/>
+ <feature policy='disable' name='taa-no'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
new file mode 100644
index 0000000000..e372a3e446
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
@@ -0,0 +1,14 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Cooperlake</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='mpx'/>
+ <feature policy='require' name='umip'/>
+ <feature policy='require' name='xsaves'/>
+ <feature policy='disable' name='avx512-bf16'/>
+ <feature policy='disable' name='mds-no'/>
+ <feature policy='disable' name='pschange-mc-no'/>
+ <feature policy='disable' name='taa-no'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-EPYC+Rome.xml b/tests/cputestdata/x86_64-cpuid-baseline-EPYC+Rome.xml
new file mode 100644
index 0000000000..e1984b2890
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-EPYC+Rome.xml
@@ -0,0 +1,13 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>EPYC</model>
+ <vendor>AMD</vendor>
+ <feature policy='require' name='x2apic'/>
+ <feature policy='require' name='tsc-deadline'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='cmp_legacy'/>
+ <feature policy='require' name='npt'/>
+ <feature policy='require' name='nrip-save'/>
+ <feature policy='disable' name='svm'/>
+ <feature policy='disable' name='monitor'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Haswell+Skylake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Haswell+Skylake.xml
new file mode 100644
index 0000000000..e687a679b3
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Haswell+Skylake.xml
@@ -0,0 +1,14 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Haswell</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='vme'/>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='f16c'/>
+ <feature policy='require' name='rdrand'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='arat'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='xsaveopt'/>
+ <feature policy='require' name='pdpe1gb'/>
+ <feature policy='require' name='abm'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Broadwell.xml b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Broadwell.xml
new file mode 100644
index 0000000000..651457b17a
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Broadwell.xml
@@ -0,0 +1,14 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Haswell-noTSX</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='vme'/>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='f16c'/>
+ <feature policy='require' name='rdrand'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='arat'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='xsaveopt'/>
+ <feature policy='require' name='pdpe1gb'/>
+ <feature policy='require' name='abm'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake-IBRS.xml b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake-IBRS.xml
new file mode 100644
index 0000000000..8bda1c02e2
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake-IBRS.xml
@@ -0,0 +1,14 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Haswell-noTSX-IBRS</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='vme'/>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='f16c'/>
+ <feature policy='require' name='rdrand'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='arat'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='xsaveopt'/>
+ <feature policy='require' name='pdpe1gb'/>
+ <feature policy='require' name='abm'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake.xml
new file mode 100644
index 0000000000..651457b17a
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake.xml
@@ -0,0 +1,14 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Haswell-noTSX</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='vme'/>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='f16c'/>
+ <feature policy='require' name='rdrand'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='arat'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='xsaveopt'/>
+ <feature policy='require' name='pdpe1gb'/>
+ <feature policy='require' name='abm'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Ryzen+Rome.xml b/tests/cputestdata/x86_64-cpuid-baseline-Ryzen+Rome.xml
new file mode 100644
index 0000000000..051402b9d5
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Ryzen+Rome.xml
@@ -0,0 +1,13 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>EPYC</model>
+ <vendor>AMD</vendor>
+ <feature policy='require' name='x2apic'/>
+ <feature policy='require' name='tsc-deadline'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='cmp_legacy'/>
+ <feature policy='require' name='npt'/>
+ <feature policy='require' name='nrip-save'/>
+ <feature policy='disable' name='sha-ni'/>
+ <feature policy='disable' name='monitor'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml b/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
new file mode 100644
index 0000000000..d46ff26eeb
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
@@ -0,0 +1,9 @@
+<cpu mode='custom' match='exact'>
+ <model fallback='allow'>Skylake-Client</model>
+ <vendor>Intel</vendor>
+ <feature policy='require' name='ss'/>
+ <feature policy='require' name='hypervisor'/>
+ <feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='clflushopt'/>
+ <feature policy='require' name='pdpe1gb'/>
+</cpu>
--
2.35.1

View File

@ -0,0 +1,334 @@
From 50d94f13286ca19ef1f457be72debdbf77547df6 Mon Sep 17 00:00:00 2001
Message-Id: <50d94f13286ca19ef1f457be72debdbf77547df6@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 4 May 2022 16:21:38 +0200
Subject: [PATCH] cputest: Drop some old artificial baseline tests
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 6aff36019bbaf643f451779621c6c88cab0e64a7)
https://bugzilla.redhat.com/show_bug.cgi?id=1851227
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
tests/cputest.c | 6 ---
.../cputestdata/x86_64-baseline-1-result.xml | 5 --
tests/cputestdata/x86_64-baseline-1.xml | 20 --------
.../cputestdata/x86_64-baseline-2-result.xml | 4 --
tests/cputestdata/x86_64-baseline-2.xml | 22 ---------
.../x86_64-baseline-5-expanded.xml | 47 -------------------
.../cputestdata/x86_64-baseline-5-result.xml | 10 ----
tests/cputestdata/x86_64-baseline-5.xml | 35 --------------
.../cputestdata/x86_64-baseline-7-result.xml | 4 --
tests/cputestdata/x86_64-baseline-7.xml | 24 ----------
.../cputestdata/x86_64-baseline-8-result.xml | 4 --
tests/cputestdata/x86_64-baseline-8.xml | 28 -----------
12 files changed, 209 deletions(-)
delete mode 100644 tests/cputestdata/x86_64-baseline-1-result.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-1.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-2-result.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-2.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-5-expanded.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-5-result.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-5.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-7-result.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-7.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-8-result.xml
delete mode 100644 tests/cputestdata/x86_64-baseline-8.xml
diff --git a/tests/cputest.c b/tests/cputest.c
index 0f0621292a..20d56836be 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -1051,18 +1051,12 @@ mymain(void)
DO_TEST_BASELINE(VIR_ARCH_X86_64, "incompatible-vendors", 0, -1);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "no-vendor", 0, 0);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "some-vendors", 0, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "1", 0, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "2", 0, 0);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "3", 0, 0);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "3", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "4", 0, 0);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "4", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "5", 0, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "5", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "6", 0, 0);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "6", VIR_CONNECT_BASELINE_CPU_MIGRATABLE, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "7", 0, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "8", 0, 0);
DO_TEST_BASELINE(VIR_ARCH_PPC64, "incompatible-vendors", 0, -1);
DO_TEST_BASELINE(VIR_ARCH_PPC64, "no-vendor", 0, 0);
diff --git a/tests/cputestdata/x86_64-baseline-1-result.xml b/tests/cputestdata/x86_64-baseline-1-result.xml
deleted file mode 100644
index 96c4f43b3d..0000000000
--- a/tests/cputestdata/x86_64-baseline-1-result.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<cpu mode='custom' match='exact'>
- <model fallback='allow'>Conroe</model>
- <vendor>Intel</vendor>
- <feature policy='disable' name='lahf_lm'/>
-</cpu>
diff --git a/tests/cputestdata/x86_64-baseline-1.xml b/tests/cputestdata/x86_64-baseline-1.xml
deleted file mode 100644
index 509e6a85d2..0000000000
--- a/tests/cputestdata/x86_64-baseline-1.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<cpuTest>
-<cpu>
- <arch>x86_64</arch>
- <model>Penryn</model>
- <vendor>Intel</vendor>
- <topology sockets='2' cores='4' threads='1'/>
-</cpu>
-<cpu>
- <arch>x86_64</arch>
- <model>Conroe</model>
- <vendor>Intel</vendor>
- <topology sockets='1' cores='1' threads='1'/>
-</cpu>
-<cpu>
- <arch>x86_64</arch>
- <model>core2duo</model>
- <vendor>Intel</vendor>
- <topology sockets='1' cores='1' threads='1'/>
-</cpu>
-</cpuTest>
diff --git a/tests/cputestdata/x86_64-baseline-2-result.xml b/tests/cputestdata/x86_64-baseline-2-result.xml
deleted file mode 100644
index a11352d0b1..0000000000
--- a/tests/cputestdata/x86_64-baseline-2-result.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<cpu mode='custom' match='exact'>
- <model fallback='allow'>core2duo</model>
- <feature policy='disable' name='nx'/>
-</cpu>
diff --git a/tests/cputestdata/x86_64-baseline-2.xml b/tests/cputestdata/x86_64-baseline-2.xml
deleted file mode 100644
index 055223fd34..0000000000
--- a/tests/cputestdata/x86_64-baseline-2.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<cpuTest>
-<cpu>
- <arch>x86_64</arch>
- <model>core2duo</model>
- <topology sockets='1' cores='2' threads='1'/>
-</cpu>
-<cpu>
- <arch>x86_64</arch>
- <model>pentiumpro</model>
- <topology sockets='1' cores='2' threads='1'/>
- <feature name='mtrr'/>
- <feature name='clflush'/>
- <feature name='mca'/>
- <feature name='vme'/>
- <feature name='pse36'/>
- <feature name='pni'/>
- <feature name='monitor'/>
- <feature name='ssse3'/>
- <feature name='lm'/>
- <feature name='syscall'/>
-</cpu>
-</cpuTest>
diff --git a/tests/cputestdata/x86_64-baseline-5-expanded.xml b/tests/cputestdata/x86_64-baseline-5-expanded.xml
deleted file mode 100644
index 2c1b400150..0000000000
--- a/tests/cputestdata/x86_64-baseline-5-expanded.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<cpu mode='custom' match='exact'>
- <model fallback='allow'>SandyBridge</model>
- <vendor>Intel</vendor>
- <feature policy='require' name='aes'/>
- <feature policy='require' name='apic'/>
- <feature policy='require' name='avx'/>
- <feature policy='require' name='clflush'/>
- <feature policy='require' name='cmov'/>
- <feature policy='require' name='cx16'/>
- <feature policy='require' name='cx8'/>
- <feature policy='require' name='de'/>
- <feature policy='require' name='fpu'/>
- <feature policy='require' name='fxsr'/>
- <feature policy='require' name='hypervisor'/>
- <feature policy='require' name='lahf_lm'/>
- <feature policy='require' name='lm'/>
- <feature policy='require' name='mca'/>
- <feature policy='require' name='mce'/>
- <feature policy='require' name='mmx'/>
- <feature policy='require' name='msr'/>
- <feature policy='require' name='mtrr'/>
- <feature policy='require' name='nx'/>
- <feature policy='require' name='osxsave'/>
- <feature policy='require' name='pae'/>
- <feature policy='require' name='pat'/>
- <feature policy='require' name='pcid'/>
- <feature policy='require' name='pclmuldq'/>
- <feature policy='require' name='pge'/>
- <feature policy='require' name='pni'/>
- <feature policy='require' name='popcnt'/>
- <feature policy='require' name='pse'/>
- <feature policy='require' name='pse36'/>
- <feature policy='disable' name='rdtscp'/>
- <feature policy='require' name='sep'/>
- <feature policy='require' name='ss'/>
- <feature policy='require' name='sse'/>
- <feature policy='require' name='sse2'/>
- <feature policy='require' name='sse4.1'/>
- <feature policy='require' name='sse4.2'/>
- <feature policy='require' name='ssse3'/>
- <feature policy='require' name='syscall'/>
- <feature policy='require' name='tsc'/>
- <feature policy='require' name='tsc-deadline'/>
- <feature policy='require' name='vme'/>
- <feature policy='require' name='x2apic'/>
- <feature policy='require' name='xsave'/>
-</cpu>
diff --git a/tests/cputestdata/x86_64-baseline-5-result.xml b/tests/cputestdata/x86_64-baseline-5-result.xml
deleted file mode 100644
index 775a27de2e..0000000000
--- a/tests/cputestdata/x86_64-baseline-5-result.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<cpu mode='custom' match='exact'>
- <model fallback='allow'>SandyBridge</model>
- <vendor>Intel</vendor>
- <feature policy='require' name='vme'/>
- <feature policy='require' name='ss'/>
- <feature policy='require' name='pcid'/>
- <feature policy='require' name='osxsave'/>
- <feature policy='require' name='hypervisor'/>
- <feature policy='disable' name='rdtscp'/>
-</cpu>
diff --git a/tests/cputestdata/x86_64-baseline-5.xml b/tests/cputestdata/x86_64-baseline-5.xml
deleted file mode 100644
index 80cd533ca4..0000000000
--- a/tests/cputestdata/x86_64-baseline-5.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<cpuTest>
-<cpu>
- <arch>x86_64</arch>
- <model>Westmere</model>
- <vendor>Intel</vendor>
- <topology sockets='4' cores='1' threads='1'/>
- <feature name='hypervisor'/>
- <feature name='avx'/>
- <feature name='osxsave'/>
- <feature name='xsave'/>
- <feature name='tsc-deadline'/>
- <feature name='x2apic'/>
- <feature name='pcid'/>
- <feature name='pclmuldq'/>
- <feature name='ss'/>
- <feature name='vme'/>
-</cpu>
-<cpu>
- <arch>x86_64</arch>
- <model>Nehalem</model>
- <vendor>Intel</vendor>
- <topology sockets='4' cores='1' threads='1'/>
- <feature name='aes'/>
- <feature name='hypervisor'/>
- <feature name='avx'/>
- <feature name='osxsave'/>
- <feature name='xsave'/>
- <feature name='tsc-deadline'/>
- <feature name='x2apic'/>
- <feature name='pcid'/>
- <feature name='pclmuldq'/>
- <feature name='ss'/>
- <feature name='vme'/>
-</cpu>
-</cpuTest>
diff --git a/tests/cputestdata/x86_64-baseline-7-result.xml b/tests/cputestdata/x86_64-baseline-7-result.xml
deleted file mode 100644
index 2af549e77a..0000000000
--- a/tests/cputestdata/x86_64-baseline-7-result.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<cpu mode='custom' match='exact'>
- <model fallback='allow'>Haswell-noTSX</model>
- <vendor>Intel</vendor>
-</cpu>
diff --git a/tests/cputestdata/x86_64-baseline-7.xml b/tests/cputestdata/x86_64-baseline-7.xml
deleted file mode 100644
index b7e61b160c..0000000000
--- a/tests/cputestdata/x86_64-baseline-7.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<cpuTest>
- <cpu>
- <arch>x86_64</arch>
- <model>SandyBridge</model>
- <vendor>Intel</vendor>
- <topology sockets='1' cores='2' threads='2'/>
- <feature name='invpcid'/>
- <feature name='erms'/>
- <feature name='bmi2'/>
- <feature name='smep'/>
- <feature name='avx2'/>
- <feature name='bmi1'/>
- <feature name='fsgsbase'/>
- <feature name='movbe'/>
- <feature name='pcid'/>
- <feature name='fma'/>
- </cpu>
- <cpu>
- <arch>x86_64</arch>
- <model>Haswell-noTSX</model>
- <vendor>Intel</vendor>
- <topology sockets='1' cores='2' threads='2'/>
- </cpu>
-</cpuTest>
diff --git a/tests/cputestdata/x86_64-baseline-8-result.xml b/tests/cputestdata/x86_64-baseline-8-result.xml
deleted file mode 100644
index 88226b3dab..0000000000
--- a/tests/cputestdata/x86_64-baseline-8-result.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<cpu mode='custom' match='exact'>
- <model fallback='allow'>Broadwell-noTSX</model>
- <vendor>Intel</vendor>
-</cpu>
diff --git a/tests/cputestdata/x86_64-baseline-8.xml b/tests/cputestdata/x86_64-baseline-8.xml
deleted file mode 100644
index f1ee67d542..0000000000
--- a/tests/cputestdata/x86_64-baseline-8.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<cpuTest>
- <cpu>
- <arch>x86_64</arch>
- <model>SandyBridge</model>
- <vendor>Intel</vendor>
- <topology sockets='1' cores='2' threads='2'/>
- <feature name='invpcid'/>
- <feature name='erms'/>
- <feature name='bmi2'/>
- <feature name='smep'/>
- <feature name='avx2'/>
- <feature name='bmi1'/>
- <feature name='fsgsbase'/>
- <feature name='movbe'/>
- <feature name='pcid'/>
- <feature name='fma'/>
- <feature name='3dnowprefetch'/>
- <feature name='rdseed'/>
- <feature name='adx'/>
- <feature name='smap'/>
- </cpu>
- <cpu>
- <arch>x86_64</arch>
- <model>Broadwell-noTSX</model>
- <vendor>Intel</vendor>
- <topology sockets='1' cores='2' threads='2'/>
- </cpu>
-</cpuTest>
--
2.35.1

View File

@ -0,0 +1,97 @@
From 6cf9cd8f6d9e90eadd58d8a37129e7401876e4e8 Mon Sep 17 00:00:00 2001
Message-Id: <6cf9cd8f6d9e90eadd58d8a37129e7401876e4e8@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 4 May 2022 16:28:03 +0200
Subject: [PATCH] cputest: Give better names to baseline tests
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 3daa68e26514dc114d71f4c44f7d728e93a53cd0)
https://bugzilla.redhat.com/show_bug.cgi?id=1851227
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
tests/cputest.c | 12 ++++++------
... x86_64-baseline-Westmere+Nehalem-migratable.xml} | 0
...l => x86_64-baseline-Westmere+Nehalem-result.xml} | 0
...ne-6.xml => x86_64-baseline-Westmere+Nehalem.xml} | 0
...ded.xml => x86_64-baseline-features-expanded.xml} | 0
...esult.xml => x86_64-baseline-features-result.xml} | 0
...4-baseline-4.xml => x86_64-baseline-features.xml} | 0
...anded.xml => x86_64-baseline-simple-expanded.xml} | 0
...-result.xml => x86_64-baseline-simple-result.xml} | 0
..._64-baseline-3.xml => x86_64-baseline-simple.xml} | 0
10 files changed, 6 insertions(+), 6 deletions(-)
rename tests/cputestdata/{x86_64-baseline-6-migratable.xml => x86_64-baseline-Westmere+Nehalem-migratable.xml} (100%)
rename tests/cputestdata/{x86_64-baseline-6-result.xml => x86_64-baseline-Westmere+Nehalem-result.xml} (100%)
rename tests/cputestdata/{x86_64-baseline-6.xml => x86_64-baseline-Westmere+Nehalem.xml} (100%)
rename tests/cputestdata/{x86_64-baseline-4-expanded.xml => x86_64-baseline-features-expanded.xml} (100%)
rename tests/cputestdata/{x86_64-baseline-4-result.xml => x86_64-baseline-features-result.xml} (100%)
rename tests/cputestdata/{x86_64-baseline-4.xml => x86_64-baseline-features.xml} (100%)
rename tests/cputestdata/{x86_64-baseline-3-expanded.xml => x86_64-baseline-simple-expanded.xml} (100%)
rename tests/cputestdata/{x86_64-baseline-3-result.xml => x86_64-baseline-simple-result.xml} (100%)
rename tests/cputestdata/{x86_64-baseline-3.xml => x86_64-baseline-simple.xml} (100%)
diff --git a/tests/cputest.c b/tests/cputest.c
index 20d56836be..b939e20718 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -1051,12 +1051,12 @@ mymain(void)
DO_TEST_BASELINE(VIR_ARCH_X86_64, "incompatible-vendors", 0, -1);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "no-vendor", 0, 0);
DO_TEST_BASELINE(VIR_ARCH_X86_64, "some-vendors", 0, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "3", 0, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "3", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "4", 0, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "4", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "6", 0, 0);
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "6", VIR_CONNECT_BASELINE_CPU_MIGRATABLE, 0);
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "simple", 0, 0);
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "simple", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "features", 0, 0);
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "features", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "Westmere+Nehalem", 0, 0);
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "Westmere+Nehalem", VIR_CONNECT_BASELINE_CPU_MIGRATABLE, 0);
DO_TEST_BASELINE(VIR_ARCH_PPC64, "incompatible-vendors", 0, -1);
DO_TEST_BASELINE(VIR_ARCH_PPC64, "no-vendor", 0, 0);
diff --git a/tests/cputestdata/x86_64-baseline-6-migratable.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-6-migratable.xml
rename to tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
diff --git a/tests/cputestdata/x86_64-baseline-6-result.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-6-result.xml
rename to tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
diff --git a/tests/cputestdata/x86_64-baseline-6.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-6.xml
rename to tests/cputestdata/x86_64-baseline-Westmere+Nehalem.xml
diff --git a/tests/cputestdata/x86_64-baseline-4-expanded.xml b/tests/cputestdata/x86_64-baseline-features-expanded.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-4-expanded.xml
rename to tests/cputestdata/x86_64-baseline-features-expanded.xml
diff --git a/tests/cputestdata/x86_64-baseline-4-result.xml b/tests/cputestdata/x86_64-baseline-features-result.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-4-result.xml
rename to tests/cputestdata/x86_64-baseline-features-result.xml
diff --git a/tests/cputestdata/x86_64-baseline-4.xml b/tests/cputestdata/x86_64-baseline-features.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-4.xml
rename to tests/cputestdata/x86_64-baseline-features.xml
diff --git a/tests/cputestdata/x86_64-baseline-3-expanded.xml b/tests/cputestdata/x86_64-baseline-simple-expanded.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-3-expanded.xml
rename to tests/cputestdata/x86_64-baseline-simple-expanded.xml
diff --git a/tests/cputestdata/x86_64-baseline-3-result.xml b/tests/cputestdata/x86_64-baseline-simple-result.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-3-result.xml
rename to tests/cputestdata/x86_64-baseline-simple-result.xml
diff --git a/tests/cputestdata/x86_64-baseline-3.xml b/tests/cputestdata/x86_64-baseline-simple.xml
similarity index 100%
rename from tests/cputestdata/x86_64-baseline-3.xml
rename to tests/cputestdata/x86_64-baseline-simple.xml
--
2.35.1

View File

@ -1,139 +0,0 @@
From 3bcec68251696b1255be7dc2504378b927ef5123 Mon Sep 17 00:00:00 2001
Message-ID: <3bcec68251696b1255be7dc2504378b927ef5123.1739824250.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 14 Feb 2025 23:35:56 -0500
Subject: [PATCH] docs: document using passt backend with <interface
type='vhostuser'>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Almost everything is already there (in the section for using passt
with type='user'), so we just need to point to that from the
type='vhostuser' section (and vice versa), and add a bit of glue.
Also updated a few related details that have changed (e.g. default
model type for vhostuser is now 'virtio', and source type/mode are now
optional), and changed "vhost-user interface" to "vhost-user
connection" because the interface is a virtio interface, and
vhost-user is being used to connect that interface to the outside.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 96fd17a99b514e585a94d43d40ab9a74907c7a5b)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
docs/formatdomain.rst | 73 ++++++++++++++++++++++++++++++++++++-------
1 file changed, 62 insertions(+), 11 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 577366b934..c077c09a39 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -5131,6 +5131,15 @@ destined for the host toward the guest instead), and a socket between
passt and QEMU forwards that traffic on to the guest (and back out,
of course).
+*(:since:`Since 11.1.0 (QEMU and KVM only)` you may prefer to use the
+passt backend with the more efficient and performant type='vhostuser'
+rather than type='user'. All the options related to passt in the
+paragraphs below here also apply when using the passt backend with
+type='vhostuser'; any other details specific to vhostuser are
+described* `here
+<formatdomain.html#vhost-user-connection-with-passt-backend>`__.)
+
+
Similar to SLIRP, passt has an internal DHCP server that provides a
requesting guest with one ipv4 and one ipv6 address. There are default
values for both of these, or you can use the ``<ip>`` element
@@ -5823,7 +5832,7 @@ following attributes are available for the ``virtio`` NIC driver:
The optional ``queues`` attribute controls the number of queues to be used
for either `Multiqueue
virtio-net <https://www.linux-kvm.org/page/Multiqueue>`__ or vhost-user (See
- `vhost-user interface`_) network interfaces. Use of multiple packet
+ `vhost-user connection`_) network interfaces. Use of multiple packet
processing queues requires the interface having the
``<model type='virtio'/>`` element. Each queue will potentially be handled by
a different processor, resulting in much higher throughput.
@@ -6267,8 +6276,8 @@ similarly named elements used to configure the guest side of the interface
(described above).
-vhost-user interface
-^^^^^^^^^^^^^^^^^^^^
+vhost-user connection
+^^^^^^^^^^^^^^^^^^^^^
:since:`Since 1.2.7` the vhost-user enables the communication between a QEMU
virtual machine and other userspace process using the Virtio transport protocol.
@@ -6295,16 +6304,58 @@ plane is based on shared memory.
</devices>
...
-The ``<source>`` element has to be specified along with the type of char device.
-Currently, only type='unix' is supported, where the path (the directory path of
-the socket) and mode attributes are required. Both ``mode='server'`` and
-``mode='client'`` are supported. vhost-user requires the virtio model type, thus
-the ``<model>`` element is mandatory. :since:`Since 4.1.0` the element has an
-optional child element ``reconnect`` which configures reconnect timeout if the
-connection is lost. It has two attributes ``enabled`` (which accepts ``yes`` and
-``no``) and ``timeout`` which specifies the amount of seconds after which
+The ``<source>`` element has to be specified along with the type of
+char device. Currently, only type='unix' is supported, where the path
+(the directory path of the socket) and mode attributes are
+required. Both ``mode='server'`` and ``mode='client'`` are
+supported. (:since:`Since 11.1.0` the default source type for
+vhostuser interfaces is 'unix' and default mode is 'client', so those
+two attributes are now optional).
+
+The vhost-user protocol only works with the virtio guest driver, so
+the ``<model>`` element ``type`` attribute is mandatory (:since:`Since
+11.1.0` the default model type for vhostuser interfaces is now
+'virtio' so ``<model>`` is no longer mandatory). :since:`Since 4.1.0`
+the ``<source>`` element has an optional child element ``reconnect``
+which configures reconnect timeout if the connection is lost. It has
+two attributes ``enabled`` (which accepts ``yes`` and ``no``) and
+``timeout`` which specifies the amount of seconds after which
hypervisor tries to reconnect.
+
+vhost-user connection with passt backend
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:since:`Since 11.1.0 (QEMU and KVM only)` passt can be used as the
+other end of the vhost-user connection. This is a compelling
+alternative, because passt provides all of its network connectivity
+without requiring any elevated privileges or capabilities, and
+vhost-user uses shared memory to make this unprivileged connection
+very high performance as well. You can set a type='vhostuser'
+interface to use passt as the backend by adding ``<backend
+type='passt'/>``. When passt is the backend, only a single driver
+queue is supported, and the ``<source>`` path/type/mode are all
+implied to be "matching the passt process" so **must not** be
+specified. All of the passt options `described here
+<formatdomain.html#userspace-connection-using-passt>`__, are also
+supported for ``type='vhostuser'`` with the passt backend, e.g.
+setting guest-side IP addresses with ``<ip>`` and port forwarding with
+``<portForward``.
+
+::
+
+ ...
+ <devices>
+ <interface type='vhostuser'>
+ <backend type='passt'/>
+ <mac address='52:54:00:3b:83:1a'/>
+ <source dev='enp1s0'/>
+ <ip address='10.30.0.5 prefix='24'/>
+ </interface>
+ </devices>
+ ...
+
+
Traffic filtering with NWFilter
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--
2.48.1

View File

@ -1,177 +0,0 @@
From 42b16d6b87ad5449f93cda5f31cde92d0cca074f Mon Sep 17 00:00:00 2001
Message-ID: <42b16d6b87ad5449f93cda5f31cde92d0cca074f.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 14 Feb 2025 22:43:03 -0500
Subject: [PATCH] docs: improve type='user' docs to higlight differences
between SLIRP and passt
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reorganizes the section about <interface type='user'> and
describes the differences in behavior between SLIRP and passt.
Resolves: https://issues.redhat.com/browse/RHEL-46601
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit a47a89a9d335c111a9c2fbb3f4e1c3a13001e74b)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
docs/formatdomain.rst | 116 ++++++++++++++++++++++++++++--------------
1 file changed, 78 insertions(+), 38 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 8d787ef59a..577366b934 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -5072,25 +5072,34 @@ to the interface.
</devices>
...
-Userspace (SLIRP or passt) connection
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Userspace connection using SLIRP
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The ``user`` type connects the guest interface to the outside via a
+The ``user`` interface type connects the guest interface to the outside via a
transparent userspace proxy that doesn't require any special system
privileges, making it usable in cases when libvirt itself is running
with no privileges (e.g. libvirt's "session mode" daemon, or when
libvirt is run inside an unprivileged container).
-By default, this user proxy is done with QEMU's internal SLIRP driver
-which has DHCP & DNS services that give the guest IP addresses
-starting from ``10.0.2.15``, a default route of ``10.0.2.2`` and DNS
-server of ``10.0.2.3``. :since:`Since 3.8.0` it is possible to override
-the default network address by including an ``ip`` element specifying
-an IPv4 address in its one mandatory attribute,
-``address``. Optionally, a second ``ip`` element with a ``family``
-attribute set to "ipv6" can be specified to add an IPv6 address to the
-interface. ``address``. Optionally, address ``prefix`` can be
-specified.
+By default, this user proxy is done with QEMU's SLIRP driver, a
+userspace proxy built into QEMU that has DHCP & DNS services that give
+the guest an IP address of ``10.0.2.15``, a default route of
+``10.0.2.2`` and DNS server at ``10.0.2.3``.
+
+:since:`Since 3.8.0` it is possible to override the guest's default
+network address by including an ``ip`` element specifying an IPv4
+address in its one mandatory attribute, ``address``. Optionally, a
+second ``ip`` element with a ``family`` attribute set to "ipv6" can be
+specified to add an IPv6 address to the interface. ``address``.
+Optionally, an address ``prefix`` can be specified. These settings are
+surprisingly **not** used by SLIRP to set the exact IP address;
+instead they are used to determine what network/subnet the guest's IP
+address should be on, and the guest will be given an address in that
+subnet, but the host portion of the address will still be "2.15". In
+the example below, for example, the guest will be given the IP address
+172.17.2.15 (**note that the '1.1' in the host portion of the address
+has been ignored**), default route of 172.17.2.2, and DNS server
+172.17.2.3.
::
@@ -5100,34 +5109,65 @@ specified.
...
<interface type='user'>
<mac address="00:11:22:33:44:55"/>
- <ip family='ipv4' address='172.17.2.0' prefix='24'/>
- <ip family='ipv6' address='2001:db8:ac10:fd01::' prefix='64'/>
+ <ip family='ipv4' address='172.17.1.1' prefix='16'/>
+ <ip family='ipv6' address='2001:db8:ac10:fd01::1' prefix='64'/>
</interface>
</devices>
...
-:since:`Since 9.0.0` an alternate backend implementation of the
-``user`` interface type can be selected by setting the interface's
-``<backend>`` subelement ``type`` attribute to ``passt``. In this
-case, the passt transport (https://passt.top) is used. Similar to
-SLIRP, passt has an internal DHCP server that provides a requesting
-guest with one ipv4 and one ipv6 address; it then uses userspace
-proxies and a separate network namespace to provide outgoing
-UDP/TCP/ICMP sessions, and optionally redirect incoming traffic
-destined for the host toward the guest instead.
-
-When the passt backend is used, the ``<backend>`` attribute
-``logFile`` can be used to tell the passt process for this interface
-where to write its message log, and the ``<source>`` attribute ``dev``
-can tell it to use a particular host interface to derive the routes
-given to the guest for forwarding traffic upstream. Due to the design
-decisions of passt, if using SELinux, the log file is recommended to
-reside in the runtime directory of a user under which the passt
-process will run, most probably ``/run/user/$UID`` where ``$UID`` is
-the UID of the user, e.g. ``qemu``. Beware that libvirt does not
-create this directory if it does not already exist to avoid possible,
-however unlikely, issues, especially since this logfile attribute is
-meant mostly for debugging.
+Userspace connection using passt
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:since:`Since 9.0.0 (QEMU and KVM only)` an alternate backend
+implementation of the ``user`` interface type can be selected by
+setting the interface's ``<backend>`` subelement ``type`` attribute to
+``passt``. In this case, the passt transport `(details here)
+<https://passt.top>`__ is used. passt is run as a separate process
+from QEMU - the passt process handles the details of forwarding
+network traffic back and forth to the physical network (using
+userspace proxies and a separate network namespace to provide outgoing
+UDP/TCP/ICMP sessions, and optionally redirecting incoming traffic
+destined for the host toward the guest instead), and a socket between
+passt and QEMU forwards that traffic on to the guest (and back out,
+of course).
+
+Similar to SLIRP, passt has an internal DHCP server that provides a
+requesting guest with one ipv4 and one ipv6 address. There are default
+values for both of these, or you can use the ``<ip>`` element
+(described above, with behavioral differences as outlined below) to
+configure one IPv4 and one IPv6 address that passt's DHCP server can
+provide to the guest.
+
+Unlike SLIRP, when no `<ip>`` address is specified, passt will by
+default provide the guest with an IP address, DNS server, etc. that
+are identical to those settings on the host itself (through the magic
+of the proxies and a separate network namespace, this doesn't create
+any conflict).
+
+Also different from SLIRP's behavior: if you do specify IP
+address(es), the exact address and netmask/prefix you specify will be
+provided to the guest (i.e. passt doesn't interpret the <ip> settings
+as a network address like SLIRP does, but as a host address). In
+example given above, the guest IP would be set to exactly 172.17.1.1.
+
+Just as with SLIRP, though, once traffic from the guest leaves the
+host towards the rest of the network, it will always appear as if it
+came from the host's IP.
+
+There are a few other options that are configurable only for the passt
+backend. For example, the ``<backend>`` attribute ``logFile`` can be
+used to tell the passt process for this interface where to write its
+message log, and the ``<source>`` attribute ``dev`` can tell it a
+particular host interface to use when deriving the routes given to the
+guest for forwarding traffic upstream. Due to the design decisions of
+passt, when using SELinux on the host, it is recommended that the log
+file reside in the runtime directory of the user under which the passt
+process will run, most probably ``/run/user/$UID`` (where ``$UID`` is
+the UID of that user), e.g. ``/run/user/1000``. Be aware that libvirt
+does not create this directory if it does not already exist to avoid
+possible, however unlikely, issues with orphaned directories or
+permissions, etc. The logfile attribute is meant mostly for debugging,
+so it shouldn't be set under normal circumstances.
Additionally, when passt is used, multiple ``<portForward>`` elements
can be added to forward incoming network traffic for the host to this
@@ -5164,7 +5204,7 @@ ports **with the exception of some subset**.
<backend type='passt' logFile='/run/user/$UID/passt-domain.log'/>
<mac address="00:11:22:33:44:55"/>
<source dev='eth0'/>
- <ip family='ipv4' address='172.17.2.4' prefix='24'/>
+ <ip family='ipv4' address='172.17.5.4' prefix='24'/>
<ip family='ipv6' address='2001:db8:ac10:fd01::20'/>
<portForward proto='tcp'>
<range start='2022' to='22'/>
--
2.48.1

View File

@ -0,0 +1,111 @@
From 296343c5a950668d790f9cd5ebd7b466e8156d03 Mon Sep 17 00:00:00 2001
Message-Id: <296343c5a950668d790f9cd5ebd7b466e8156d03@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Tue, 14 Jun 2022 13:23:29 +0200
Subject: [PATCH] domain_validate: Split out validation of disk startup policy
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Move the code into 'virDomainDiskDefValidateStartupPolicy' which will be
later reused in the qemu driver.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 3603a18bcec18842cedecbd8329723062b87795c)
https://bugzilla.redhat.com/show_bug.cgi?id=2095758
---
src/conf/domain_validate.c | 45 ++++++++++++++++++++++++--------------
src/conf/domain_validate.h | 2 ++
src/libvirt_private.syms | 1 +
3 files changed, 31 insertions(+), 17 deletions(-)
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 452742e67c..bfff7339ef 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -598,6 +598,32 @@ virDomainDiskDefSourceLUNValidate(const virStorageSource *src)
}
+int
+virDomainDiskDefValidateStartupPolicy(const virDomainDiskDef *disk)
+{
+ if (disk->startupPolicy == VIR_DOMAIN_STARTUP_POLICY_DEFAULT)
+ return 0;
+
+ if (disk->src->type == VIR_STORAGE_TYPE_NETWORK) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("disk startupPolicy '%s' is not allowed for disk of '%s' type"),
+ virDomainStartupPolicyTypeToString(disk->startupPolicy),
+ virStorageTypeToString(disk->src->type));
+ return -1;
+ }
+
+ if (disk->device != VIR_DOMAIN_DISK_DEVICE_CDROM &&
+ disk->device != VIR_DOMAIN_DISK_DEVICE_FLOPPY &&
+ disk->startupPolicy == VIR_DOMAIN_STARTUP_POLICY_REQUISITE) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("disk startupPolicy 'requisite' is allowed only for cdrom or floppy"));
+ return -1;
+ }
+
+ return 0;
+}
+
+
static int
virDomainDiskDefValidate(const virDomainDef *def,
const virDomainDiskDef *disk)
@@ -775,23 +801,8 @@ virDomainDiskDefValidate(const virDomainDef *def,
return -1;
}
- if (disk->startupPolicy != VIR_DOMAIN_STARTUP_POLICY_DEFAULT) {
- if (disk->src->type == VIR_STORAGE_TYPE_NETWORK) {
- virReportError(VIR_ERR_XML_ERROR,
- _("disk startupPolicy '%s' is not allowed for disk of '%s' type"),
- virDomainStartupPolicyTypeToString(disk->startupPolicy),
- virStorageTypeToString(disk->src->type));
- return -1;
- }
-
- if (disk->device != VIR_DOMAIN_DISK_DEVICE_CDROM &&
- disk->device != VIR_DOMAIN_DISK_DEVICE_FLOPPY &&
- disk->startupPolicy == VIR_DOMAIN_STARTUP_POLICY_REQUISITE) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("disk startupPolicy 'requisite' is allowed only for cdrom or floppy"));
- return -1;
- }
- }
+ if (virDomainDiskDefValidateStartupPolicy(disk) < 0)
+ return -1;
if (disk->wwn && !virValidateWWN(disk->wwn))
return -1;
diff --git a/src/conf/domain_validate.h b/src/conf/domain_validate.h
index 430d61fd3c..07b99195e3 100644
--- a/src/conf/domain_validate.h
+++ b/src/conf/domain_validate.h
@@ -41,4 +41,6 @@ int virDomainDeviceDefValidate(const virDomainDeviceDef *dev,
int virDomainDiskDefValidateSource(const virStorageSource *src);
+int virDomainDiskDefValidateStartupPolicy(const virDomainDiskDef *disk);
+
int virDomainDiskDefSourceLUNValidate(const virStorageSource *src);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 2c42e2a5e8..5b7a056151 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -777,6 +777,7 @@ virDomainActualNetDefValidate;
virDomainDefValidate;
virDomainDeviceValidateAliasForHotplug;
virDomainDiskDefSourceLUNValidate;
+virDomainDiskDefValidateStartupPolicy;
# conf/interface_conf.h
--
2.35.1

View File

@ -1,69 +0,0 @@
From ebe771353b9511ec5850a1415b82399a53fa2c71 Mon Sep 17 00:00:00 2001
Message-ID: <ebe771353b9511ec5850a1415b82399a53fa2c71.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Fri, 24 Jan 2025 16:26:54 +0100
Subject: [PATCH] include: libvirt-domain: Add 'message' @reason of
VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In case when the hypervisor does report the reason for the I/O error as
an unstable string to display to users we can add a @reason possibility
for the I/O error event noting that the error is available.
Add 'message' as a reason enumeration value and document it
to instruct users to look at the logs or virDomainGetMessages().
The resulting event looks like:
event 'io-error' for domain 'cd': /dev/mapper/errdev0 (virtio-disk0) report due to message
Users then can look at the virDomainGetMessages() API:
I/O error: disk='vda', index='1', path='/dev/mapper/errdev0', timestamp='2025-01-28 15:47:52.776+0000', message='Input/output error'
Or in the VM log file:
2025-01-28 15:47:52.776+0000: IO error device='virtio-disk0' node-name='libvirt-1-storage' reason='Input/output error'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 97c47333cbdc2531260f7b11b1fa9ba828878343)
https://issues.redhat.com/browse/RHEL-77884
---
include/libvirt/libvirt-domain.h | 4 ++++
src/qemu/qemu_process.c | 2 ++
2 files changed, 6 insertions(+)
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index 1dc7b417c9..f026ce197c 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -4782,6 +4782,10 @@ typedef void (*virConnectDomainEventIOErrorCallback)(virConnectPtr conn,
* - "enospc": The I/O error is known to be caused by an ENOSPC condition in
* the host. Resizing the disk source to be larger will allow the
* guest to be resumed as if nothing happened.
+ * - "message": The hypervisor reported a string description of the
+ * I/O error. The errors are usually logged into the
+ * domain log file or the last instance of the error
+ * string can be queried via virDomainGetMessages().
*
* Since: 0.8.1
*/
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 409734d948..b9d69649ca 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -862,6 +862,8 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
if (nospace)
eventReason = "enospc";
+ else if (reason)
+ eventReason = "message";
ioErrorEvent = virDomainEventIOErrorNewFromObj(vm, eventPath, eventAlias, action);
ioErrorEvent2 = virDomainEventIOErrorReasonNewFromObj(vm, eventPath, eventAlias, action, eventReason);
--
2.48.1

View File

@ -1,47 +0,0 @@
From 5def2eb78e1152a78533e27647eda2352f1dbc4b Mon Sep 17 00:00:00 2001
Message-ID: <5def2eb78e1152a78533e27647eda2352f1dbc4b.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 15:50:34 +0100
Subject: [PATCH] include: libvirt-domain: Reword documentation for @reason of
VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Emphasise that it's an enumeration and convert the possibilities to a
list of values with explanation.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 3a3c5616eb2c50a58896f99f30d887937dab297a)
https://issues.redhat.com/browse/RHEL-77884
---
include/libvirt/libvirt-domain.h | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index 92a32f1cde..1dc7b417c9 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -4775,11 +4775,13 @@ typedef void (*virConnectDomainEventIOErrorCallback)(virConnectPtr conn,
* The callback signature to use when registering for an event of type
* VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON with virConnectDomainEventRegisterAny()
*
- * If the I/O error is known to be caused by an ENOSPC condition in
- * the host (where resizing the disk to be larger will allow the guest
- * to be resumed as if nothing happened), @reason will be "enospc".
- * Otherwise, @reason will be "", although future strings may be added
- * if determination of other error types becomes possible.
+ * Although @reason is a string, it is considered to be an enumeration of the
+ * following values:
+ *
+ * - "" (empty string): unknown I/O error reason
+ * - "enospc": The I/O error is known to be caused by an ENOSPC condition in
+ * the host. Resizing the disk source to be larger will allow the
+ * guest to be resumed as if nothing happened.
*
* Since: 0.8.1
*/
--
2.48.1

View File

@ -0,0 +1,77 @@
From 08ddc711a2e6d94a0fce55fec8e012a434655d2c Mon Sep 17 00:00:00 2001
Message-ID: <08ddc711a2e6d94a0fce55fec8e012a434655d2c.1690812875.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 1 Apr 2022 14:30:05 +0200
Subject: [PATCH] lib: Set up cpuset controller for restrictive numatune
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The aim of 'restrictive' numatune mode is to rely solely on
CGroups to have QEMU running on configured NUMA nodes. However,
we were never setting the cpuset controller when a domain was
starting up. We are doing so only when
virDomainSetNumaParameters() is called (aka live pinning).
This is obviously wrong. Fortunately, fix is simple as
'restrictive' is similar to 'strict' - every location where
VIR_DOMAIN_NUMATUNE_MEM_STRICT occurs can be audited and
VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE case can be added.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2070380
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 629282d8845407c1aff9a26f5dc026e15121f8cd)
Conflicts:
- src/ch/ch_process.c: The CH driver diverged because it's
unsupported downstream. Just drop the conflicting hunk from
there.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2223464
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/lxc/lxc_controller.c | 3 ++-
src/qemu/qemu_process.c | 6 ++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 3c930eaacd..6fd8373256 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -812,7 +812,8 @@ static int virLXCControllerSetupResourceLimits(virLXCController *ctrl)
virDomainNumatuneMemMode mode;
if (virDomainNumatuneGetMode(ctrl->def->numa, -1, &mode) == 0) {
- if (mode == VIR_DOMAIN_NUMATUNE_MEM_STRICT &&
+ if ((mode == VIR_DOMAIN_NUMATUNE_MEM_STRICT ||
+ mode == VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE) &&
virCgroupControllerAvailable(VIR_CGROUP_CONTROLLER_CPUSET)) {
/* Use virNuma* API iff necessary. Once set and child is exec()-ed,
* there's no way for us to change it. Rely on cgroups (if available
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 0fb665bc82..73d54f01cd 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -2645,7 +2645,8 @@ qemuProcessSetupPid(virDomainObj *vm,
virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET)) {
if (virDomainNumatuneGetMode(vm->def->numa, -1, &mem_mode) == 0 &&
- mem_mode == VIR_DOMAIN_NUMATUNE_MEM_STRICT &&
+ (mem_mode == VIR_DOMAIN_NUMATUNE_MEM_STRICT ||
+ mem_mode == VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE) &&
virDomainNumatuneMaybeFormatNodeset(vm->def->numa,
priv->autoNodeset,
&mem_mask, -1) < 0)
@@ -3162,7 +3163,8 @@ static int qemuProcessHook(void *data)
goto cleanup;
if (virDomainNumatuneGetMode(h->vm->def->numa, -1, &mode) == 0) {
- if (mode == VIR_DOMAIN_NUMATUNE_MEM_STRICT &&
+ if ((mode == VIR_DOMAIN_NUMATUNE_MEM_STRICT ||
+ mode == VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE) &&
h->cfg->cgroupControllers & (1 << VIR_CGROUP_CONTROLLER_CPUSET) &&
virCgroupControllerAvailable(VIR_CGROUP_CONTROLLER_CPUSET)) {
/* Use virNuma* API iff necessary. Once set and child is exec()-ed,
--
2.41.0

View File

@ -1,37 +0,0 @@
From c417e164d2b225ea401093e33a853d827d8bd8ca Mon Sep 17 00:00:00 2001
Message-ID: <c417e164d2b225ea401093e33a853d827d8bd8ca.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Tue, 28 Jan 2025 14:06:16 +0100
Subject: [PATCH] libxlDomainGetMessages: Add existing flags to 'virCheckFlags'
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The two VIR_DOMAIN_MESSAGE_* flags were not listed in the virCheckFlags
check in 'libxl' but were present in 'test' and 'qemu' driver impls.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 042ea8630b1b35ce6d325df52fefa84bad94d027)
https://issues.redhat.com/browse/RHEL-77884
---
src/libxl/libxl_driver.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index e72553603d..26d22550ae 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -6575,7 +6575,8 @@ libxlDomainGetMessages(virDomainPtr dom,
virDomainObj *vm = NULL;
int ret = -1;
- virCheckFlags(0, -1);
+ virCheckFlags(VIR_DOMAIN_MESSAGE_DEPRECATION |
+ VIR_DOMAIN_MESSAGE_TAINTING, -1);
if (!(vm = libxlDomObjFromDomain(dom)))
return -1;
--
2.48.1

View File

@ -0,0 +1,84 @@
From 71a79a215d278d83f3cd3da330e0378209983b6b Mon Sep 17 00:00:00 2001
Message-Id: <71a79a215d278d83f3cd3da330e0378209983b6b@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 26 Jan 2022 14:00:13 +0100
Subject: [PATCH] node_device: Rework udevKludgeStorageType()
The udevKludgeStorageType() function looks at devlink name
(/dev/XXX) and guesses the type of the (storage) device using a
series of STRPREFIX() calls. Well those can be turn into an array
and a for() loop, especially if we are about to add a new case
(in the next commit).
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit ec9e2adb961f2e1a121f47e7985142e827f3347b)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2056673
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/node_device/node_device_udev.c | 43 ++++++++++++++++--------------
1 file changed, 23 insertions(+), 20 deletions(-)
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index cd1722f934..dd18401e78 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -890,32 +890,35 @@ udevProcessDASD(struct udev_device *device,
static int
udevKludgeStorageType(virNodeDeviceDef *def)
{
+ size_t i;
+ const struct {
+ const char *prefix;
+ const char *subst;
+ } fixups[] = {
+ /* virtio disk */
+ { "/dev/vd", "disk" },
+
+ /* For Direct Access Storage Devices (DASDs) there are
+ * currently no identifiers in udev besides ID_PATH. Since
+ * ID_TYPE=disk does not exist on DASDs they fall through
+ * the udevProcessStorage detection logic. */
+ { "/dev/dasd", "dasd" },
+ };
+
VIR_DEBUG("Could not find definitive storage type for device "
"with sysfs path '%s', trying to guess it",
def->sysfs_path);
- /* virtio disk */
- if (STRPREFIX(def->caps->data.storage.block, "/dev/vd")) {
- def->caps->data.storage.drive_type = g_strdup("disk");
- VIR_DEBUG("Found storage type '%s' for device "
- "with sysfs path '%s'",
- def->caps->data.storage.drive_type,
- def->sysfs_path);
- return 0;
+ for (i = 0; i < G_N_ELEMENTS(fixups); i++) {
+ if (STRPREFIX(def->caps->data.storage.block, fixups[i].prefix)) {
+ def->caps->data.storage.drive_type = g_strdup(fixups[i].subst);
+ VIR_DEBUG("Found storage type '%s' for device with sysfs path '%s'",
+ def->caps->data.storage.drive_type,
+ def->sysfs_path);
+ return 0;
+ }
}
- /* For Direct Access Storage Devices (DASDs) there are
- * currently no identifiers in udev besides ID_PATH. Since
- * ID_TYPE=disk does not exist on DASDs they fall through
- * the udevProcessStorage detection logic. */
- if (STRPREFIX(def->caps->data.storage.block, "/dev/dasd")) {
- def->caps->data.storage.drive_type = g_strdup("dasd");
- VIR_DEBUG("Found storage type '%s' for device "
- "with sysfs path '%s'",
- def->caps->data.storage.drive_type,
- def->sysfs_path);
- return 0;
- }
VIR_DEBUG("Could not determine storage type "
"for device with sysfs path '%s'", def->sysfs_path);
return -1;
--
2.35.1

View File

@ -0,0 +1,39 @@
From c04c7a986bd3514730e4169bf1a70bbec1fda006 Mon Sep 17 00:00:00 2001
Message-Id: <c04c7a986bd3514730e4169bf1a70bbec1fda006@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 26 Jan 2022 13:47:33 +0100
Subject: [PATCH] node_device: Treat NVMe disks as regular disks
Unfortunately, udev doesn't set ID_TYPE attribute for NVMe disks,
therefore we have to add another case into udevKludgeStorageType()
to treat /dev/nvme* devlinks as any other disk.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2045953
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit f103976ff34a52298df1810d82ececa3e7da4291)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2056673
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/node_device/node_device_udev.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index dd18401e78..a9e8bf10da 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -903,6 +903,11 @@ udevKludgeStorageType(virNodeDeviceDef *def)
* ID_TYPE=disk does not exist on DASDs they fall through
* the udevProcessStorage detection logic. */
{ "/dev/dasd", "dasd" },
+
+ /* NVMe disk. While strictly speaking /dev/nvme is a
+ * controller not a disk, this function is called if and
+ * only if @def is of VIR_NODE_DEV_CAP_STORAGE type. */
+ { "/dev/nvme", "disk" },
};
VIR_DEBUG("Could not find definitive storage type for device "
--
2.35.1

View File

@ -0,0 +1,52 @@
From 989a569c9c9da0fbf89aab7f292669366b2503f1 Mon Sep 17 00:00:00 2001
Message-Id: <989a569c9c9da0fbf89aab7f292669366b2503f1@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 30 Nov 2022 14:53:21 +0100
Subject: [PATCH] node_device_conf: Avoid memleak in
virNodeDeviceGetPCIVPDDynamicCap()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The virNodeDeviceGetPCIVPDDynamicCap() function is called from
virNodeDeviceGetPCIDynamicCaps() and therefore has to be a wee
bit more clever about adding VPD capability. Namely, it has to
remove the old one before adding a new one. This is how other
functions called from virNodeDeviceGetPCIDynamicCaps() behave
as well.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2143235
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 64d32118540aca3d42bc5ee21c8b780cafe04bfa)
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2023-2700
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
src/conf/node_device_conf.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 16b9497faf..eee94a3900 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -3100,6 +3100,9 @@ virNodeDeviceGetPCIVPDDynamicCap(virNodeDevCapPCIDev *devCapPCIDev)
virPCIDeviceAddress devAddr;
g_autoptr(virPCIVPDResource) res = NULL;
+ g_clear_pointer(&devCapPCIDev->vpd, virPCIVPDResourceFree);
+ devCapPCIDev->flags &= ~VIR_NODE_DEV_CAP_FLAG_PCI_VPD;
+
devAddr.domain = devCapPCIDev->domain;
devAddr.bus = devCapPCIDev->bus;
devAddr.slot = devCapPCIDev->slot;
@@ -3113,8 +3116,6 @@ virNodeDeviceGetPCIVPDDynamicCap(virNodeDevCapPCIDev *devCapPCIDev)
if ((res = virPCIDeviceGetVPD(pciDev))) {
devCapPCIDev->flags |= VIR_NODE_DEV_CAP_FLAG_PCI_VPD;
devCapPCIDev->vpd = g_steal_pointer(&res);
- } else {
- virPCIVPDResourceFree(g_steal_pointer(&devCapPCIDev->vpd));
}
}
return 0;
--
2.40.1

View File

@ -0,0 +1,151 @@
From 5921eeddf0a284ccbec04896901c9bd4177de6dd Mon Sep 17 00:00:00 2001
Message-Id: <5921eeddf0a284ccbec04896901c9bd4177de6dd@dist-git>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Fri, 13 May 2022 12:31:15 +0200
Subject: [PATCH] nodedev: add optional device address of channel device to css
device
Add the new introduced sysfs attribute dev_busid which provides the address
of the device in the subchannel independent from the bound device driver.
It is added if available in the sysfs as optional channel_dev_addr element into
the css device capabilty providing the ccw deivce address attributes cssid,
ssid and devno.
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 122b975e4004c83b6fc442ec6cdfd71eb5b55cc4)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
docs/schemas/nodedev.rng | 5 +++++
src/conf/node_device_conf.c | 28 ++++++++++++++++++++++++++++
src/conf/node_device_conf.h | 2 ++
src/node_device/node_device_udev.c | 8 ++++++++
4 files changed, 43 insertions(+)
diff --git a/docs/schemas/nodedev.rng b/docs/schemas/nodedev.rng
index 29515d2d7e..43f1abc247 100644
--- a/docs/schemas/nodedev.rng
+++ b/docs/schemas/nodedev.rng
@@ -677,6 +677,11 @@
<value>css</value>
</attribute>
<ref name="capccwaddress"/>
+ <optional>
+ <element name="channel_dev_addr">
+ <ref name="capccwaddress"/>
+ </element>
+ </optional>
<optional>
<ref name="mdev_types"/>
</optional>
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index fcb5be24e1..16b9497faf 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -643,6 +643,17 @@ virNodeDeviceCapCSSDefFormat(virBuffer *buf,
virNodeDeviceCapCCWDefFormat(buf, data);
+ if (ccw_dev.channel_dev_addr) {
+ virCCWDeviceAddress *ccw = ccw_dev.channel_dev_addr;
+ virBufferAddLit(buf, "<channel_dev_addr>\n");
+ virBufferAdjustIndent(buf, 2);
+ virBufferAsprintf(buf, "<cssid>0x%x</cssid>\n", ccw->cssid);
+ virBufferAsprintf(buf, "<ssid>0x%x</ssid>\n", ccw->ssid);
+ virBufferAsprintf(buf, "<devno>0x%04x</devno>\n", ccw->devno);
+ virBufferAdjustIndent(buf, -2);
+ virBufferAddLit(buf, "</channel_dev_addr>\n");
+ }
+
if (ccw_dev.flags & VIR_NODE_DEV_CAP_FLAG_CSS_MDEV)
virNodeDeviceCapMdevTypesFormat(buf,
ccw_dev.mdev_types,
@@ -1255,6 +1266,7 @@ virNodeDevCapCSSParseXML(xmlXPathContextPtr ctxt,
g_autofree xmlNodePtr *nodes = NULL;
int n = 0;
size_t i = 0;
+ xmlNodePtr channel_ddno = NULL;
ctxt->node = node;
@@ -1269,6 +1281,21 @@ virNodeDevCapCSSParseXML(xmlXPathContextPtr ctxt,
return -1;
}
+ /* channel_dev_addr is optional */
+ if ((channel_ddno = virXPathNode("./channel_dev_addr[1]", ctxt))) {
+ g_autofree virCCWDeviceAddress *channel_dev = NULL;
+
+ channel_dev = g_new0(virCCWDeviceAddress, 1);
+
+ if (virNodeDevCCWDeviceAddressParseXML(ctxt,
+ channel_ddno,
+ def->name,
+ channel_dev) < 0)
+ return -1;
+
+ ccw_dev->channel_dev_addr = g_steal_pointer(&channel_dev);
+ }
+
return 0;
}
@@ -2637,6 +2664,7 @@ virNodeDevCapsDefFree(virNodeDevCapsDef *caps)
for (i = 0; i < data->ccw_dev.nmdev_types; i++)
virMediatedDeviceTypeFree(data->ccw_dev.mdev_types[i]);
g_free(data->ccw_dev.mdev_types);
+ g_free(data->ccw_dev.channel_dev_addr);
break;
case VIR_NODE_DEV_CAP_AP_MATRIX:
g_free(data->ap_matrix.addr);
diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
index e4d1f67d53..d1751ed874 100644
--- a/src/conf/node_device_conf.h
+++ b/src/conf/node_device_conf.h
@@ -24,6 +24,7 @@
#include "internal.h"
#include "virbitmap.h"
+#include "virccw.h"
#include "virpcivpd.h"
#include "virscsihost.h"
#include "virpci.h"
@@ -279,6 +280,7 @@ struct _virNodeDevCapCCW {
unsigned int flags; /* enum virNodeDevCCWCapFlags */
virMediatedDeviceType **mdev_types;
size_t nmdev_types;
+ virCCWDeviceAddress *channel_dev_addr;
};
typedef struct _virNodeDevCapVDPA virNodeDevCapVDPA;
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index ffcb3e8640..611a2592ca 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1128,6 +1128,8 @@ static int
udevProcessCSS(struct udev_device *device,
virNodeDeviceDef *def)
{
+ g_autofree char *dev_busid = NULL;
+
/* only process IO subchannel and vfio-ccw devices to keep the list sane */
if (!def->driver ||
(STRNEQ(def->driver, "io_subchannel") &&
@@ -1139,6 +1141,12 @@ udevProcessCSS(struct udev_device *device,
udevGenerateDeviceName(device, def, NULL);
+ /* process optional channel devices information */
+ udevGetStringSysfsAttr(device, "dev_busid", &dev_busid);
+
+ if (dev_busid != NULL)
+ def->caps->data.ccw_dev.channel_dev_addr = virCCWDeviceAddressFromString(dev_busid);
+
if (virNodeDeviceGetCSSDynamicCaps(def->sysfs_path, &def->caps->data.ccw_dev) < 0)
return -1;
--
2.39.1

View File

@ -0,0 +1,149 @@
From ea4976de7bccfe8016950d040629a6818a58db4e Mon Sep 17 00:00:00 2001
Message-Id: <ea4976de7bccfe8016950d040629a6818a58db4e@dist-git>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Fri, 13 May 2022 12:31:16 +0200
Subject: [PATCH] nodedev: add tests for optional device address to css device
Add nodedev schema parsing and format tests for the optional new device
address on the css devices.
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 127fda5e84790af2c5a16b61a87e339391cccb3b)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
.../css_0_0_10000-invalid.xml | 10 +++++++++
...s_0_0_fffe_mdev_types_channel_dev_addr.xml | 22 +++++++++++++++++++
.../css_0_0_ffff_channel_dev_addr-invalid.xml | 15 +++++++++++++
.../css_0_0_ffff_channel_dev_addr.xml | 15 +++++++++++++
...s_0_0_fffe_mdev_types_channel_dev_addr.xml | 1 +
.../css_0_0_ffff_channel_dev_addr.xml | 1 +
tests/nodedevxml2xmltest.c | 2 ++
7 files changed, 66 insertions(+)
create mode 100644 tests/nodedevschemadata/css_0_0_10000-invalid.xml
create mode 100644 tests/nodedevschemadata/css_0_0_fffe_mdev_types_channel_dev_addr.xml
create mode 100644 tests/nodedevschemadata/css_0_0_ffff_channel_dev_addr-invalid.xml
create mode 100644 tests/nodedevschemadata/css_0_0_ffff_channel_dev_addr.xml
create mode 120000 tests/nodedevxml2xmlout/css_0_0_fffe_mdev_types_channel_dev_addr.xml
create mode 120000 tests/nodedevxml2xmlout/css_0_0_ffff_channel_dev_addr.xml
diff --git a/tests/nodedevschemadata/css_0_0_10000-invalid.xml b/tests/nodedevschemadata/css_0_0_10000-invalid.xml
new file mode 100644
index 0000000000..740bb489a7
--- /dev/null
+++ b/tests/nodedevschemadata/css_0_0_10000-invalid.xml
@@ -0,0 +1,10 @@
+<device>
+ <name>css_0_0_10000</name>
+ <path>/sys/devices/css0/0.0.10000</path>
+ <parent>computer</parent>
+ <capability type='css'>
+ <cssid>0x0</cssid>
+ <ssid>0x0</ssid>
+ <devno>0x10000</devno>
+ </capability>
+</device>
diff --git a/tests/nodedevschemadata/css_0_0_fffe_mdev_types_channel_dev_addr.xml b/tests/nodedevschemadata/css_0_0_fffe_mdev_types_channel_dev_addr.xml
new file mode 100644
index 0000000000..198dcb0cb0
--- /dev/null
+++ b/tests/nodedevschemadata/css_0_0_fffe_mdev_types_channel_dev_addr.xml
@@ -0,0 +1,22 @@
+<device>
+ <name>css_0_0_fffe</name>
+ <path>/sys/devices/css0/0.0.fffe</path>
+ <parent>computer</parent>
+ <capability type='css'>
+ <cssid>0x0</cssid>
+ <ssid>0x0</ssid>
+ <devno>0xfffe</devno>
+ <channel_dev_addr>
+ <cssid>0x0</cssid>
+ <ssid>0x0</ssid>
+ <devno>0x0815</devno>
+ </channel_dev_addr>
+ <capability type='mdev_types'>
+ <type id='vfio_ccw-io'>
+ <name>I/O subchannel (Non-QDIO)</name>
+ <deviceAPI>vfio-ccw</deviceAPI>
+ <availableInstances>1</availableInstances>
+ </type>
+ </capability>
+ </capability>
+</device>
diff --git a/tests/nodedevschemadata/css_0_0_ffff_channel_dev_addr-invalid.xml b/tests/nodedevschemadata/css_0_0_ffff_channel_dev_addr-invalid.xml
new file mode 100644
index 0000000000..3f2c5558c7
--- /dev/null
+++ b/tests/nodedevschemadata/css_0_0_ffff_channel_dev_addr-invalid.xml
@@ -0,0 +1,15 @@
+<device>
+ <name>css_0_0_ffff</name>
+ <path>/sys/devices/css0/0.0.ffff</path>
+ <parent>computer</parent>
+ <capability type='css'>
+ <cssid>0x0</cssid>
+ <ssid>0x0</ssid>
+ <devno>0xffff</devno>
+ <channel_dev_addr>
+ <cssid>0x0</cssid>
+ <ssid>0x0</ssid>
+ <devno>0x10000</devno>
+ </channel_dev_addr>
+ </capability>
+</device>
diff --git a/tests/nodedevschemadata/css_0_0_ffff_channel_dev_addr.xml b/tests/nodedevschemadata/css_0_0_ffff_channel_dev_addr.xml
new file mode 100644
index 0000000000..17a77cb282
--- /dev/null
+++ b/tests/nodedevschemadata/css_0_0_ffff_channel_dev_addr.xml
@@ -0,0 +1,15 @@
+<device>
+ <name>css_0_0_ffff</name>
+ <path>/sys/devices/css0/0.0.ffff</path>
+ <parent>computer</parent>
+ <capability type='css'>
+ <cssid>0x0</cssid>
+ <ssid>0x0</ssid>
+ <devno>0xffff</devno>
+ <channel_dev_addr>
+ <cssid>0x0</cssid>
+ <ssid>0x0</ssid>
+ <devno>0x0815</devno>
+ </channel_dev_addr>
+ </capability>
+</device>
diff --git a/tests/nodedevxml2xmlout/css_0_0_fffe_mdev_types_channel_dev_addr.xml b/tests/nodedevxml2xmlout/css_0_0_fffe_mdev_types_channel_dev_addr.xml
new file mode 120000
index 0000000000..65ab582ee8
--- /dev/null
+++ b/tests/nodedevxml2xmlout/css_0_0_fffe_mdev_types_channel_dev_addr.xml
@@ -0,0 +1 @@
+../nodedevschemadata/css_0_0_fffe_mdev_types_channel_dev_addr.xml
\ No newline at end of file
diff --git a/tests/nodedevxml2xmlout/css_0_0_ffff_channel_dev_addr.xml b/tests/nodedevxml2xmlout/css_0_0_ffff_channel_dev_addr.xml
new file mode 120000
index 0000000000..cbfe719777
--- /dev/null
+++ b/tests/nodedevxml2xmlout/css_0_0_ffff_channel_dev_addr.xml
@@ -0,0 +1 @@
+../nodedevschemadata/css_0_0_ffff_channel_dev_addr.xml
\ No newline at end of file
diff --git a/tests/nodedevxml2xmltest.c b/tests/nodedevxml2xmltest.c
index 557347fb07..ad9562cc82 100644
--- a/tests/nodedevxml2xmltest.c
+++ b/tests/nodedevxml2xmltest.c
@@ -125,7 +125,9 @@ mymain(void)
DO_TEST("mdev_3627463d_b7f0_4fea_b468_f1da537d301b");
DO_TEST("ccw_0_0_ffff");
DO_TEST("css_0_0_ffff");
+ DO_TEST("css_0_0_ffff_channel_dev_addr");
DO_TEST("css_0_0_fffe_mdev_types");
+ DO_TEST("css_0_0_fffe_mdev_types_channel_dev_addr");
DO_TEST("ap_card07");
DO_TEST("ap_07_0038");
DO_TEST("ap_matrix");
--
2.39.1

View File

@ -0,0 +1,32 @@
From d82e4473a66da27d2c6f41f8ecadacbd00f44430 Mon Sep 17 00:00:00 2001
Message-Id: <d82e4473a66da27d2c6f41f8ecadacbd00f44430@dist-git>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Fri, 13 May 2022 12:31:00 +0200
Subject: [PATCH] nodedev: fix reported error msg in css cap XML parsing
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 78094a4bd1562fec73ae99c67ddcbedd83953d5c)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/conf/node_device_conf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 0bac0fde8d..a6ebf4b66f 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -1193,7 +1193,7 @@ virNodeDevCapCCWParseXML(xmlXPathContextPtr ctxt,
if (virStrToLong_uip(ssid, NULL, 0, &ccw_dev->ssid) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("invalid ssid value '%s' for '%s'"),
- cssid, def->name);
+ ssid, def->name);
return -1;
}
--
2.39.1

View File

@ -0,0 +1,35 @@
From 7c60078d7a6442dc8cb5a711876d28f70d892bff Mon Sep 17 00:00:00 2001
Message-Id: <7c60078d7a6442dc8cb5a711876d28f70d892bff@dist-git>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Mon, 23 May 2022 17:56:21 +0200
Subject: [PATCH] nodedev: prevent internal error on dev_busid parse
As "none" is a legal value represented in the sysfs attribute dev_busid
this patch prevents libvirt from incorrectly reporting an internal error.
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Suggested-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit e37c39747be0792d03c450e56ddb3c78d08cbf3e)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/node_device/node_device_udev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index 611a2592ca..b76e3de681 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1144,7 +1144,7 @@ udevProcessCSS(struct udev_device *device,
/* process optional channel devices information */
udevGetStringSysfsAttr(device, "dev_busid", &dev_busid);
- if (dev_busid != NULL)
+ if (dev_busid != NULL && STRNEQ(dev_busid, "none"))
def->caps->data.ccw_dev.channel_dev_addr = virCCWDeviceAddressFromString(dev_busid);
if (virNodeDeviceGetCSSDynamicCaps(def->sysfs_path, &def->caps->data.ccw_dev) < 0)
--
2.39.1

View File

@ -0,0 +1,140 @@
From ef8c30a091b5b0f08f9405878b49c21c5525dd0a Mon Sep 17 00:00:00 2001
Message-Id: <ef8c30a091b5b0f08f9405878b49c21c5525dd0a@dist-git>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Fri, 13 May 2022 12:31:12 +0200
Subject: [PATCH] nodedev: refactor ccw device address parsing from XML
Move ccw device address XML parsing into new method for later reuse.
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 4402295d371a62ab8632d23002283b8a7721e6a7)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/conf/node_device_conf.c | 96 ++++++++++++++++++++++---------------
1 file changed, 58 insertions(+), 38 deletions(-)
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 1e00f65717..8982368465 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -1141,6 +1141,58 @@ virNodeDevAPMatrixCapabilityParseXML(xmlXPathContextPtr ctxt,
}
+static int
+virNodeDevCCWDeviceAddressParseXML(xmlXPathContextPtr ctxt,
+ xmlNodePtr node,
+ const char *dev_name,
+ virCCWDeviceAddress *ccw_addr)
+{
+ VIR_XPATH_NODE_AUTORESTORE(ctxt)
+ g_autofree char *cssid = NULL;
+ g_autofree char *ssid = NULL;
+ g_autofree char *devno = NULL;
+
+ ctxt->node = node;
+
+ if (!(cssid = virXPathString("string(./cssid[1])", ctxt))) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("missing cssid value for '%s'"), dev_name);
+ return -1;
+ }
+ if (virStrToLong_uip(cssid, NULL, 0, &ccw_addr->cssid) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("invalid cssid value '%s' for '%s'"),
+ cssid, dev_name);
+ return -1;
+ }
+
+ if (!(ssid = virXPathString("string(./ssid[1])", ctxt))) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("missing ssid value for '%s'"), dev_name);
+ return -1;
+ }
+ if (virStrToLong_uip(ssid, NULL, 0, &ccw_addr->ssid) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("invalid ssid value '%s' for '%s'"),
+ ssid, dev_name);
+ return -1;
+ }
+
+ if (!(devno = virXPathString("string(./devno[1])", ctxt))) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("missing devno value for '%s'"), dev_name);
+ return -1;
+ }
+ if (virStrToLong_uip(devno, NULL, 16, &ccw_addr->devno) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("invalid devno value '%s' for '%s'"),
+ devno, dev_name);
+ return -1;
+ }
+
+ return 0;
+}
+
static int
virNodeDevCSSCapabilityParseXML(xmlXPathContextPtr ctxt,
xmlNodePtr node,
@@ -1178,50 +1230,18 @@ virNodeDevCapCCWParseXML(xmlXPathContextPtr ctxt,
g_autofree xmlNodePtr *nodes = NULL;
int n = 0;
size_t i = 0;
- g_autofree char *cssid = NULL;
- g_autofree char *ssid = NULL;
- g_autofree char *devno = NULL;
+ g_autofree virCCWDeviceAddress *ccw_addr = NULL;
ctxt->node = node;
- if (!(cssid = virXPathString("string(./cssid[1])", ctxt))) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("missing cssid value for '%s'"), def->name);
- return -1;
- }
-
- if (virStrToLong_uip(cssid, NULL, 0, &ccw_dev->cssid) < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("invalid cssid value '%s' for '%s'"),
- cssid, def->name);
- return -1;
- }
-
- if (!(ssid = virXPathString("string(./ssid[1])", ctxt))) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("missing ssid value for '%s'"), def->name);
- return -1;
- }
+ ccw_addr = g_new0(virCCWDeviceAddress, 1);
- if (virStrToLong_uip(ssid, NULL, 0, &ccw_dev->ssid) < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("invalid ssid value '%s' for '%s'"),
- ssid, def->name);
+ if (virNodeDevCCWDeviceAddressParseXML(ctxt, node, def->name, ccw_addr) < 0)
return -1;
- }
- if (!(devno = virXPathString("string(./devno[1])", ctxt))) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("missing devno value for '%s'"), def->name);
- return -1;
- }
-
- if (virStrToLong_uip(devno, NULL, 16, &ccw_dev->devno) < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("invalid devno value '%s' for '%s'"),
- devno, def->name);
- return -1;
- }
+ ccw_dev->cssid = ccw_addr->cssid;
+ ccw_dev->ssid = ccw_addr->ssid;
+ ccw_dev->devno = ccw_addr->devno;
if ((n = virXPathNodeSet("./capability", ctxt, &nodes)) < 0)
return -1;
--
2.39.1

View File

@ -0,0 +1,99 @@
From 286c821eee3b682d6aa4aeaa13aad92382708803 Mon Sep 17 00:00:00 2001
Message-Id: <286c821eee3b682d6aa4aeaa13aad92382708803@dist-git>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Fri, 13 May 2022 12:31:13 +0200
Subject: [PATCH] nodedev: refactor css XML parsing from ccw XML parsing
In preparation for easier extension later.
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 245ff2d6634b3afb0dbf0d295051e458095bfc80)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/conf/node_device_conf.c | 40 +++++++++++++++++++++++++++----------
1 file changed, 30 insertions(+), 10 deletions(-)
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 8982368465..fcb5be24e1 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -1193,6 +1193,31 @@ virNodeDevCCWDeviceAddressParseXML(xmlXPathContextPtr ctxt,
return 0;
}
+
+static int
+virNodeDevCapCCWParseXML(xmlXPathContextPtr ctxt,
+ virNodeDeviceDef *def,
+ xmlNodePtr node,
+ virNodeDevCapCCW *ccw_dev)
+{
+ VIR_XPATH_NODE_AUTORESTORE(ctxt)
+ g_autofree virCCWDeviceAddress *ccw_addr = NULL;
+
+ ctxt->node = node;
+
+ ccw_addr = g_new0(virCCWDeviceAddress, 1);
+
+ if (virNodeDevCCWDeviceAddressParseXML(ctxt, node, def->name, ccw_addr) < 0)
+ return -1;
+
+ ccw_dev->cssid = ccw_addr->cssid;
+ ccw_dev->ssid = ccw_addr->ssid;
+ ccw_dev->devno = ccw_addr->devno;
+
+ return 0;
+}
+
+
static int
virNodeDevCSSCapabilityParseXML(xmlXPathContextPtr ctxt,
xmlNodePtr node,
@@ -1221,7 +1246,7 @@ virNodeDevCSSCapabilityParseXML(xmlXPathContextPtr ctxt,
static int
-virNodeDevCapCCWParseXML(xmlXPathContextPtr ctxt,
+virNodeDevCapCSSParseXML(xmlXPathContextPtr ctxt,
virNodeDeviceDef *def,
xmlNodePtr node,
virNodeDevCapCCW *ccw_dev)
@@ -1230,19 +1255,12 @@ virNodeDevCapCCWParseXML(xmlXPathContextPtr ctxt,
g_autofree xmlNodePtr *nodes = NULL;
int n = 0;
size_t i = 0;
- g_autofree virCCWDeviceAddress *ccw_addr = NULL;
ctxt->node = node;
- ccw_addr = g_new0(virCCWDeviceAddress, 1);
-
- if (virNodeDevCCWDeviceAddressParseXML(ctxt, node, def->name, ccw_addr) < 0)
+ if (virNodeDevCapCCWParseXML(ctxt, def, node, ccw_dev) < 0)
return -1;
- ccw_dev->cssid = ccw_addr->cssid;
- ccw_dev->ssid = ccw_addr->ssid;
- ccw_dev->devno = ccw_addr->devno;
-
if ((n = virXPathNodeSet("./capability", ctxt, &nodes)) < 0)
return -1;
@@ -2282,9 +2300,11 @@ virNodeDevCapsDefParseXML(xmlXPathContextPtr ctxt,
ret = virNodeDevCapMdevParseXML(ctxt, def, node, &caps->data.mdev);
break;
case VIR_NODE_DEV_CAP_CCW_DEV:
- case VIR_NODE_DEV_CAP_CSS_DEV:
ret = virNodeDevCapCCWParseXML(ctxt, def, node, &caps->data.ccw_dev);
break;
+ case VIR_NODE_DEV_CAP_CSS_DEV:
+ ret = virNodeDevCapCSSParseXML(ctxt, def, node, &caps->data.ccw_dev);
+ break;
case VIR_NODE_DEV_CAP_AP_CARD:
ret = virNodeDevCapAPCardParseXML(ctxt, def, node,
&caps->data.ap_card);
--
2.39.1

View File

@ -0,0 +1,62 @@
From d370e2e984b4501060ea0d7a10629db0bfe51ef2 Mon Sep 17 00:00:00 2001
Message-Id: <d370e2e984b4501060ea0d7a10629db0bfe51ef2@dist-git>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Fri, 13 May 2022 12:31:11 +0200
Subject: [PATCH] nodedev: refactor css format from ccw format method
In preparation for easier extension later.
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit c5864885060b136214b4bcef25d604cc3d147014)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/conf/node_device_conf.c | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index a6ebf4b66f..1e00f65717 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -632,10 +632,21 @@ virNodeDeviceCapCCWDefFormat(virBuffer *buf,
data->ccw_dev.ssid);
virBufferAsprintf(buf, "<devno>0x%04x</devno>\n",
data->ccw_dev.devno);
- if (data->ccw_dev.flags & VIR_NODE_DEV_CAP_FLAG_CSS_MDEV)
+}
+
+
+static void
+virNodeDeviceCapCSSDefFormat(virBuffer *buf,
+ const virNodeDevCapData *data)
+{
+ virNodeDevCapCCW ccw_dev = data->ccw_dev;
+
+ virNodeDeviceCapCCWDefFormat(buf, data);
+
+ if (ccw_dev.flags & VIR_NODE_DEV_CAP_FLAG_CSS_MDEV)
virNodeDeviceCapMdevTypesFormat(buf,
- data->ccw_dev.mdev_types,
- data->ccw_dev.nmdev_types);
+ ccw_dev.mdev_types,
+ ccw_dev.nmdev_types);
}
@@ -724,9 +735,11 @@ virNodeDeviceDefFormat(const virNodeDeviceDef *def)
virNodeDeviceCapMdevDefFormat(&buf, data);
break;
case VIR_NODE_DEV_CAP_CCW_DEV:
- case VIR_NODE_DEV_CAP_CSS_DEV:
virNodeDeviceCapCCWDefFormat(&buf, data);
break;
+ case VIR_NODE_DEV_CAP_CSS_DEV:
+ virNodeDeviceCapCSSDefFormat(&buf, data);
+ break;
case VIR_NODE_DEV_CAP_VDPA:
virNodeDeviceCapVDPADefFormat(&buf, data);
break;
--
2.39.1

View File

@ -0,0 +1,79 @@
From aebcc09c7060f6eace93821c6a782031cf107d85 Mon Sep 17 00:00:00 2001
Message-ID: <aebcc09c7060f6eace93821c6a782031cf107d85.1687452713.git.jdenemar@redhat.com>
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Mon, 8 May 2023 19:10:46 +0200
Subject: [PATCH] nodedev: update transient mdevs
Instead of updating defined mdevs only add another update for active
devices as well to cover transient mdev devices as well.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2143158
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2143160
(cherry picked from commit 44a0f2f0c8ff5e78c238013ed297b8fce223ac5a)
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
---
src/node_device/node_device_driver.c | 31 ++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
index e6ab4bb94c..943f6121a0 100644
--- a/src/node_device/node_device_driver.c
+++ b/src/node_device/node_device_driver.c
@@ -1651,6 +1651,24 @@ virMdevctlListDefined(virNodeDeviceDef ***devs, char **errmsg)
}
+static int
+virMdevctlListActive(virNodeDeviceDef ***devs, char **errmsg)
+{
+ int status;
+ g_autofree char *output = NULL;
+ g_autoptr(virCommand) cmd = nodeDeviceGetMdevctlListCommand(false, &output, errmsg);
+
+ if (virCommandRun(cmd, &status) < 0 || status != 0) {
+ return -1;
+ }
+
+ if (!output)
+ return -1;
+
+ return nodeDeviceParseMdevctlJSON(output, devs);
+}
+
+
typedef struct _virMdevctlForEachData virMdevctlForEachData;
struct _virMdevctlForEachData {
int ndefs;
@@ -1712,6 +1730,8 @@ int
nodeDeviceUpdateMediatedDevices(void)
{
g_autofree virNodeDeviceDef **defs = NULL;
+ g_autofree virNodeDeviceDef **act_defs = NULL;
+ int act_ndefs = 0;
g_autofree char *errmsg = NULL;
g_autofree char *mdevctl = NULL;
virMdevctlForEachData data = { 0, };
@@ -1738,6 +1758,17 @@ nodeDeviceUpdateMediatedDevices(void)
if (nodeDeviceUpdateMediatedDevice(defs[i]) < 0)
return -1;
+ /* Update active/transient mdev devices */
+ if ((act_ndefs = virMdevctlListActive(&act_defs, &errmsg)) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("failed to query mdevs from mdevctl: %1$s"), errmsg);
+ return -1;
+ }
+
+ for (i = 0; i < act_ndefs; i++)
+ if (nodeDeviceUpdateMediatedDevice(act_defs[i]) < 0)
+ return -1;
+
return 0;
}
--
2.41.0

View File

@ -0,0 +1,55 @@
From dc6ab8b51ff53ba22abfb84f24641aa87320038a Mon Sep 17 00:00:00 2001
Message-Id: <dc6ab8b51ff53ba22abfb84f24641aa87320038a@dist-git>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Tue, 8 Mar 2022 17:28:38 +0000
Subject: [PATCH] nwfilter: fix crash when counting number of network filters
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The virNWFilterObjListNumOfNWFilters method iterates over the
driver->nwfilters, accessing virNWFilterObj instances. As such
it needs to be protected against concurrent modification of
the driver->nwfilters object.
This API allows unprivileged users to connect, so users with
read-only access to libvirt can cause a denial of service
crash if they are able to race with a call of virNWFilterUndefine.
Since network filters are usually statically defined, this is
considered a low severity problem.
This is assigned CVE-2022-0897.
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit a4947e8f63c3e6b7b067b444f3d6cf674c0d7f36)
https://bugzilla.redhat.com/show_bug.cgi?id=2063902
---
src/nwfilter/nwfilter_driver.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c
index 200451d6b1..956aca6421 100644
--- a/src/nwfilter/nwfilter_driver.c
+++ b/src/nwfilter/nwfilter_driver.c
@@ -478,11 +478,15 @@ nwfilterLookupByName(virConnectPtr conn,
static int
nwfilterConnectNumOfNWFilters(virConnectPtr conn)
{
+ int ret;
if (virConnectNumOfNWFiltersEnsureACL(conn) < 0)
return -1;
- return virNWFilterObjListNumOfNWFilters(driver->nwfilters, conn,
- virConnectNumOfNWFiltersCheckACL);
+ nwfilterDriverLock();
+ ret = virNWFilterObjListNumOfNWFilters(driver->nwfilters, conn,
+ virConnectNumOfNWFiltersCheckACL);
+ nwfilterDriverUnlock();
+ return ret;
}
--
2.35.1

View File

@ -0,0 +1,155 @@
From 2595c7716b19214b2729b41b86656f96a2cd18bc Mon Sep 17 00:00:00 2001
Message-Id: <2595c7716b19214b2729b41b86656f96a2cd18bc@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 22 Jun 2022 15:21:30 +0200
Subject: [PATCH] qemu: Add qemuDomainSetMaxMemLock helper
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
qemuDomainAdjustMaxMemLock combined computing the desired limit with
applying it. This patch separates the code to apply a memory locking
limit to a new qemuDomainSetMaxMemLock helper for better reusability.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit dff51c7f5760ded8235076f55d082fe4363f2f78)
https://bugzilla.redhat.com/show_bug.cgi?id=2089433
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_domain.c | 95 ++++++++++++++++++++++++++----------------
src/qemu/qemu_domain.h | 3 ++
2 files changed, 61 insertions(+), 37 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index ee7d310903..a81789f194 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9261,6 +9261,61 @@ qemuDomainGetMemLockLimitBytes(virDomainDef *def,
}
+/**
+ * qemuDomainSetMaxMemLock:
+ * @vm: domain
+ * @limit: the desired memory locking limit
+ * @origPtr: where to store (or load from) the original value of the limit
+ *
+ * Set the memory locking limit for @vm unless it's already big enough. If
+ * @origPtr is non-NULL, the original value of the limit will be store there
+ * and can be restored by calling this function with @limit == 0.
+ *
+ * Returns: 0 on success, -1 otherwise.
+ */
+int
+qemuDomainSetMaxMemLock(virDomainObj *vm,
+ unsigned long long limit,
+ unsigned long long *origPtr)
+{
+ unsigned long long current = 0;
+
+ if (virProcessGetMaxMemLock(vm->pid, &current) < 0)
+ return -1;
+
+ if (limit > 0) {
+ VIR_DEBUG("Requested memory lock limit: %llu", limit);
+ /* If the limit is already high enough, we can assume
+ * that some external process is taking care of managing
+ * process limits and we shouldn't do anything ourselves:
+ * we're probably running in a containerized environment
+ * where we don't have enough privilege anyway */
+ if (current >= limit) {
+ VIR_DEBUG("Current limit %llu is big enough", current);
+ return 0;
+ }
+
+ /* If this is the first time adjusting the limit, save the current
+ * value so that we can restore it once memory locking is no longer
+ * required */
+ if (origPtr && *origPtr == 0)
+ *origPtr = current;
+ } else {
+ /* Once memory locking is no longer required, we can restore the
+ * original, usually very low, limit. But only if we actually stored
+ * the original limit before. */
+ if (!origPtr || *origPtr == 0)
+ return 0;
+
+ limit = *origPtr;
+ *origPtr = 0;
+ VIR_DEBUG("Resetting memory lock limit back to %llu", limit);
+ }
+
+ return virProcessSetMaxMemLock(vm->pid, limit);
+}
+
+
/**
* qemuDomainAdjustMaxMemLock:
* @vm: domain
@@ -9282,43 +9337,9 @@ int
qemuDomainAdjustMaxMemLock(virDomainObj *vm,
bool forceVFIO)
{
- qemuDomainObjPrivate *priv = vm->privateData;
- unsigned long long currentMemLock = 0;
- unsigned long long desiredMemLock = 0;
-
- desiredMemLock = qemuDomainGetMemLockLimitBytes(vm->def, forceVFIO);
- if (virProcessGetMaxMemLock(vm->pid, &currentMemLock) < 0)
- return -1;
-
- if (desiredMemLock > 0) {
- if (currentMemLock < desiredMemLock) {
- /* If this is the first time adjusting the limit, save the current
- * value so that we can restore it once memory locking is no longer
- * required */
- if (priv->originalMemlock == 0) {
- priv->originalMemlock = currentMemLock;
- }
- } else {
- /* If the limit is already high enough, we can assume
- * that some external process is taking care of managing
- * process limits and we shouldn't do anything ourselves:
- * we're probably running in a containerized environment
- * where we don't have enough privilege anyway */
- desiredMemLock = 0;
- }
- } else {
- /* Once memory locking is no longer required, we can restore the
- * original, usually very low, limit */
- desiredMemLock = priv->originalMemlock;
- priv->originalMemlock = 0;
- }
-
- if (desiredMemLock > 0 &&
- virProcessSetMaxMemLock(vm->pid, desiredMemLock) < 0) {
- return -1;
- }
-
- return 0;
+ return qemuDomainSetMaxMemLock(vm,
+ qemuDomainGetMemLockLimitBytes(vm->def, forceVFIO),
+ &QEMU_DOMAIN_PRIVATE(vm)->originalMemlock);
}
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index e9497d20de..6d1d23439a 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -789,6 +789,9 @@ int qemuDomainAdjustMaxMemLock(virDomainObj *vm,
bool forceVFIO);
int qemuDomainAdjustMaxMemLockHostdev(virDomainObj *vm,
virDomainHostdevDef *hostdev);
+int qemuDomainSetMaxMemLock(virDomainObj *vm,
+ unsigned long long limit,
+ unsigned long long *origPtr);
int qemuDomainDefValidateMemoryHotplug(const virDomainDef *def,
const virDomainMemoryDef *mem);
--
2.35.1

View File

@ -1,108 +0,0 @@
From 64ca9249f100a61cf39e800ad67f0dd520aabb5d Mon Sep 17 00:00:00 2001
Message-ID: <64ca9249f100a61cf39e800ad67f0dd520aabb5d.1737030652.git.jdenemar@redhat.com>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Fri, 20 Dec 2024 12:28:24 +0100
Subject: [PATCH] qemu: Add support for direct and extended tlbflush features
They require special handling since they are dependent on the basic
tlbflush feature itself and therefore are not handled automatically as
part of virDomainHyperv enum, just like the stimer-direct feature.
Resolves: https://issues.redhat.com/browse/RHEL-7122
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 247357cc292a83c8628592562cbb4fa621cdc5b0)
https://issues.redhat.com/browse/RHEL-7122
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
src/qemu/qemu_command.c | 6 +++++
src/qemu/qemu_process.c | 24 +++++++++++++++++++
.../qemuxmlconfdata/hyperv.x86_64-latest.args | 2 +-
tests/qemuxmlconfdata/hyperv.xml | 5 +++-
4 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index dcb9c4934e..1f28de6194 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6350,6 +6350,12 @@ qemuBuildCpuCommandLine(virCommand *cmd,
if ((i == VIR_DOMAIN_HYPERV_STIMER) &&
(def->hyperv_stimer_direct == VIR_TRISTATE_SWITCH_ON))
virBufferAsprintf(&buf, ",%s=on", VIR_CPU_x86_HV_STIMER_DIRECT);
+ if (i == VIR_DOMAIN_HYPERV_TLBFLUSH) {
+ if (def->hyperv_tlbflush_direct == VIR_TRISTATE_SWITCH_ON)
+ virBufferAsprintf(&buf, ",%s=on", VIR_CPU_x86_HV_TLBFLUSH_DIRECT);
+ if (def->hyperv_tlbflush_extended == VIR_TRISTATE_SWITCH_ON)
+ virBufferAsprintf(&buf, ",%s=on", VIR_CPU_x86_HV_TLBFLUSH_EXT);
+ }
break;
case VIR_DOMAIN_HYPERV_SPINLOCKS:
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index bee7a39e4e..7297263d33 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4281,6 +4281,30 @@ qemuProcessVerifyHypervFeatures(virDomainDef *def,
"direct");
return -1;
}
+ if (i == VIR_DOMAIN_HYPERV_TLBFLUSH) {
+ if (def->hyperv_tlbflush_direct == VIR_TRISTATE_SWITCH_ON) {
+ rc = virCPUDataCheckFeature(cpu, VIR_CPU_x86_HV_TLBFLUSH_DIRECT);
+ if (rc < 0)
+ return -1;
+ if (rc == 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("host doesn't support hyperv tlbflush '%1$s' feature"),
+ "direct");
+ return -1;
+ }
+ }
+ if (def->hyperv_tlbflush_extended == VIR_TRISTATE_SWITCH_ON) {
+ rc = virCPUDataCheckFeature(cpu, VIR_CPU_x86_HV_TLBFLUSH_EXT);
+ if (rc < 0)
+ return -1;
+ if (rc == 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("host doesn't support hyperv tlbflush '%1$s' feature"),
+ "extended");
+ return -1;
+ }
+ }
+ }
continue;
}
diff --git a/tests/qemuxmlconfdata/hyperv.x86_64-latest.args b/tests/qemuxmlconfdata/hyperv.x86_64-latest.args
index 2aafafb340..5a32b80e71 100644
--- a/tests/qemuxmlconfdata/hyperv.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/hyperv.x86_64-latest.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=on \
-accel tcg \
--cpu 'qemu64,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x2fff,hv-vpindex=on,hv-runtime=on,hv-synic=on,hv-stimer=on,hv-reset=on,hv-vendor-id=KVM Hv,hv-frequencies=on,hv-reenlightenment=on,hv-tlbflush=on,hv-ipi=on,hv-evmcs=on,hv-avic=on,hv-emsr-bitmap=on,hv-xmm-input=on' \
+-cpu 'qemu64,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x2fff,hv-vpindex=on,hv-runtime=on,hv-synic=on,hv-stimer=on,hv-reset=on,hv-vendor-id=KVM Hv,hv-frequencies=on,hv-reenlightenment=on,hv-tlbflush=on,hv-tlbflush-direct=on,hv-tlbflush-ext=on,hv-ipi=on,hv-evmcs=on,hv-avic=on,hv-emsr-bitmap=on,hv-xmm-input=on' \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/hyperv.xml b/tests/qemuxmlconfdata/hyperv.xml
index a1e3cbbdf8..8c323f6578 100644
--- a/tests/qemuxmlconfdata/hyperv.xml
+++ b/tests/qemuxmlconfdata/hyperv.xml
@@ -22,7 +22,10 @@
<vendor_id state='on' value='KVM Hv'/>
<frequencies state='on'/>
<reenlightenment state='on'/>
- <tlbflush state='on'/>
+ <tlbflush state='on'>
+ <direct state='on'/>
+ <extended state='on'/>
+ </tlbflush>
<ipi state='on'/>
<evmcs state='on'/>
<avic state='on'/>
--
2.47.1

View File

@ -1,154 +0,0 @@
From 850e6f2459fa256a80988009a4fedfb9a52b9aed Mon Sep 17 00:00:00 2001
Message-ID: <850e6f2459fa256a80988009a4fedfb9a52b9aed.1734700218.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 18 Dec 2024 11:07:26 +0100
Subject: [PATCH] qemu: Enable I/O APIC even more frequently
In my previous commit v10.10.0-48-g2d222ecf6e I've made us enable
I/O APIC when there is an IOMMU with EIM. This works well. What
does not work is case when there's just an IOMMU without EIM but
with 256+ vCPUS. Problem is that post parsing happens in two
stages: general domain post parse (where
qemuDomainDefEnableDefaultFeatures() is called) and then per
device post parse (where qemuDomainIOMMUDefPostParse() is
called). Now, in aforementioned case it is the device post parse
phase where EIM is enabled but the code that would enable
VIR_DOMAIN_FEATURE_IOAPIC has already run.
To resolve this, make the domain post parse callback "foresee"
the future enabling of EIM so that it can turn on I/O APIC
beforehand.
Resolves: https://issues.redhat.com/browse/RHEL-65844
Fixes: 2d222ecf6e73614a400b830ac56e9aaa1bc55ecc
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 0162f2008e36df489f6f04e4d6002543acfa171d)
https://issues.redhat.com/browse/RHEL-65844
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_postparse.c | 21 +++++++++---
...m-autoadd-v2.x86_64-latest.abi-update.args | 1 +
...im-autoadd-v2.x86_64-latest.abi-update.xml | 1 +
.../intel-iommu-eim-autoadd-v2.xml | 32 +++++++++++++++++++
tests/qemuxmlconftest.c | 1 +
5 files changed, 51 insertions(+), 5 deletions(-)
create mode 120000 tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.x86_64-latest.abi-update.args
create mode 120000 tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.x86_64-latest.abi-update.xml
create mode 100644 tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.xml
diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c
index f48f172c37..049a6ef2dc 100644
--- a/src/qemu/qemu_postparse.c
+++ b/src/qemu/qemu_postparse.c
@@ -783,6 +783,15 @@ qemuDomainPstoreDefPostParse(virDomainPstoreDef *pstore,
}
+static bool
+qemuDomainNeedsIOMMUWithEIM(const virDomainDef *def)
+{
+ return ARCH_IS_X86(def->os.arch) &&
+ virDomainDefGetVcpusMax(def) > QEMU_MAX_VCPUS_WITHOUT_EIM &&
+ qemuDomainIsQ35(def);
+}
+
+
static int
qemuDomainIOMMUDefPostParse(virDomainIOMMUDef *iommu,
const virDomainDef *def,
@@ -793,9 +802,7 @@ qemuDomainIOMMUDefPostParse(virDomainIOMMUDef *iommu,
* (EIM) is not explicitly turned off, let's enable it. If we didn't then
* guest will have troubles with interrupts. */
if (parseFlags & VIR_DOMAIN_DEF_PARSE_ABI_UPDATE &&
- ARCH_IS_X86(def->os.arch) &&
- virDomainDefGetVcpusMax(def) > QEMU_MAX_VCPUS_WITHOUT_EIM &&
- qemuDomainIsQ35(def) &&
+ qemuDomainNeedsIOMMUWithEIM(def) &&
iommu && iommu->model == VIR_DOMAIN_IOMMU_MODEL_INTEL) {
/* eim requires intremap. */
@@ -1548,9 +1555,13 @@ qemuDomainDefEnableDefaultFeatures(virDomainDef *def,
def->features[VIR_DOMAIN_FEATURE_GIC] = VIR_TRISTATE_SWITCH_ON;
}
- /* IOMMU with intremap requires split I/O APIC */
+ /* IOMMU with intremap requires split I/O APIC. But it may happen that
+ * domain already has IOMMU without inremap. This will be fixed in
+ * qemuDomainIOMMUDefPostParse() but there domain definition can't be
+ * modified so change it now. */
if (def->iommu &&
- def->iommu->intremap == VIR_TRISTATE_SWITCH_ON &&
+ (def->iommu->intremap == VIR_TRISTATE_SWITCH_ON ||
+ qemuDomainNeedsIOMMUWithEIM(def)) &&
def->features[VIR_DOMAIN_FEATURE_IOAPIC] == VIR_DOMAIN_IOAPIC_NONE) {
def->features[VIR_DOMAIN_FEATURE_IOAPIC] = VIR_DOMAIN_IOAPIC_QEMU;
}
diff --git a/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.x86_64-latest.abi-update.args b/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.x86_64-latest.abi-update.args
new file mode 120000
index 0000000000..a7fdee3d71
--- /dev/null
+++ b/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.x86_64-latest.abi-update.args
@@ -0,0 +1 @@
+intel-iommu-eim-autoadd.x86_64-latest.abi-update.args
\ No newline at end of file
diff --git a/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.x86_64-latest.abi-update.xml b/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.x86_64-latest.abi-update.xml
new file mode 120000
index 0000000000..928ea1b4c8
--- /dev/null
+++ b/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.x86_64-latest.abi-update.xml
@@ -0,0 +1 @@
+intel-iommu-eim-autoadd.x86_64-latest.abi-update.xml
\ No newline at end of file
diff --git a/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.xml b/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.xml
new file mode 100644
index 0000000000..b39ee55786
--- /dev/null
+++ b/tests/qemuxmlconfdata/intel-iommu-eim-autoadd-v2.xml
@@ -0,0 +1,32 @@
+<domain type='kvm'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>288</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu64</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='pci' index='0' model='pcie-root'/>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='sata' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
+ </controller>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <iommu model="intel"/>
+ <audio id='1' type='none'/>
+ <watchdog model='itco' action='reset'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index f3c8d0ae34..53a0237a42 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -2771,6 +2771,7 @@ mymain(void)
DO_TEST_CAPS_LATEST("intel-iommu-dma-translation");
DO_TEST_CAPS_LATEST_PARSE_ERROR("intel-iommu-wrong-machine");
DO_TEST_CAPS_LATEST_ABI_UPDATE("intel-iommu-eim-autoadd");
+ DO_TEST_CAPS_LATEST_ABI_UPDATE("intel-iommu-eim-autoadd-v2");
DO_TEST_CAPS_ARCH_LATEST("iommu-smmuv3", "aarch64");
DO_TEST_CAPS_LATEST("virtio-iommu-x86_64");
DO_TEST_CAPS_VER_PARSE_ERROR("virtio-iommu-x86_64", "6.1.0");
--
2.47.1

View File

@ -1,61 +0,0 @@
From 29a1c56854c6bcd7b8f91952d3060fb4314a2968 Mon Sep 17 00:00:00 2001
Message-ID: <29a1c56854c6bcd7b8f91952d3060fb4314a2968.1734433245.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Thu, 12 Dec 2024 10:02:43 +0100
Subject: [PATCH] qemu: Enable I/O APIC if needed
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is a follow up of my previous commits. If the number of
vCPUs exceeds some arbitrary value (255) then QEMU requires IOMMU
with EIM and intremap enabled. But in turn, intremap IOMMU
requires split I/O APIC (per virDomainDefIOMMUValidate()). Since
after my previous commits (e.g. v10.10.0-rc1~183) IOMMU is added
automagically, the I/O APIC can be also enabled automagically.
Relates to: https://issues.redhat.com/browse/RHEL-65844
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 2d222ecf6e73614a400b830ac56e9aaa1bc55ecc)
https://issues.redhat.com/browse/RHEL-65844
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_postparse.c | 7 +++++++
tests/qemuxmlconfdata/intel-iommu-eim-autoadd.xml | 3 ---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c
index 03b5ef825a..f48f172c37 100644
--- a/src/qemu/qemu_postparse.c
+++ b/src/qemu/qemu_postparse.c
@@ -1547,6 +1547,13 @@ qemuDomainDefEnableDefaultFeatures(virDomainDef *def,
* capabilities, we still want to enable this */
def->features[VIR_DOMAIN_FEATURE_GIC] = VIR_TRISTATE_SWITCH_ON;
}
+
+ /* IOMMU with intremap requires split I/O APIC */
+ if (def->iommu &&
+ def->iommu->intremap == VIR_TRISTATE_SWITCH_ON &&
+ def->features[VIR_DOMAIN_FEATURE_IOAPIC] == VIR_DOMAIN_IOAPIC_NONE) {
+ def->features[VIR_DOMAIN_FEATURE_IOAPIC] = VIR_DOMAIN_IOAPIC_QEMU;
+ }
}
diff --git a/tests/qemuxmlconfdata/intel-iommu-eim-autoadd.xml b/tests/qemuxmlconfdata/intel-iommu-eim-autoadd.xml
index fa3aaf0d44..5abc40e566 100644
--- a/tests/qemuxmlconfdata/intel-iommu-eim-autoadd.xml
+++ b/tests/qemuxmlconfdata/intel-iommu-eim-autoadd.xml
@@ -8,9 +8,6 @@
<type arch='x86_64' machine='q35'>hvm</type>
<boot dev='hd'/>
</os>
- <features>
- <ioapic driver='qemu'/>
- </features>
<cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model>
</cpu>
--
2.47.1

View File

@ -1,66 +0,0 @@
From 62e633d298639fd7b7e9c12e6b9d095872c8e6a3 Mon Sep 17 00:00:00 2001
Message-ID: <62e633d298639fd7b7e9c12e6b9d095872c8e6a3.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 13:03:58 +0100
Subject: [PATCH] qemu: Handle quirks of 'device' field of BLOCK_IO_ERROR event
in monitor code
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
BLOCK_IO_ERROR's 'device' field is an empty string in case when it isn't
applicable as it was originally mandatory in the qemu API docs.
Move the logic that convert's empty string back to NULL from
'qemuProcessHandleIOError()' to 'qemuMonitorJSONHandleIOError()'
This also fixes a hypothetical NULL-dereference if qemu would indeed
report an IO error without the 'device' field present.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 2f8359f827ce92e0b454eca55640a928367131fd)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_monitor_json.c | 9 ++++++++-
src/qemu/qemu_process.c | 3 ---
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 1b4288b744..345e9383e3 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -708,8 +708,15 @@ qemuMonitorJSONHandleIOError(qemuMonitor *mon, virJSONValue *data)
action = "ignore";
}
- if ((device = virJSONValueObjectGetString(data, "device")) == NULL)
+ if ((device = virJSONValueObjectGetString(data, "device")) == NULL) {
VIR_WARN("missing device in disk io error event");
+ } else {
+ /* 'device' was documented as mandatory in the qemu event, but later became
+ * optional, in which case an empty string is sent by qemu. Convert it back
+ * to NULL */
+ if (*device == '\0')
+ device = NULL;
+ }
nodename = virJSONValueObjectGetString(data, "node-name");
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index c618fbf69c..b4f6d358f3 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -840,9 +840,6 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
virObjectLock(vm);
priv = QEMU_DOMAIN_PRIVATE(vm);
- if (*diskAlias == '\0')
- diskAlias = NULL;
-
if (diskAlias)
disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, diskAlias, NULL);
else if (nodename)
--
2.48.1

View File

@ -0,0 +1,38 @@
From 08fef741d85ecfb3493c47f5f1334f91c30e3233 Mon Sep 17 00:00:00 2001
Message-Id: <08fef741d85ecfb3493c47f5f1334f91c30e3233@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 9 Feb 2022 11:08:42 +0100
Subject: [PATCH] qemu: Ignore missing vm.unprivileged_userfaultfd sysctl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Older kernels did not support this sysctl, but they did not restrict
userfaultfd in any way so everything worked as if
vm.unprivileged_userfaultfd was set to 1. Thus we can safely ignore
errors when setting the value.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 558f00397a0d46ad22bf53a22a40ed6fc4fdb5eb)
https://bugzilla.redhat.com/show_bug.cgi?id=2148578
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/postcopy-migration.sysctl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/postcopy-migration.sysctl b/src/qemu/postcopy-migration.sysctl
index aa8f015ae0..db3f11e49f 100644
--- a/src/qemu/postcopy-migration.sysctl
+++ b/src/qemu/postcopy-migration.sysctl
@@ -3,4 +3,4 @@
# privileged processes.
# It can be safely overridden by a file in /etc/sysctl.d/ in case post-copy
# migration is not used on the host.
-vm.unprivileged_userfaultfd = 1
+-vm.unprivileged_userfaultfd = 1
--
2.39.0

View File

@ -0,0 +1,105 @@
From 85b7d8295d72214b08f0fff93c473baaa88a569b Mon Sep 17 00:00:00 2001
Message-Id: <85b7d8295d72214b08f0fff93c473baaa88a569b@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 14 Feb 2022 15:57:21 +0100
Subject: [PATCH] qemu: Make 'struct _qemuMonitorMessage' private
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Move the declaration of the struct into 'qemu_monitor_priv.h' as other
code has no business in peeking into the monitor messages.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit f9ae469a6ebb17e0990096e826f049c1c46cd760)
https://bugzilla.redhat.com/show_bug.cgi?id=2170472
---
src/qemu/qemu_monitor.h | 14 --------------
src/qemu/qemu_monitor_json.c | 3 +++
src/qemu/qemu_monitor_priv.h | 16 ++++++++++++++++
tests/qemucapsprobemock.c | 3 +++
4 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index a4a4edf5a6..d00967d84f 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -34,21 +34,7 @@
#include "virenum.h"
typedef struct _qemuMonitor qemuMonitor;
-
typedef struct _qemuMonitorMessage qemuMonitorMessage;
-struct _qemuMonitorMessage {
- int txFD;
-
- const char *txBuffer;
- int txOffset;
- int txLength;
-
- /* Used by the JSON monitor to hold reply / error */
- void *rxObject;
-
- /* True if rxObject is ready, or a fatal error occurred on the monitor channel */
- bool finished;
-};
typedef enum {
QEMU_MONITOR_EVENT_PANIC_INFO_TYPE_NONE = 0,
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 34a46b9b41..7d8755246f 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -44,6 +44,9 @@
# include "libvirt_qemu_probes.h"
#endif
+#define LIBVIRT_QEMU_MONITOR_PRIV_H_ALLOW
+#include "qemu_monitor_priv.h"
+
#define VIR_FROM_THIS VIR_FROM_QEMU
VIR_LOG_INIT("qemu.qemu_monitor_json");
diff --git a/src/qemu/qemu_monitor_priv.h b/src/qemu/qemu_monitor_priv.h
index 31bb3526b9..6115f830de 100644
--- a/src/qemu/qemu_monitor_priv.h
+++ b/src/qemu/qemu_monitor_priv.h
@@ -24,5 +24,21 @@
#include "qemu_monitor.h"
+
+struct _qemuMonitorMessage {
+ int txFD;
+
+ const char *txBuffer;
+ int txOffset;
+ int txLength;
+
+ /* Used by the JSON monitor to hold reply / error */
+ void *rxObject;
+
+ /* True if rxObject is ready, or a fatal error occurred on the monitor channel */
+ bool finished;
+};
+
+
void
qemuMonitorResetCommandID(qemuMonitor *mon);
diff --git a/tests/qemucapsprobemock.c b/tests/qemucapsprobemock.c
index 915036d178..2717ed5d84 100644
--- a/tests/qemucapsprobemock.c
+++ b/tests/qemucapsprobemock.c
@@ -25,6 +25,9 @@
#include "qemu/qemu_monitor.h"
#include "qemu/qemu_monitor_json.h"
+#define LIBVIRT_QEMU_MONITOR_PRIV_H_ALLOW
+#include "qemu/qemu_monitor_priv.h"
+
#define REAL_SYM(realFunc) \
do { \
if (!realFunc && !(realFunc = dlsym(RTLD_NEXT, __FUNCTION__))) { \
--
2.40.1

View File

@ -1,93 +0,0 @@
From 88fab9d6fe37abb85c3c4b51c046b49e1601b5da Mon Sep 17 00:00:00 2001
Message-ID: <88fab9d6fe37abb85c3c4b51c046b49e1601b5da.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 13:42:36 +0100
Subject: [PATCH] qemu: Rename 'diskAlias' to 'device' in qemu IO error event
handling
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The field is named 'device' in the event so unify our naming.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 2d6bd6f05fc57839093850ebfc06c9b4e02b4f67)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_monitor.c | 4 ++--
src/qemu/qemu_monitor.h | 4 ++--
src/qemu/qemu_process.c | 6 +++---
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 79bd91b539..e98da5fbff 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -1127,7 +1127,7 @@ qemuMonitorEmitWatchdog(qemuMonitor *mon, int action)
void
qemuMonitorEmitIOError(qemuMonitor *mon,
- const char *diskAlias,
+ const char *device,
const char *nodename,
int action,
const char *reason)
@@ -1135,7 +1135,7 @@ qemuMonitorEmitIOError(qemuMonitor *mon,
VIR_DEBUG("mon=%p", mon);
QEMU_MONITOR_CALLBACK(mon, domainIOError, mon->vm,
- diskAlias, nodename, action, reason);
+ device, nodename, action, reason);
}
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 89a59dfd27..0ab60f286d 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -206,7 +206,7 @@ typedef void (*qemuMonitorDomainWatchdogCallback)(qemuMonitor *mon,
int action);
typedef void (*qemuMonitorDomainIOErrorCallback)(qemuMonitor *mon,
virDomainObj *vm,
- const char *diskAlias,
+ const char *device,
const char *nodename,
int action,
const char *reason);
@@ -450,7 +450,7 @@ void qemuMonitorEmitResume(qemuMonitor *mon);
void qemuMonitorEmitRTCChange(qemuMonitor *mon, long long offset);
void qemuMonitorEmitWatchdog(qemuMonitor *mon, int action);
void qemuMonitorEmitIOError(qemuMonitor *mon,
- const char *diskAlias,
+ const char *device,
const char *nodename,
int action,
const char *reason);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index b4f6d358f3..3861d91228 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -824,7 +824,7 @@ qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUSED,
static void
qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
virDomainObj *vm,
- const char *diskAlias,
+ const char *device,
const char *nodename,
int action,
const char *reason)
@@ -840,8 +840,8 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
virObjectLock(vm);
priv = QEMU_DOMAIN_PRIVATE(vm);
- if (diskAlias)
- disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, diskAlias, NULL);
+ if (device)
+ disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, device, NULL);
else if (nodename)
disk = qemuDomainDiskLookupByNodename(vm->def, NULL, nodename, NULL);
else
--
2.48.1

View File

@ -0,0 +1,72 @@
From fa7cff4e684ededd184976d4fdf217cc155825b8 Mon Sep 17 00:00:00 2001
Message-Id: <fa7cff4e684ededd184976d4fdf217cc155825b8@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Mon, 31 Jan 2022 12:55:47 +0100
Subject: [PATCH] qemu: Validate domain definition even on migration
When we are about to spawn QEMU, we validate the domain
definition against qemuCaps. Except when domain is/was already
running before (i.e. on incoming migration, snapshots, resume
from a file). However, especially on incoming migration it may
happen that the destination QEMU is different to the source
QEMU, e.g. the destination QEMU may have some devices disabled.
And we have a function that validates devices/features requested
in domain XML against the desired QEMU capabilities (aka
qemuCaps) - it's virDomainDefValidate() which calls
qemuValidateDomainDef() and qemuValidateDomainDeviceDef()
subsequently.
But the problem here is that the validation function is
explicitly skipped over in specific scenarios (like incoming
migration, restore from a snapshot or previously saved file).
This in turn means that we may spawn QEMU and request
device/features it doesn't support. When that happens QEMU fails
to load migration stream:
qemu-kvm: ... 'virtio-mem-pci' is not a valid device model name
(NB, while the example shows one particular device, the problem
is paramount)
This problem is easier to run into since we are slowly moving
validation from qemu_command.c into said validation functions.
The solution is simple: do the validation in all cases. And while
it may happen that users would be unable to migrate/restore a
guest due to a bug in our validator, spawning QEMU without
validation is worse (especially when you consider that users can
supply their own XMLs for migrate/restore operations - these were
never validated).
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2048435
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 517b8c12b98d7ac0bb4d582e0b491d50d776eb6d)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2050702
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_process.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 5c9ca0fe4f..5c6657a876 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5411,11 +5411,7 @@ qemuProcessStartValidate(virQEMUDriver *driver,
}
- /* Checks below should not be executed when starting a qemu process for a
- * VM that was running before (migration, snapshots, save). It's more
- * important to start such VM than keep the configuration clean */
- if ((flags & VIR_QEMU_PROCESS_START_NEW) &&
- virDomainDefValidate(vm->def, 0, driver->xmlopt, qemuCaps) < 0)
+ if (virDomainDefValidate(vm->def, 0, driver->xmlopt, qemuCaps) < 0)
return -1;
if (qemuProcessStartValidateGraphics(vm) < 0)
--
2.35.1

View File

@ -0,0 +1,46 @@
From c57b31305a7fc8c2a4d11e11e7a48c4826160fa2 Mon Sep 17 00:00:00 2001
Message-Id: <c57b31305a7fc8c2a4d11e11e7a48c4826160fa2@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 1 Mar 2023 16:51:42 +0100
Subject: [PATCH] qemu: agent: Make fetching of 'can-offline' member from
'guest-query-vcpus' optional
The 'can-offline' member is optional according to agent's schema and in
fact in certain cases it's not returned. Libvirt then spams the logs
if something is polling the bulk guest stats API.
Noticed when going through oVirt logs which appears to call the bulk
stats API repeatedly.
Instead of requiring it we simply reply that the vCPU can't be offlined.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
(cherry picked from commit 790ea58153b9ef1120a577d1a87a4ca2e988ee5c)
https://bugzilla.redhat.com/show_bug.cgi?id=2174447
---
src/qemu/qemu_agent.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index db844148a6..09b7340bc8 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -1371,12 +1371,8 @@ qemuAgentGetVCPUs(qemuAgent *agent,
return -1;
}
- if (virJSONValueObjectGetBoolean(entry, "can-offline",
- &in->offlinable) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("'can-offline' missing in reply of guest-get-vcpus"));
- return -1;
- }
+ in->offlinable = false;
+ ignore_value(virJSONValueObjectGetBoolean(entry, "can-offline", &in->offlinable));
}
return ndata;
--
2.39.2

View File

@ -1,76 +0,0 @@
From 1a54514bba90d0541efaf3e905ab30205c6014bd Mon Sep 17 00:00:00 2001
Message-ID: <1a54514bba90d0541efaf3e905ab30205c6014bd.1737731143.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 13 Dec 2024 12:47:39 -0500
Subject: [PATCH] qemu: allow migration of guest with mdev vGPU to VF vGPU
GPU vendors are moving away from using mdev to create virtual GPUs
towards using SRIOV VFs that are vGPUs. In both cases, once created
the vGPUs are assigned to guests via <hostdev> (i.e. VFIO device
assignment), and inside the guest the devices look identical, but mdev
vGPUs are located by QEMU/VFIO using a uuid, while VF vGPUs are
located with a PCI address. So although we generally require the
device on the source host to exactly match the device on the
destination host, in the case of mdev-created vGPU vs. VF vGPU
migration *can* potentially work, except that libvirt has a hard-coded
check that prevents us from even trying.
This patch loosens up that check so that we will allow attempts to
migrate a guest from a source host that has mdev-created vGPUs to a
destination host that has VF vGPUs (and vice versa). The expectation
is that if this doesn't actually work then QEMU will fail and generate
an error that we can report.
Signed-off-by: Laine Stump <laine@redhat.com>
Tested-by: Zhiyi Guo <zhguo@redhat.com>
Reviewed-by: Zhiyi Guo <zhguo@redhat.com>
(cherry picked from commit dd82e2baa84eed485fa0554eafd2bdc06a094081)
https://issues.redhat.com/browse/RHEL-68064
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/conf/domain_conf.c | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 1f0b67ca28..d3f30b08dc 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -20671,13 +20671,27 @@ virDomainHostdevDefCheckABIStability(virDomainHostdevDef *src,
return false;
}
- if (src->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
- src->source.subsys.type != dst->source.subsys.type) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Target host device subsystem %1$s does not match source %2$s"),
- virDomainHostdevSubsysTypeToString(dst->source.subsys.type),
- virDomainHostdevSubsysTypeToString(src->source.subsys.type));
- return false;
+ if (src->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) {
+ virDomainHostdevSubsysType srcType = src->source.subsys.type;
+ virDomainHostdevSubsysType dstType = dst->source.subsys.type;
+
+ /* If the source and destination subsys types aren't the same,
+ * then migration can't be supported, *except* that it might
+ * be supported to migrate from subsys type 'pci' to 'mdev'
+ * and vice versa. (libvirt can't know for certain whether or
+ * not it will actually work, so we have to just allow it and
+ * count on QEMU to provide us with an error if it fails)
+ */
+
+ if (srcType != dstType
+ && ((srcType != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI && srcType != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV)
+ || (dstType != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI && dstType != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV))) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Target host device subsystem type %1$s is not compatible with source subsystem type %2$s"),
+ virDomainHostdevSubsysTypeToString(dstType),
+ virDomainHostdevSubsysTypeToString(srcType));
+ return false;
+ }
}
if (!virDomainDeviceInfoCheckABIStability(src->info, dst->info))
--
2.48.1

View File

@ -1,41 +0,0 @@
From e0e1ea834898b77afece7fec6463b6bc74b943d9 Mon Sep 17 00:00:00 2001
Message-ID: <e0e1ea834898b77afece7fec6463b6bc74b943d9.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Sun, 9 Feb 2025 18:23:03 -0500
Subject: [PATCH] qemu: automatically set model type='virtio' for interface
type='vhostuser'
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Both vdpa and vhostuser require that the guest device be virtio, and
for interface type='vdpa', we already set <model type='virtio'/> if it
is unspecified in the input XML, so let's be just as courteous for
interface type='vhostuser'.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit c4746418d7e952888c0989db3a5c723d888fc32d)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_postparse.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c
index 049a6ef2dc..892330646a 100644
--- a/src/qemu/qemu_postparse.c
+++ b/src/qemu/qemu_postparse.c
@@ -100,7 +100,8 @@ qemuDomainDeviceNetDefPostParse(virDomainNetDef *net,
const virDomainDef *def,
virQEMUCaps *qemuCaps)
{
- if (net->type == VIR_DOMAIN_NET_TYPE_VDPA &&
+ if ((net->type == VIR_DOMAIN_NET_TYPE_VDPA ||
+ net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER) &&
!virDomainNetGetModelString(net)) {
net->model = VIR_DOMAIN_NET_MODEL_VIRTIO;
} else if (net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV &&
--
2.48.1

View File

@ -1,76 +0,0 @@
From 8f41d0f749cd8b9944c32791cdfd3f3f7f806579 Mon Sep 17 00:00:00 2001
Message-ID: <8f41d0f749cd8b9944c32791cdfd3f3f7f806579.1739824249.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 10 Feb 2025 17:57:01 +0100
Subject: [PATCH] qemu: capabilies: Introduce QEMU_CAPS_BLOCKDEV_SET_ACTIVE
The flag signals presence of the 'blockdev-set-active' QMP command.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit b402e167b640bcd242ba518cfd7cbc469dba52e9)
Conflicts:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
Some capabilities were not backported:
- QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION_DEPRECATED_PROPS
- QEMU_CAPS_MIGRATE_INCOMING_EXIT_ON_ERROR
- QEMU_CAPS_MACHINE_VIRT_AIA
- QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW
https://issues.redhat.com/browse/RHEL-79095
---
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 +
3 files changed, 4 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index dec3199fce..65e19965dd 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -721,6 +721,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
"chardev-reconnect-miliseconds", /* QEMU_CAPS_CHARDEV_RECONNECT_MILISECONDS */
"virtio-ccw.loadparm", /* QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM */
"netdev-stream-reconnect-miliseconds", /* QEMU_CAPS_NETDEV_STREAM_RECONNECT_MILISECONDS */
+ "blockdev-set-active", /* QEMU_CAPS_BLOCKDEV_SET_ACTIVE */
);
@@ -1242,6 +1243,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
{ "query-stats-schemas", QEMU_CAPS_QUERY_STATS_SCHEMAS },
{ "display-reload", QEMU_CAPS_DISPLAY_RELOAD },
{ "snapshot-save", QEMU_CAPS_SNAPSHOT_INTERNAL_QMP },
+ { "blockdev-set-active", QEMU_CAPS_BLOCKDEV_SET_ACTIVE },
};
struct virQEMUCapsStringFlags virQEMUCapsMigration[] = {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 48e4530c95..e93e6a01cc 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -700,6 +700,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
QEMU_CAPS_CHARDEV_RECONNECT_MILISECONDS, /* 'reconnect-ms' option for chardevs supported */
QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM, /* loadparm available on CCW device for multi device boot */
QEMU_CAPS_NETDEV_STREAM_RECONNECT_MILISECONDS, /* 'reconnect-ms' option for netdev stream supported */
+ QEMU_CAPS_BLOCKDEV_SET_ACTIVE, /* blockdev-set-active QMP command supported */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
index aed0a58fa7..e09b6e6e1a 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
@@ -210,6 +210,7 @@
<flag name='snapshot-internal-qmp'/>
<flag name='chardev-reconnect-miliseconds'/>
<flag name='netdev-stream-reconnect-miliseconds'/>
+ <flag name='blockdev-set-active'/>
<version>9002050</version>
<microcodeVersion>43100285</microcodeVersion>
<package>v9.2.0-1636-gffaf7f0376</package>
--
2.48.1

View File

@ -1,663 +0,0 @@
From 7ffdf87f44ae20be4f2a1d1d18b4da969414edc2 Mon Sep 17 00:00:00 2001
Message-ID: <7ffdf87f44ae20be4f2a1d1d18b4da969414edc2.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Wed, 12 Feb 2025 16:16:44 -0500
Subject: [PATCH] qemu: complete vhostuser + passt support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
<interface type='vhostuser'><backend type='passt'/> needs to run the
passt command just as is done for interface type='user', but then add
vhostuser bits to the qemu commandline/monitor command.
There are some changes to the parsing/validation along with changes to
the vhostuser codepath do do the extra stuff for passt. I tried
keeping them separated into different patches, but then the unit test
failed in a strange way deep down in the bowels of the commandline
generation, so this patch both 1) makes the final changes to
parsing/formatting and 2) adds passt stuff at appropriate places for
vhostuser (as well as making a couple of things *not* happen when the
passt backend is chosen). The result is that you can now have:
<interface type='vhostuser'>
<backend type='passt'/>
...
</interface>
Then as long as you also have the following as a subelement of
<domain>:
<memoryBacking>
<access mode='shared'/>
</memoryBacking>
your passt interfaces will benefit from the greatly improved
efficiency of a vhost-user data path, and all without requiring
special privileges or capabilities *anywhere* (i.e. it works for
unprivileged libvirt (qemu:///session) as well as privileged libvirt).
Resolves: https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 1e9054b9c79d721a55f413c2983c5370044f8f60)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/conf/domain_conf.c | 36 ++++++---
src/conf/domain_validate.c | 77 +++++++------------
src/conf/schemas/domaincommon.rng | 32 +++++++-
src/qemu/qemu_command.c | 7 +-
src/qemu/qemu_extdevice.c | 6 +-
src/qemu/qemu_hotplug.c | 21 ++++-
src/qemu/qemu_passt.c | 3 +
src/qemu/qemu_process.c | 15 +++-
src/qemu/qemu_validate.c | 7 +-
...t-user-slirp-portforward.x86_64-latest.err | 2 +-
.../net-vhostuser-passt.x86_64-latest.args | 42 ++++++++++
.../net-vhostuser-passt.x86_64-latest.xml | 72 +++++++++++++++++
tests/qemuxmlconfdata/net-vhostuser-passt.xml | 70 +++++++++++++++++
tests/qemuxmlconftest.c | 1 +
14 files changed, 317 insertions(+), 74 deletions(-)
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.xml
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b1e9dda80e..095b9bbaa2 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9448,9 +9448,25 @@ virDomainNetBackendParseXML(xmlNodePtr node,
g_autofree char *tap = virXMLPropString(node, "tap");
g_autofree char *vhost = virXMLPropString(node, "vhost");
- /* The VIR_DOMAIN_NET_BACKEND_DEFAULT really means 'use hypervisor's
- * builtin SLIRP'. It's reported in domain caps and thus we need to accept
- * it. Hence VIR_XML_PROP_NONE instead of VIR_XML_PROP_NONZERO. */
+ /* In the case of NET_TYPE_USER, backend type can be unspecified
+ * (i.e. VIR_DOMAIN_NET_BACKEND_DEFAULT) and that means 'use
+ * hypervisor's builtin SLIRP (or if that isn't available, use
+ * passt)'. Similarly, it can also be left unspecified in the case
+ * of NET_TYPE_VHOSTUSER, and then it means "use the traditional
+ * vhost-user backend (which auto-detects between connecting to a
+ * socket created by OVS, or connecting to a standalone socket
+ * used (mostly in testing) to connect the vhost-user interface of
+ * one guest directly to the vhost-user interface of another
+ * guest.
+ *
+ * If backend type is set to 'passt', then in both cases a passt
+ * process will be started, and libvirt will connect that to the
+ * guest interface (either communicating everything over the
+ * socket created by passt using a specific-to-passt protocol
+ * (interface type='user'>), or by using the socket for control
+ * plane messages and shared memory for data using the vhost-user
+ * protocol (<interface type='vhostuser'>)).
+ */
if (virXMLPropEnum(node, "type", virDomainNetBackendTypeFromString,
VIR_XML_PROP_NONE, &def->backend.type) < 0) {
return -1;
@@ -24581,7 +24597,11 @@ virDomainNetDefFormat(virBuffer *buf,
break;
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
- if (def->data.vhostuser->type == VIR_DOMAIN_CHR_TYPE_UNIX) {
+ if (def->data.vhostuser->type == VIR_DOMAIN_CHR_TYPE_UNIX &&
+ def->backend.type != VIR_DOMAIN_NET_BACKEND_PASST) {
+ /* in the case of BACKEND_PASST, the values of all of these are either
+ * fixed (type, mode, reconnect), or derived from elsewhere (path)
+ */
virBufferAddLit(&sourceAttrBuf, " type='unix'");
virBufferEscapeString(&sourceAttrBuf, " path='%s'",
def->data.vhostuser->data.nix.path);
@@ -24592,7 +24612,6 @@ virDomainNetDefFormat(virBuffer *buf,
virDomainChrSourceReconnectDefFormat(&sourceChildBuf,
&def->data.vhostuser->data.nix.reconnect);
}
-
}
break;
@@ -24654,15 +24673,14 @@ virDomainNetDefFormat(virBuffer *buf,
}
case VIR_DOMAIN_NET_TYPE_USER:
- if (def->backend.type == VIR_DOMAIN_NET_BACKEND_PASST)
- virBufferEscapeString(&sourceAttrBuf, " dev='%s'", def->sourceDev);
- break;
-
case VIR_DOMAIN_NET_TYPE_NULL:
case VIR_DOMAIN_NET_TYPE_LAST:
break;
}
+ if (def->backend.type == VIR_DOMAIN_NET_BACKEND_PASST)
+ virBufferEscapeString(&sourceAttrBuf, " dev='%s'", def->sourceDev);
+
if (def->hostIP.nips || def->hostIP.nroutes) {
if (virDomainNetIPInfoFormat(&sourceChildBuf, &def->hostIP) < 0)
return -1;
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index dacde1f780..597ae3d938 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2157,67 +2157,46 @@ virDomainNetDefValidate(const virDomainNetDef *net)
return -1;
}
- if (net->type != VIR_DOMAIN_NET_TYPE_USER) {
+ if (net->type != VIR_DOMAIN_NET_TYPE_USER &&
+ net->type != VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("The 'passt' backend can only be used with interface type='user'"));
+ _("The 'passt' backend can only be used with interface type='user' or type='vhostuser'"));
return -1;
}
}
- if (net->nPortForwards > 0 &&
- (net->type != VIR_DOMAIN_NET_TYPE_USER ||
- (net->type == VIR_DOMAIN_NET_TYPE_USER &&
- net->backend.type != VIR_DOMAIN_NET_BACKEND_PASST))) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("The <portForward> element can only be used with <interface type='user'> and its 'passt' backend"));
- return -1;
- }
+ if (net->nPortForwards > 0) {
+ size_t p;
- if (!virNetDevBandwidthValidate(net->bandwidth)) {
- return -1;
- }
+ if ((net->type != VIR_DOMAIN_NET_TYPE_USER &&
+ net->type != VIR_DOMAIN_NET_TYPE_VHOSTUSER) ||
+ net->backend.type != VIR_DOMAIN_NET_BACKEND_PASST) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("The <portForward> element can only be used with the 'passt' backend of interface type='user' or type='vhostuser'"));
+ return -1;
+ }
- switch (net->type) {
- case VIR_DOMAIN_NET_TYPE_USER:
- if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
- size_t p;
-
- for (p = 0; p < net->nPortForwards; p++) {
- size_t r;
- virDomainNetPortForward *pf = net->portForwards[p];
-
- for (r = 0; r < pf->nRanges; r++) {
- virDomainNetPortForwardRange *range = pf->ranges[r];
-
- if (!range->start
- && (range->end || range->to
- || range->exclude != VIR_TRISTATE_BOOL_ABSENT)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("The 'range' of a 'portForward' requires 'start' attribute if 'end', 'to', or 'exclude' is specified"));
- return -1;
- }
+ for (p = 0; p < net->nPortForwards; p++) {
+ size_t r;
+ virDomainNetPortForward *pf = net->portForwards[p];
+
+ for (r = 0; r < pf->nRanges; r++) {
+ virDomainNetPortForwardRange *range = pf->ranges[r];
+
+ if (!range->start
+ && (range->end || range->to
+ || range->exclude != VIR_TRISTATE_BOOL_ABSENT)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("The 'range' of a 'portForward' requires 'start' attribute if 'end', 'to', or 'exclude' is specified"));
+ return -1;
}
}
}
- break;
+ }
- case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
- case VIR_DOMAIN_NET_TYPE_NETWORK:
- case VIR_DOMAIN_NET_TYPE_VDPA:
- case VIR_DOMAIN_NET_TYPE_BRIDGE:
- case VIR_DOMAIN_NET_TYPE_CLIENT:
- case VIR_DOMAIN_NET_TYPE_SERVER:
- case VIR_DOMAIN_NET_TYPE_MCAST:
- case VIR_DOMAIN_NET_TYPE_UDP:
- case VIR_DOMAIN_NET_TYPE_INTERNAL:
- case VIR_DOMAIN_NET_TYPE_DIRECT:
- case VIR_DOMAIN_NET_TYPE_HOSTDEV:
- case VIR_DOMAIN_NET_TYPE_VDS:
- case VIR_DOMAIN_NET_TYPE_ETHERNET:
- case VIR_DOMAIN_NET_TYPE_NULL:
- case VIR_DOMAIN_NET_TYPE_LAST:
- break;
+ if (!virNetDevBandwidthValidate(net->bandwidth)) {
+ return -1;
}
return 0;
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index cbc093ca7b..d433e95d8b 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -3486,8 +3486,36 @@
</attribute>
<interleave>
<optional>
- <ref name="unixSocketSource"/>
- </optional>
+ <element name="source">
+ <optional>
+ <attribute name="type">
+ <value>unix</value>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="path">
+ <ref name="absFilePath"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="mode">
+ <choice>
+ <value>server</value>
+ <value>client</value>
+ </choice>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="dev">
+ <ref name="deviceName"/>
+ </attribute>
+ </optional>
+ <optional>
+ <ref name="reconnect"/>
+ </optional>
+ <empty/>
+ </element>
+ </optional>
<ref name="interface-options"/>
</interleave>
</group>
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 1f28de6194..24dac0ce0f 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8617,11 +8617,12 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver,
if (qemuInterfaceVhostuserConnect(cmd, net, qemuCaps) < 0)
goto cleanup;
- if (virNetDevOpenvswitchGetVhostuserIfname(net->data.vhostuser->data.nix.path,
+ if (net->backend.type != VIR_DOMAIN_NET_BACKEND_PASST &&
+ virNetDevOpenvswitchGetVhostuserIfname(net->data.vhostuser->data.nix.path,
net->data.vhostuser->data.nix.listen,
- &net->ifname) < 0)
+ &net->ifname) < 0) {
goto cleanup;
-
+ }
break;
case VIR_DOMAIN_NET_TYPE_VDPA:
diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c
index 954cb323a4..2384bab7a6 100644
--- a/src/qemu/qemu_extdevice.c
+++ b/src/qemu/qemu_extdevice.c
@@ -212,13 +212,15 @@ qemuExtDevicesStart(virQEMUDriver *driver,
for (i = 0; i < def->nnets; i++) {
virDomainNetDef *net = def->nets[i];
- if (net->type != VIR_DOMAIN_NET_TYPE_USER)
+ if (net->type != VIR_DOMAIN_NET_TYPE_USER &&
+ net->type != VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
continue;
+ }
if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
if (qemuPasstStart(vm, net) < 0)
return -1;
- } else {
+ } else if (net->type == VIR_DOMAIN_NET_TYPE_USER) {
if (qemuSlirpStart(vm, net, incomingMigration) < 0)
return -1;
}
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index de0777d330..c8746f5e22 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1262,10 +1262,23 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
if (!(charDevAlias = qemuAliasChardevFromDevAlias(net->info.alias)))
goto cleanup;
- if (virNetDevOpenvswitchGetVhostuserIfname(net->data.vhostuser->data.nix.path,
- net->data.vhostuser->data.nix.listen,
- &net->ifname) < 0)
- goto cleanup;
+ if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
+
+ /* vhostuser needs socket path in this location, and when
+ * backend is passt, the path is derived from other info,
+ * not taken from config.
+ */
+ g_free(net->data.vhostuser->data.nix.path);
+ net->data.vhostuser->data.nix.path = qemuPasstCreateSocketPath(vm, net);
+
+ if (qemuPasstStart(vm, net) < 0)
+ goto cleanup;
+ } else {
+ if (virNetDevOpenvswitchGetVhostuserIfname(net->data.vhostuser->data.nix.path,
+ net->data.vhostuser->data.nix.listen,
+ &net->ifname) < 0)
+ goto cleanup;
+ }
if (qemuSecuritySetNetdevLabel(driver, vm, net) < 0)
goto cleanup;
diff --git a/src/qemu/qemu_passt.c b/src/qemu/qemu_passt.c
index 8a3ac4e988..b9616d1c63 100644
--- a/src/qemu/qemu_passt.c
+++ b/src/qemu/qemu_passt.c
@@ -180,6 +180,9 @@ qemuPasstStart(virDomainObj *vm,
virCommandClearCaps(cmd);
+ if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_VHOSTUSER)
+ virCommandAddArg(cmd, "--vhost-user");
+
virCommandAddArgList(cmd,
"--one-off",
"--socket", passtSocketName,
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 26ca943dfc..7285fd5ce9 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -64,6 +64,7 @@
#include "qemu_backup.h"
#include "qemu_dbus.h"
#include "qemu_snapshot.h"
+#include "qemu_passt.h"
#include "cpu/cpu.h"
#include "cpu/cpu_x86.h"
@@ -5932,12 +5933,23 @@ qemuProcessPrepareDomainNetwork(virDomainObj *vm)
}
break;
+ case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
+ if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
+ /* when using the passt backend, the path of the
+ * unix socket is always derived from other info
+ * *not* manually given in the config, but all the
+ * vhostuser code looks for it there.
+ */
+ g_free(net->data.vhostuser->data.nix.path);
+ net->data.vhostuser->data.nix.path = qemuPasstCreateSocketPath(vm, net);
+ }
+ break;
+
case VIR_DOMAIN_NET_TYPE_DIRECT:
case VIR_DOMAIN_NET_TYPE_BRIDGE:
case VIR_DOMAIN_NET_TYPE_NETWORK:
case VIR_DOMAIN_NET_TYPE_ETHERNET:
case VIR_DOMAIN_NET_TYPE_USER:
- case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
case VIR_DOMAIN_NET_TYPE_SERVER:
case VIR_DOMAIN_NET_TYPE_CLIENT:
case VIR_DOMAIN_NET_TYPE_MCAST:
@@ -5949,7 +5961,6 @@ qemuProcessPrepareDomainNetwork(virDomainObj *vm)
case VIR_DOMAIN_NET_TYPE_LAST:
break;
}
-
}
return 0;
}
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index eb8c5366f6..f33c0c07b4 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1736,7 +1736,9 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
return -1;
}
- if (net->type == VIR_DOMAIN_NET_TYPE_USER) {
+ if (net->type == VIR_DOMAIN_NET_TYPE_USER ||
+ (net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER &&
+ net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST)) {
virDomainCapsDeviceNet netCaps = { };
virQEMUCapsFillDomainDeviceNetCaps(qemuCaps, &netCaps);
@@ -1811,7 +1813,8 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
}
if (net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
- if (!net->data.vhostuser->data.nix.path) {
+ if (!net->data.vhostuser->data.nix.path &&
+ net->backend.type != VIR_DOMAIN_NET_BACKEND_PASST) {
virReportError(VIR_ERR_XML_ERROR,
_("Missing required attribute '%1$s' in element '%2$s'"),
"path", "source");
diff --git a/tests/qemuxmlconfdata/net-user-slirp-portforward.x86_64-latest.err b/tests/qemuxmlconfdata/net-user-slirp-portforward.x86_64-latest.err
index eaa934742e..e231677e57 100644
--- a/tests/qemuxmlconfdata/net-user-slirp-portforward.x86_64-latest.err
+++ b/tests/qemuxmlconfdata/net-user-slirp-portforward.x86_64-latest.err
@@ -1 +1 @@
-unsupported configuration: The <portForward> element can only be used with <interface type='user'> and its 'passt' backend
+unsupported configuration: The <portForward> element can only be used with the 'passt' backend of interface type='user' or type='vhostuser'
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
new file mode 100644
index 0000000000..21d78d6072
--- /dev/null
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
@@ -0,0 +1,42 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
+/usr/bin/qemu-system-x86_64 \
+-name guest=QEMUGuest1,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
+-accel tcg \
+-cpu qemu64 \
+-m size=219136k \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","node-name":"libvirt-1-storage","read-only":false}' \
+-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-storage","id":"ide0-0-0","bootindex":1}' \
+-chardev socket,id=charnet0,path=/var/run/libvirt/qemu/passt/-1-QEMUGuest1-net0.socket \
+-netdev '{"type":"vhost-user","chardev":"charnet0","id":"hostnet0"}' \
+-device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"00:11:22:33:44:55","bus":"pci.0","addr":"0x2"}' \
+-chardev socket,id=charnet1,path=/var/run/libvirt/qemu/passt/-1-QEMUGuest1-net1.socket \
+-netdev '{"type":"vhost-user","chardev":"charnet1","id":"hostnet1"}' \
+-device '{"driver":"virtio-net-pci","netdev":"hostnet1","id":"net1","mac":"00:11:22:33:44:11","bus":"pci.0","addr":"0x3"}' \
+-chardev socket,id=charnet2,path=/var/run/libvirt/qemu/passt/-1-QEMUGuest1-net2.socket \
+-netdev '{"type":"vhost-user","chardev":"charnet2","id":"hostnet2"}' \
+-device '{"driver":"virtio-net-pci","netdev":"hostnet2","id":"net2","mac":"00:11:22:33:44:11","bus":"pci.0","addr":"0x4"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
new file mode 100644
index 0000000000..26aa4c8d05
--- /dev/null
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
@@ -0,0 +1,72 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu64</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:55'/>
+ <ip address='172.17.2.0' family='ipv4' prefix='24'/>
+ <ip address='2001:db8:ac10:fd01::feed' family='ipv6'/>
+ <portForward proto='tcp' address='2001:db8:ac10:fd01::1:10'>
+ <range start='22' to='2022'/>
+ <range start='1000' end='1050'/>
+ <range start='1020' exclude='yes'/>
+ <range start='1030' end='1040' exclude='yes'/>
+ </portForward>
+ <portForward proto='udp' address='1.2.3.4' dev='eth0'>
+ <range start='5000' end='5020' to='6000'/>
+ <range start='5010' end='5015' exclude='yes'/>
+ </portForward>
+ <portForward proto='tcp'>
+ <range start='80'/>
+ </portForward>
+ <portForward proto='tcp'>
+ <range start='443' to='344'/>
+ </portForward>
+ <model type='virtio'/>
+ <backend type='passt' logFile='/var/log/loglaw.blog'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </interface>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:11'/>
+ <model type='virtio'/>
+ <backend type='passt'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </interface>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:11'/>
+ <model type='virtio'/>
+ <backend type='passt'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ </interface>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.xml b/tests/qemuxmlconfdata/net-vhostuser-passt.xml
new file mode 100644
index 0000000000..e44c91e541
--- /dev/null
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.xml
@@ -0,0 +1,70 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:55'/>
+ <ip address='172.17.2.0' family='ipv4' prefix='24'/>
+ <ip address='2001:db8:ac10:fd01::feed' family='ipv6'/>
+ <source dev='eth42'/>
+ <portForward proto='tcp' address='2001:db8:ac10:fd01::1:10'>
+ <range start='22' to='2022'/>
+ <range start='1000' end='1050'/>
+ <range start='1020' exclude='yes'/>
+ <range start='1030' end='1040' exclude='yes'/>
+ </portForward>
+ <portForward proto='udp' address='1.2.3.4' dev='eth0'>
+ <range start='5000' end='5020' to='6000'/>
+ <range start='5010' end='5015' exclude='yes'/>
+ </portForward>
+ <portForward proto='tcp'>
+ <range start='80'/>
+ </portForward>
+ <portForward proto='tcp'>
+ <range start='443' to='344'/>
+ </portForward>
+ <model type='virtio'/>
+ <backend type='passt' logFile='/var/log/loglaw.blog'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </interface>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:11'/>
+ <backend type='passt'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </interface>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:11'/>
+ <source dev='eth43'/>
+ <model type='virtio'/>
+ <backend type='passt'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ </interface>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 821d9b1048..9603984b60 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1791,6 +1791,7 @@ mymain(void)
DO_TEST_CAPS_LATEST("net-user-passt");
DO_TEST_CAPS_VER("net-user-passt", "7.2.0");
DO_TEST_CAPS_LATEST_PARSE_ERROR("net-user-slirp-portforward");
+ DO_TEST_CAPS_LATEST("net-vhostuser-passt");
DO_TEST_CAPS_LATEST("net-virtio");
DO_TEST_CAPS_LATEST("net-virtio-device");
DO_TEST_CAPS_LATEST("net-virtio-disable-offloads");
--
2.48.1

View File

@ -1,75 +0,0 @@
From a12b87879f0a1dca59c5953ac3a91a36685d17ce Mon Sep 17 00:00:00 2001
Message-ID: <a12b87879f0a1dca59c5953ac3a91a36685d17ce.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Sun, 9 Feb 2025 19:01:32 -0500
Subject: [PATCH] qemu: do all vhostuser attribute validation in qemu driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since vhostuser is only used/supported by the QEMU driver, and all the
rest of the vhostuser-specific validation is done in QEMU's
validation, lets move the final check (to see if they've tried to
enable auto-reconnect when this interface is on the server side of the
vhostuser socket) to the QEMU validate.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 56f4cc167a6c93ec420c82f15a265ec08469279d)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/conf/domain_validate.c | 10 +---------
src/qemu/qemu_validate.c | 8 ++++++++
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index f56ff5b7bb..dacde1f780 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2179,15 +2179,6 @@ virDomainNetDefValidate(const virDomainNetDef *net)
}
switch (net->type) {
- case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
- if (net->data.vhostuser->data.nix.listen &&
- net->data.vhostuser->data.nix.reconnect.enabled == VIR_TRISTATE_BOOL_YES) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("'reconnect' attribute unsupported 'server' mode for <interface type='vhostuser'>"));
- return -1;
- }
- break;
-
case VIR_DOMAIN_NET_TYPE_USER:
if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
size_t p;
@@ -2211,6 +2202,7 @@ virDomainNetDefValidate(const virDomainNetDef *net)
}
break;
+ case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
case VIR_DOMAIN_NET_TYPE_NETWORK:
case VIR_DOMAIN_NET_TYPE_VDPA:
case VIR_DOMAIN_NET_TYPE_BRIDGE:
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 841d320541..b7b2e3d0af 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1810,6 +1810,14 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
}
}
+ if (net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER &&
+ net->data.vhostuser->data.nix.listen &&
+ net->data.vhostuser->data.nix.reconnect.enabled == VIR_TRISTATE_BOOL_YES) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("'reconnect' attribute is not supported when source mode='server' for <interface type='vhostuser'>"));
+ return -1;
+ }
+
if (!virDomainNetIsVirtioModel(net)) {
if (net->type == VIR_DOMAIN_NET_TYPE_VDPA ||
net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
--
2.48.1

View File

@ -0,0 +1,39 @@
From 521e9a7731ac678ca790da4b04dabe4369efb984 Mon Sep 17 00:00:00 2001
Message-Id: <521e9a7731ac678ca790da4b04dabe4369efb984@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 1 Mar 2023 17:09:42 +0100
Subject: [PATCH] qemu: domain: Fix logic when tainting domain
Originally the code was skipping all repeated taints with the same taint
flag but a logic bug introduced in commit 30626ed15b239c424ae inverted
the condition. This caused that actually the first occurence was NOT
logged but any subsequent was.
This was noticed when going through oVirt logs as they use custom guest
agent commands and the logs are totally spammed with this message.
Fixes: 30626ed15b239c424ae891f096057a696eadd715
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
(cherry picked from commit 9134b40d0b43a5e1a9928b0a0d948205941d9807)
https://bugzilla.redhat.com/show_bug.cgi?id=2174447
---
src/qemu/qemu_domain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index c24d1e4d53..c70661fc49 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -6369,7 +6369,7 @@ void qemuDomainObjTaintMsg(virQEMUDriver *driver,
const char *extrasuffix = "";
va_list args;
- if (virDomainObjTaint(obj, taint)) {
+ if (!virDomainObjTaint(obj, taint)) {
/* If an extra message was given we must always
* emit the taint warning, otherwise it is a
* one-time only warning per VM
--
2.39.2

View File

@ -1,85 +0,0 @@
From 763d97401abc5d656b13967b811c04688061e760 Mon Sep 17 00:00:00 2001
Message-ID: <763d97401abc5d656b13967b811c04688061e760.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 6 Feb 2025 16:20:45 +0100
Subject: [PATCH] qemu: domain: Initialize FD passthrough for a
virStorageSource before using it
The call to 'qemuBlockStorageSourceNeedsFormatLayer()' bases the
decision also on the state of the passed FD, so we must initialize the
passthrough data via 'qemuDomainPrepareStorageSourceFDs()' before the
aforementioned call.
In the test change it's visible that we didn't add the necessary 'raw'
driver which allows the 'protocol' blockdev to be opened in 'rw' mode so
that qemu picks the proper file descriptior while keeping the device
read-only.
Resolves: https://issues.redhat.com/browse/RHEL-37519
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 5830e564bbeb798cccce2988094d1218f6dc5a60)
https://issues.redhat.com/browse/RHEL-37519
---
src/qemu/qemu_domain.c | 6 +++---
.../qemuxmlconfdata/disk-source-fd.x86_64-latest.args | 10 ++++++----
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 1fc4e2f33f..92035dd281 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9677,6 +9677,9 @@ qemuDomainPrepareStorageSourceBlockdevNodename(virDomainDiskDef *disk,
/* qemuBlockStorageSourceSetStorageNodename steals 'nodestorage' */
qemuBlockStorageSourceSetStorageNodename(src, nodestorage);
+ if (qemuDomainPrepareStorageSourceFDs(src, priv) < 0)
+ return -1;
+
if (qemuBlockStorageSourceNeedsFormatLayer(src, priv->qemuCaps)) {
char *nodeformat = g_strdup_printf("%s-format", nodenameprefix);
@@ -9717,9 +9720,6 @@ qemuDomainPrepareStorageSourceBlockdevNodename(virDomainDiskDef *disk,
if (qemuDomainPrepareStorageSourceNFS(src) < 0)
return -1;
- if (qemuDomainPrepareStorageSourceFDs(src, priv) < 0)
- return -1;
-
return 0;
}
diff --git a/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.args b/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.args
index d77b3ca505..27d852cf32 100644
--- a/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.args
@@ -33,11 +33,12 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-blockdev '{"node-name":"libvirt-6-format","read-only":false,"driver":"qcow2","file":"libvirt-6-storage"}' \
-device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x2","drive":"libvirt-6-format","id":"virtio-disk4","bootindex":1}' \
-add-fd set=4,fd=209,opaque=libvirt-5-storage0 \
--blockdev '{"driver":"file","filename":"/dev/fdset/4","node-name":"libvirt-5-storage","read-only":true}' \
+-blockdev '{"driver":"file","filename":"/dev/fdset/4","node-name":"libvirt-5-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-5-format","read-only":true,"driver":"raw","file":"libvirt-5-storage"}' \
-add-fd set=3,fd=247,opaque=libvirt-4-storage0 \
-add-fd set=3,fd=248,opaque=libvirt-4-storage1 \
-blockdev '{"driver":"file","filename":"/dev/fdset/3","node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \
--blockdev '{"node-name":"libvirt-4-format","read-only":true,"driver":"qcow2","file":"libvirt-4-storage","backing":"libvirt-5-storage"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":true,"driver":"qcow2","file":"libvirt-4-storage","backing":"libvirt-5-format"}' \
-add-fd set=2,fd=204,opaque=libvirt-3-storage0 \
-blockdev '{"driver":"file","filename":"/dev/fdset/2","node-name":"libvirt-3-storage","read-only":false,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"qcow2","file":"libvirt-3-storage","backing":"libvirt-4-format"}' \
@@ -46,8 +47,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-blockdev '{"driver":"file","filename":"/dev/fdset/1","node-name":"libvirt-2-storage","read-only":true}' \
-device '{"driver":"ide-cd","bus":"ide.0","unit":0,"drive":"libvirt-2-storage","id":"ide0-0-0"}' \
-add-fd set=0,fd=208,opaque=libvirt-1-storage0 \
--blockdev '{"driver":"file","filename":"/dev/fdset/0","node-name":"libvirt-1-storage","read-only":true}' \
--device '{"driver":"ide-cd","bus":"ide.0","unit":1,"drive":"libvirt-1-storage","id":"ide0-0-1"}' \
+-blockdev '{"driver":"file","filename":"/dev/fdset/0","node-name":"libvirt-1-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
+-device '{"driver":"ide-cd","bus":"ide.0","unit":1,"drive":"libvirt-1-format","id":"ide0-0-1"}' \
-audiodev '{"id":"audio1","driver":"none"}' \
-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x4"}' \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
--
2.48.1

View File

@ -1,203 +0,0 @@
From 1010499de016dd5babf375c203baa62d9799e190 Mon Sep 17 00:00:00 2001
Message-ID: <1010499de016dd5babf375c203baa62d9799e190.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 14 Feb 2025 13:10:19 -0500
Subject: [PATCH] qemu: fail validation if a domain def has vhostuser/passt but
no shared mem
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This can/should also be done for a traditional vhost-user interface
(ie not backend type='passt') but that will be a separate change.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 70bce2e6ee7a6b738d08fa79d14342969f51668b)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_validate.c | 9 ++-
...vhostuser-passt-no-shmem.x86_64-latest.err | 1 +
.../net-vhostuser-passt-no-shmem.xml | 70 +++++++++++++++++++
.../net-vhostuser-passt.x86_64-latest.args | 2 +-
.../net-vhostuser-passt.x86_64-latest.xml | 3 +
tests/qemuxmlconfdata/net-vhostuser-passt.xml | 3 +
tests/qemuxmlconftest.c | 1 +
7 files changed, 87 insertions(+), 2 deletions(-)
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.x86_64-latest.err
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.xml
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index f33c0c07b4..289a3f94cc 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1724,6 +1724,7 @@ qemuValidateDomainDefVhostUserRequireSharedMemory(const virDomainDef *def,
static int
qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
+ const virDomainDef *def,
virQEMUCaps *qemuCaps)
{
bool hasIPv4 = false;
@@ -1804,6 +1805,12 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
return -1;
}
+ if (net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER &&
+ net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
+ if (qemuValidateDomainDefVhostUserRequireSharedMemory(def, "interface type=\"vhostuser\" backend type=\"passt\"") < 0)
+ return -1;
+ }
+
if (net->type == VIR_DOMAIN_NET_TYPE_VDPA) {
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_VHOST_VDPA)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -5400,7 +5407,7 @@ qemuValidateDomainDeviceDef(const virDomainDeviceDef *dev,
switch (dev->type) {
case VIR_DOMAIN_DEVICE_NET:
- return qemuValidateDomainDeviceDefNetwork(dev->data.net, qemuCaps);
+ return qemuValidateDomainDeviceDefNetwork(dev->data.net, def, qemuCaps);
case VIR_DOMAIN_DEVICE_CHR:
return qemuValidateDomainChrDef(dev->data.chr, def, qemuCaps);
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.x86_64-latest.err b/tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.x86_64-latest.err
new file mode 100644
index 0000000000..274af5c722
--- /dev/null
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.x86_64-latest.err
@@ -0,0 +1 @@
+unsupported configuration: 'interface type="vhostuser" backend type="passt"' requires shared memory
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.xml b/tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.xml
new file mode 100644
index 0000000000..e44c91e541
--- /dev/null
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.xml
@@ -0,0 +1,70 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0' model='none'/>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:55'/>
+ <ip address='172.17.2.0' family='ipv4' prefix='24'/>
+ <ip address='2001:db8:ac10:fd01::feed' family='ipv6'/>
+ <source dev='eth42'/>
+ <portForward proto='tcp' address='2001:db8:ac10:fd01::1:10'>
+ <range start='22' to='2022'/>
+ <range start='1000' end='1050'/>
+ <range start='1020' exclude='yes'/>
+ <range start='1030' end='1040' exclude='yes'/>
+ </portForward>
+ <portForward proto='udp' address='1.2.3.4' dev='eth0'>
+ <range start='5000' end='5020' to='6000'/>
+ <range start='5010' end='5015' exclude='yes'/>
+ </portForward>
+ <portForward proto='tcp'>
+ <range start='80'/>
+ </portForward>
+ <portForward proto='tcp'>
+ <range start='443' to='344'/>
+ </portForward>
+ <model type='virtio'/>
+ <backend type='passt' logFile='/var/log/loglaw.blog'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </interface>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:11'/>
+ <backend type='passt'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </interface>
+ <interface type='vhostuser'>
+ <mac address='00:11:22:33:44:11'/>
+ <source dev='eth43'/>
+ <model type='virtio'/>
+ <backend type='passt'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ </interface>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
index 21d78d6072..7c030d7067 100644
--- a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
@@ -14,7 +14,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-accel tcg \
-cpu qemu64 \
-m size=219136k \
--object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
+-object '{"qom-type":"memory-backend-file","id":"pc.ram","mem-path":"/var/lib/libvirt/qemu/ram/-1-QEMUGuest1/pc.ram","share":true,"x-use-canonical-path-for-ramblock-id":false,"size":224395264}' \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
index 26aa4c8d05..a1f9366722 100644
--- a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
@@ -3,6 +3,9 @@
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
<memory unit='KiB'>219136</memory>
<currentMemory unit='KiB'>219136</currentMemory>
+ <memoryBacking>
+ <access mode='shared'/>
+ </memoryBacking>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.xml b/tests/qemuxmlconfdata/net-vhostuser-passt.xml
index e44c91e541..71b845329b 100644
--- a/tests/qemuxmlconfdata/net-vhostuser-passt.xml
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.xml
@@ -3,6 +3,9 @@
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
<memory unit='KiB'>219136</memory>
<currentMemory unit='KiB'>219136</currentMemory>
+ <memoryBacking>
+ <access mode='shared'/>
+ </memoryBacking>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 9603984b60..3947f508a2 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1792,6 +1792,7 @@ mymain(void)
DO_TEST_CAPS_VER("net-user-passt", "7.2.0");
DO_TEST_CAPS_LATEST_PARSE_ERROR("net-user-slirp-portforward");
DO_TEST_CAPS_LATEST("net-vhostuser-passt");
+ DO_TEST_CAPS_LATEST_PARSE_ERROR("net-vhostuser-passt-no-shmem");
DO_TEST_CAPS_LATEST("net-virtio");
DO_TEST_CAPS_LATEST("net-virtio-device");
DO_TEST_CAPS_LATEST("net-virtio-disable-offloads");
--
2.48.1

View File

@ -0,0 +1,44 @@
From 94bc9eaf3bbcaec47bd233378bbbb45f5f1523ca Mon Sep 17 00:00:00 2001
Message-Id: <94bc9eaf3bbcaec47bd233378bbbb45f5f1523ca@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 20 Jan 2022 14:53:33 +0100
Subject: [PATCH] qemu: fix inactive snapshot revert
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The commit splitting out the qemuSnapshotRevertInactive function
dropped the 'defined = true' line by accident and instead
returned -1, leaving the user with a cryptic error:
error: An error occurred, but the cause is unknown
https://bugzilla.redhat.com/show_bug.cgi?id=2039136
https://gitlab.com/libvirt/libvirt/-/issues/266
Fixes: 85e4a13c3f19078fb6af5ffb4a80022c142cbc7e
Signed-off-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 76deb656132bb8817ddae4b7f417930c4db824c9)
https://bugzilla.redhat.com/show_bug.cgi?id=2043584
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_snapshot.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index f92e00f9c0..ac7bab90f8 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -2193,7 +2193,7 @@ qemuSnapshotRevertInactive(virDomainObj *vm,
if (*inactiveConfig) {
virDomainObjAssignDef(vm, inactiveConfig, false, NULL);
- return -1;
+ defined = true;
}
if (flags & (VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING |
--
2.35.0

View File

@ -1,94 +0,0 @@
From 6c7d0cc41954ed8f57dbf10dcf98396576f98922 Mon Sep 17 00:00:00 2001
Message-ID: <6c7d0cc41954ed8f57dbf10dcf98396576f98922.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Tue, 4 Feb 2025 16:06:18 -0500
Subject: [PATCH] qemu: fix qemu validation to forbid guest-side IP address for
type='vdpa'
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Because all the checks for VIR_DOMAIN_NET_TYPE_VDPA were inside an
else-if clause that was immediately followed by another else-if clause
that forbid setting guestIP.ips or guestIP.routes, we've been allowing
users to set guestIP.* for vdpa interfaces (but then not doing
validation of the attributes that should have been done if we *did*
support setting IPs for vdpa (but we don't anyway, so :shrug:.)
This can be fixed by turning the vdpa else-if clause into a top-level
if - this way vdpa interfaces will hit the "else if
(net->guestIP.nips)" clause and reject guest-side IP address setting.
Also, since there are currently *no* interface types for QEMU that
support adding guest-side routes, we put that check by itself (I think
it may be possible to set some guest routes for passt interfaces, but
we don't do that)
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 6345ee60d87a6490a51a58527dc9b47e4d0264f9)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_validate.c | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index aaa056379e..9310457cb1 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1730,6 +1730,12 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
bool hasIPv6 = false;
size_t i;
+ if (net->guestIP.nroutes) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Invalid attempt to set network interface guest-side IP route, not supported by QEMU"));
+ return -1;
+ }
+
if (net->type == VIR_DOMAIN_NET_TYPE_USER) {
virDomainCapsDeviceNet netCaps = { };
@@ -1743,12 +1749,6 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
return -1;
}
- if (net->guestIP.nroutes) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Invalid attempt to set network interface guest-side IP route, not supported by QEMU"));
- return -1;
- }
-
for (i = 0; i < net->guestIP.nips; i++) {
const virNetDevIPAddr *ip = net->guestIP.ips[i];
@@ -1796,7 +1796,13 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
}
}
}
- } else if (net->type == VIR_DOMAIN_NET_TYPE_VDPA) {
+ } else if (net->guestIP.nips) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Invalid attempt to set network interface guest-side IP address info, not supported by QEMU"));
+ return -1;
+ }
+
+ if (net->type == VIR_DOMAIN_NET_TYPE_VDPA) {
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_VHOST_VDPA)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("vDPA devices are not supported with this QEMU binary"));
@@ -1810,10 +1816,6 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
virDomainNetModelTypeToString(net->model));
return -1;
}
- } else if (net->guestIP.nroutes || net->guestIP.nips) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Invalid attempt to set network interface guest-side IP route and/or address info, not supported by QEMU"));
- return -1;
}
if (virDomainNetIsVirtioModel(net)) {
--
2.48.1

View File

@ -0,0 +1,67 @@
From c70b1a8d8a4bc34bcbf9ef4bccac678257b8c494 Mon Sep 17 00:00:00 2001
Message-Id: <c70b1a8d8a4bc34bcbf9ef4bccac678257b8c494@dist-git>
From: Vasiliy Ulyanov <vulyanov@suse.de>
Date: Wed, 2 Feb 2022 17:28:17 +0100
Subject: [PATCH] qemu: gpu: Get pid without binary validation
The binary validation in virPidFileReadPathIfAlive may fail with EACCES
if the calling process does not have CAP_SYS_PTRACE capability.
Therefore instead do only the check that the pidfile is locked by the
correct process.
Fixes the same issue as with swtpm.
Signed-off-by: Vasiliy Ulyanov <vulyanov@suse.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit e3dfa52d260da8a41a0ec35767d08e37c825824a)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2152188
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_vhost_user_gpu.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_vhost_user_gpu.c b/src/qemu/qemu_vhost_user_gpu.c
index ef198a4820..f7d444e851 100644
--- a/src/qemu/qemu_vhost_user_gpu.c
+++ b/src/qemu/qemu_vhost_user_gpu.c
@@ -54,7 +54,6 @@ qemuVhostUserGPUCreatePidFilename(const char *stateDir,
/*
* qemuVhostUserGPUGetPid:
- * @binpath: path of executable associated with the pidfile
* @stateDir: the directory where vhost-user-gpu writes the pidfile into
* @shortName: short name of the domain
* @alias: video device alias
@@ -65,8 +64,7 @@ qemuVhostUserGPUCreatePidFilename(const char *stateDir,
* set to -1;
*/
static int
-qemuVhostUserGPUGetPid(const char *binPath,
- const char *stateDir,
+qemuVhostUserGPUGetPid(const char *stateDir,
const char *shortName,
const char *alias,
pid_t *pid)
@@ -76,7 +74,7 @@ qemuVhostUserGPUGetPid(const char *binPath,
if (!(pidfile = qemuVhostUserGPUCreatePidFilename(stateDir, shortName, alias)))
return -1;
- if (virPidFileReadPathIfAlive(pidfile, pid, binPath) < 0)
+ if (virPidFileReadPathIfLocked(pidfile, pid) < 0)
return -1;
return 0;
@@ -253,8 +251,7 @@ qemuExtVhostUserGPUSetupCgroup(virQEMUDriver *driver,
if (!shortname)
return -1;
- rc = qemuVhostUserGPUGetPid(video->driver->vhost_user_binary,
- cfg->stateDir, shortname, video->info.alias, &pid);
+ rc = qemuVhostUserGPUGetPid(cfg->stateDir, shortname, video->info.alias, &pid);
if (rc < 0 || (rc == 0 && pid == (pid_t)-1)) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Could not get process id of vhost-user-gpu"));
--
2.39.0

View File

@ -1,51 +0,0 @@
From 3d9f51a59292b1a910b11fac00f9cb52210169d1 Mon Sep 17 00:00:00 2001
Message-ID: <3d9f51a59292b1a910b11fac00f9cb52210169d1.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Wed, 12 Feb 2025 12:12:04 -0500
Subject: [PATCH] qemu: make qemuPasstCreateSocketPath() public
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When passt is used with vhostuser, the vhostuser code that builds the
qemu commandline will need to have the same socket path that is given
to the passt command, so this patch makes it visible outside of
qemu_passt.c.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 7b7c56c3b81c0f525c6b2f1c89e0ef070bb4fb19)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_passt.c | 2 +-
src/qemu/qemu_passt.h | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_passt.c b/src/qemu/qemu_passt.c
index dd4a8bb997..8a3ac4e988 100644
--- a/src/qemu/qemu_passt.c
+++ b/src/qemu/qemu_passt.c
@@ -54,7 +54,7 @@ qemuPasstCreatePidFilename(virDomainObj *vm,
}
-static char *
+char *
qemuPasstCreateSocketPath(virDomainObj *vm,
virDomainNetDef *net)
{
diff --git a/src/qemu/qemu_passt.h b/src/qemu/qemu_passt.h
index 623b494b7a..e0b9aaac8d 100644
--- a/src/qemu/qemu_passt.h
+++ b/src/qemu/qemu_passt.h
@@ -36,3 +36,6 @@ void qemuPasstStop(virDomainObj *vm,
int qemuPasstSetupCgroup(virDomainObj *vm,
virDomainNetDef *net,
virCgroup *cgroup);
+
+char *qemuPasstCreateSocketPath(virDomainObj *vm,
+ virDomainNetDef *net);
--
2.48.1

Some files were not shown because too many files have changed in this diff Show More