libvirt-11.8.0-1.el9

- Rebased to libvirt-11.8.0 (RHEL-118197)
- The rebase also fixes the following bugs:
    RHEL-15693, RHEL-95397, RHEL-111609, RHEL-116847, RHEL-117774

Resolves: RHEL-111609, RHEL-116847, RHEL-117774, RHEL-118197, RHEL-15693
Resolves: RHEL-95397
This commit is contained in:
Jiri Denemark 2025-10-01 15:36:29 +02:00
parent 72852340c4
commit 404b25f74a
156 changed files with 133 additions and 150104 deletions

View File

@ -1,53 +0,0 @@
From 9874072fc9396d609f1a0213bb06fa7e9a2fa019 Mon Sep 17 00:00:00 2001
Message-ID: <9874072fc9396d609f1a0213bb06fa7e9a2fa019.1747908717.git.jdenemar@redhat.com>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Tue, 25 Feb 2025 15:36:03 +0100
Subject: [PATCH] Add load average information type into virDomainGetGuestInfo
The public API part.
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit c52c449fd40c7263896d5f17129207b815c3a09c)
https://issues.redhat.com/browse/RHEL-88447
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
include/libvirt/libvirt-domain.h | 1 +
src/libvirt-domain.c | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index f026ce197c..c04b696f03 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -6425,6 +6425,7 @@ typedef enum {
VIR_DOMAIN_GUEST_INFO_FILESYSTEM = (1 << 4), /* return filesystem information (Since: 5.7.0) */
VIR_DOMAIN_GUEST_INFO_DISKS = (1 << 5), /* return disks information (Since: 7.0.0) */
VIR_DOMAIN_GUEST_INFO_INTERFACES = (1 << 6), /* return interfaces information (Since: 7.10.0) */
+ VIR_DOMAIN_GUEST_INFO_LOAD = (1 << 7), /* return load averages (Since: 11.2.0) */
} virDomainGuestInfoTypes;
int virDomainGetGuestInfo(virDomainPtr domain,
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 7c6b93963c..24752a9888 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -13292,6 +13292,14 @@ virDomainSetVcpu(virDomainPtr domain,
* "if.<num>.addr.<num1>.addr" - the IP address of addr <num1>
* "if.<num>.addr.<num1>.prefix" - the prefix of IP address of addr <num1>
*
+ * VIR_DOMAIN_GUEST_INFO_LOAD:
+ * Returns load (the number of processes in the runqueue or waiting for disk
+ * I/O) as double values:
+ *
+ * "load.1m" - load averaged over 1 minute
+ * "load.5m" - load averaged over 5 minutes
+ * "load.15m" - load averaged over 15 minutes
+ *
* Using 0 for @types returns all information groups supported by the given
* hypervisor.
*
--
2.49.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

@ -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

@ -1,280 +0,0 @@
From 4c66a653f02c8259fdcf72fdcd801b594f73183e Mon Sep 17 00:00:00 2001
Message-ID: <4c66a653f02c8259fdcf72fdcd801b594f73183e.1749039441.git.jdenemar@redhat.com>
From: Collin Walling <walling@linux.ibm.com>
Date: Mon, 16 Dec 2024 18:03:58 -0500
Subject: [PATCH] conf: add deprecated_features attribute
Add a new a attribute, deprecated_features='on|off' to the <cpu>
element. This is used to toggle features flagged as deprecated on the
CPU model on or off. When this attribute is paired with 'on',
deprecated features will not be filtered. When paired with 'off', any
CPU features that are flagged as deprecated will be listed under the
CPU model with the 'disable' policy.
Example:
<cpu mode='host-model' check='partial' deprecated_features='off'/>
The absence of this attribute is equivalent to the 'on' option.
The deprecated features that will populate the domain XML are the same
features that result in the virsh domcapabilities command with the
--disable-deprecated-features argument present.
It is recommended to define a domain XML with this attribute set to
'off' to ensure migration to machines that may outright drop these
features in the future.
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 62658bbf060784c757f96c9de3935f27885834aa)
JIRA: https://issues.redhat.com/browse/RHEL-89415
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/conf/cpu_conf.c | 11 +++++++
src/conf/cpu_conf.h | 1 +
src/conf/schemas/cputypes.rng | 5 +++
src/qemu/qemu_process.c | 11 +++++++
...el-deprecated-features-off.s390x-8.2.0.err | 1 +
...el-deprecated-features-off.s390x-8.2.0.xml | 25 +++++++++++++++
...-deprecated-features-off.s390x-latest.args | 32 +++++++++++++++++++
...l-deprecated-features-off.s390x-latest.xml | 25 +++++++++++++++
.../cpu-model-deprecated-features-off.xml | 15 +++++++++
tests/qemuxmlconftest.c | 3 ++
10 files changed, 129 insertions(+)
create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.err
create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.xml
create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.args
create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.xml
create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.xml
diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index dcc164d165..31425783ba 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -238,6 +238,7 @@ virCPUDefCopyWithoutModel(const virCPUDef *cpu)
copy->mode = cpu->mode;
copy->match = cpu->match;
copy->check = cpu->check;
+ copy->deprecated_feats = cpu->deprecated_feats;
copy->fallback = cpu->fallback;
copy->sockets = cpu->sockets;
copy->dies = cpu->dies;
@@ -450,6 +451,11 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt,
if (virXMLPropEnum(ctxt->node, "check", virCPUCheckTypeFromString,
VIR_XML_PROP_NONE, &def->check) < 0)
return -1;
+
+ if (virXMLPropTristateSwitch(ctxt->node, "deprecated_features",
+ VIR_XML_PROP_NONE,
+ &def->deprecated_feats) < 0)
+ return -1;
}
if (def->type == VIR_CPU_TYPE_HOST) {
@@ -748,6 +754,11 @@ virCPUDefFormatBufFull(virBuffer *buf,
virBufferAsprintf(&attributeBuf, " migratable='%s'",
virTristateSwitchTypeToString(def->migratable));
}
+
+ if (def->deprecated_feats) {
+ virBufferAsprintf(&attributeBuf, " deprecated_features='%s'",
+ virTristateSwitchTypeToString(def->deprecated_feats));
+ }
}
/* Format children */
diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h
index f71d942ce6..28e26303ef 100644
--- a/src/conf/cpu_conf.h
+++ b/src/conf/cpu_conf.h
@@ -161,6 +161,7 @@ struct _virCPUDef {
virCPUMaxPhysAddrDef *addr;
virHostCPUTscInfo *tsc;
virTristateSwitch migratable; /* for host-passthrough mode */
+ virTristateSwitch deprecated_feats;
};
virCPUDef *virCPUDefNew(void);
diff --git a/src/conf/schemas/cputypes.rng b/src/conf/schemas/cputypes.rng
index 3a8910e09f..8edf1d14e3 100644
--- a/src/conf/schemas/cputypes.rng
+++ b/src/conf/schemas/cputypes.rng
@@ -439,6 +439,11 @@
<optional>
<ref name="cpuCheck"/>
</optional>
+ <optional>
+ <attribute name="deprecated_features">
+ <ref name="virOnOff"/>
+ </attribute>
+ </optional>
<optional>
<attribute name="migratable">
<ref name="virOnOff"/>
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index c1ae324ad4..64683ecfe0 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -6429,6 +6429,17 @@ qemuProcessUpdateGuestCPU(virDomainDef *def,
&def->os.arch) < 0)
return -1;
+ if (def->cpu->deprecated_feats &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION_DEPRECATED_PROPS)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("toggling deprecated features for CPU model is unsupported"));
+ return -1;
+ }
+
+ if (def->cpu->deprecated_feats == VIR_TRISTATE_SWITCH_OFF) {
+ virQEMUCapsUpdateCPUDeprecatedFeatures(qemuCaps, def->virtType, def->cpu);
+ }
+
return 0;
}
diff --git a/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.err b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.err
new file mode 100644
index 0000000000..936d1d5a46
--- /dev/null
+++ b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.err
@@ -0,0 +1 @@
+unsupported configuration: toggling deprecated features for CPU model is unsupported
diff --git a/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.xml b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.xml
new file mode 100644
index 0000000000..e1f7ba3857
--- /dev/null
+++ b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.xml
@@ -0,0 +1,25 @@
+<domain type='kvm'>
+ <name>guest</name>
+ <uuid>22782664-6b93-46bf-9595-317220dd2d1c</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio-8.2'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='host-model' check='partial' deprecated_features='off'/>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ <controller type='pci' index='0' model='pci-root'/>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0000'/>
+ </memballoon>
+ <panic model='s390'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.args b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.args
new file mode 100644
index 0000000000..ba6e7c5304
--- /dev/null
+++ b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.args
@@ -0,0 +1,32 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-guest \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
+/usr/bin/qemu-system-s390x \
+-name guest=guest,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
+-machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
+-accel kvm \
+-cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=off,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=off,ais=on,bpb=off,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=off,cmm=on,vxpdeh2=on \
+-m size=219136k \
+-object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":224395264}' \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 22782664-6b93-46bf-9595-317220dd2d1c \
+-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 \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-device '{"driver":"virtio-balloon-ccw","id":"balloon0","devno":"fe.0.0000"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.xml b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.xml
new file mode 100644
index 0000000000..fdd87acb1d
--- /dev/null
+++ b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.xml
@@ -0,0 +1,25 @@
+<domain type='kvm'>
+ <name>guest</name>
+ <uuid>22782664-6b93-46bf-9595-317220dd2d1c</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='host-model' check='partial' deprecated_features='off'/>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ <controller type='pci' index='0' model='pci-root'/>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0000'/>
+ </memballoon>
+ <panic model='s390'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.xml b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.xml
new file mode 100644
index 0000000000..67950715ec
--- /dev/null
+++ b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.xml
@@ -0,0 +1,15 @@
+<domain type='kvm'>
+ <name>guest</name>
+ <uuid>22782664-6b93-46bf-9595-317220dd2d1c</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio'>hvm</type>
+ </os>
+ <cpu mode='host-model' check='partial' deprecated_features='off'/>
+ <clock offset='utc'/>
+ <devices>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index e88aa6da92..bed562286d 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -2300,6 +2300,9 @@ mymain(void)
DO_TEST_CAPS_ARCH_LATEST("cpu-s390-zEC12", "s390x");
DO_TEST_CAPS_ARCH_LATEST("cpu-s390-features", "s390x");
+ DO_TEST_CAPS_ARCH_VER_FAILURE("cpu-model-deprecated-features-off", "s390x", "8.2.0");
+ DO_TEST_CAPS_ARCH_LATEST("cpu-model-deprecated-features-off", "s390x");
+
DO_TEST_CAPS_ARCH_LATEST_FULL("cpu-Haswell", "x86_64", ARG_CAPS_HOST_CPU_MODEL, QEMU_CPU_DEF_HASWELL);
DO_TEST_CAPS_ARCH_LATEST_FULL("cpu-Haswell2", "x86_64", ARG_CAPS_HOST_CPU_MODEL, QEMU_CPU_DEF_HASWELL);
DO_TEST_CAPS_ARCH_LATEST_FULL("cpu-Haswell3", "x86_64", ARG_CAPS_HOST_CPU_MODEL, QEMU_CPU_DEF_HASWELL);
--
2.49.0

View File

@ -1,198 +0,0 @@
From 2cd8164cffc5be97e2836862a4fc44578dae2b47 Mon Sep 17 00:00:00 2001
Message-ID: <2cd8164cffc5be97e2836862a4fc44578dae2b47.1752749355.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Fri, 14 Mar 2025 17:13:31 +0100
Subject: [PATCH] conf: add passthrough and xtsup attributes for IOMMU
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
For the newly supported AMD device.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 856f667c8a3b44417f3b5bb42db5e8bf971bacd4)
https://issues.redhat.com/browse/RHEL-50560
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
docs/formatdomain.rst | 8 +++++
src/conf/domain_conf.c | 30 +++++++++++++++++++
src/conf/domain_conf.h | 2 ++
src/conf/domain_validate.c | 9 ++++++
src/conf/schemas/domaincommon.rng | 10 +++++++
src/qemu/qemu_command.c | 2 ++
.../amd-iommu.x86_64-latest.args | 2 +-
tests/qemuxmlconfdata/amd-iommu.xml | 2 +-
8 files changed, 63 insertions(+), 2 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index ec7bdb07d0..847c9ebc6e 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -8885,6 +8885,14 @@ Example:
example to efficiently enable more than 255 vCPUs.
:since:`Since 10.7.0` (QEMU/KVM and ``intel`` model only)
+ ``passthrough``
+ Enable passthrough. In this mode, DMA read/writes are not translated.
+ :since:`Since 11.5.0` (QEMU/KVM and ``amd`` model only)
+
+ ``xtsup``
+ Enable x2APIC mode. Useful for higher number of guest CPUs.
+ :since:`Since 11.5.0` (QEMU/KVM and ``amd`` model only)
+
The ``virtio`` IOMMU devices can further have ``address`` element as described
in `Device addresses`_ (address has to by type of ``pci``).
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 7c8591e509..286e59a4c7 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -14063,6 +14063,14 @@ virDomainIOMMUDefParseXML(virDomainXMLOption *xmlopt,
if (virXMLPropTristateSwitch(driver, "dma_translation", VIR_XML_PROP_NONE,
&iommu->dma_translation) < 0)
return NULL;
+
+ if (virXMLPropTristateSwitch(driver, "xtsup", VIR_XML_PROP_NONE,
+ &iommu->xtsup) < 0)
+ return NULL;
+
+ if (virXMLPropTristateSwitch(driver, "passthrough", VIR_XML_PROP_NONE,
+ &iommu->pt) < 0)
+ return NULL;
}
if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt,
@@ -21682,6 +21690,20 @@ virDomainIOMMUDefCheckABIStability(virDomainIOMMUDef *src,
virTristateSwitchTypeToString(src->dma_translation));
return false;
}
+ if (src->pt != dst->pt) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Target domain IOMMU device dma translation '%1$s' does not match source '%2$s'"),
+ virTristateSwitchTypeToString(dst->pt),
+ virTristateSwitchTypeToString(src->pt));
+ return false;
+ }
+ if (src->xtsup != dst->xtsup) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Target domain IOMMU device dma translation '%1$s' does not match source '%2$s'"),
+ virTristateSwitchTypeToString(dst->xtsup),
+ virTristateSwitchTypeToString(src->xtsup));
+ return false;
+ }
return virDomainDeviceInfoCheckABIStability(&src->info, &dst->info);
}
@@ -27735,6 +27757,14 @@ virDomainIOMMUDefFormat(virBuffer *buf,
virBufferAsprintf(&driverAttrBuf, " dma_translation='%s'",
virTristateSwitchTypeToString(iommu->dma_translation));
}
+ if (iommu->pt != VIR_TRISTATE_SWITCH_ABSENT) {
+ virBufferAsprintf(&driverAttrBuf, " passthrough='%s'",
+ virTristateSwitchTypeToString(iommu->pt));
+ }
+ if (iommu->xtsup != VIR_TRISTATE_SWITCH_ABSENT) {
+ virBufferAsprintf(&driverAttrBuf, " xtsup='%s'",
+ virTristateSwitchTypeToString(iommu->xtsup));
+ }
virXMLFormatElement(&childBuf, "driver", &driverAttrBuf, NULL);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 343bb9bae0..e59d2e6c5f 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2987,6 +2987,8 @@ struct _virDomainIOMMUDef {
unsigned int aw_bits;
virDomainDeviceInfo info;
virTristateSwitch dma_translation;
+ virTristateSwitch xtsup;
+ virTristateSwitch pt;
};
typedef enum {
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 483cfbbe08..522fd0174f 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2999,6 +2999,15 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *iommu)
break;
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
+ if (iommu->pt != VIR_TRISTATE_SWITCH_ABSENT ||
+ iommu->xtsup != VIR_TRISTATE_SWITCH_ABSENT) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("iommu model '%1$s' doesn't support some additional attributes"),
+ virDomainIOMMUModelTypeToString(iommu->model));
+ return -1;
+ }
+ break;
+
case VIR_DOMAIN_IOMMU_MODEL_LAST:
break;
}
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index 38a0586f40..1b153acc48 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -6210,6 +6210,16 @@
<ref name="virOnOff"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="xtsup">
+ <ref name="virOnOff"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="passthrough">
+ <ref name="virOnOff"/>
+ </attribute>
+ </optional>
</element>
</optional>
<optional>
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index de535029a8..fffc8be08a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6113,6 +6113,8 @@ qemuBuildIOMMUCommandLine(virCommand *cmd,
"s:driver", "amd-iommu",
"s:pci-id", iommu->info.alias,
"S:intremap", qemuOnOffAuto(iommu->intremap),
+ "T:pt", iommu->pt,
+ "T:xtsup", iommu->xtsup,
"T:device-iotlb", iommu->iotlb,
NULL) < 0)
return -1;
diff --git a/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
index 36244edb3a..20d7e379e6 100644
--- a/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
@@ -27,7 +27,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-no-shutdown \
-boot strict=on \
-device '{"driver":"AMDVI-PCI","id":"iommu0","bus":"pcie.0","addr":"0x1"}' \
--device '{"driver":"amd-iommu","pci-id":"iommu0","intremap":"on","device-iotlb":true}' \
+-device '{"driver":"amd-iommu","pci-id":"iommu0","intremap":"on","pt":true,"xtsup":true,"device-iotlb":true}' \
-audiodev '{"id":"audio1","driver":"none"}' \
-global ICH9-LPC.noreboot=off \
-watchdog-action reset \
diff --git a/tests/qemuxmlconfdata/amd-iommu.xml b/tests/qemuxmlconfdata/amd-iommu.xml
index 0668ed4237..4ad79ce4ae 100644
--- a/tests/qemuxmlconfdata/amd-iommu.xml
+++ b/tests/qemuxmlconfdata/amd-iommu.xml
@@ -32,7 +32,7 @@
<watchdog model='itco' action='reset'/>
<memballoon model='none'/>
<iommu model='amd'>
- <driver intremap='on' iotlb='on'/>
+ <driver intremap='on' iotlb='on' passthrough='on' xtsup='on'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</iommu>
</devices>
--
2.50.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,422 +0,0 @@
From f4dffda866c49db8cd905d7fb4d35a70c996fa89 Mon Sep 17 00:00:00 2001
Message-ID: <f4dffda866c49db8cd905d7fb4d35a70c996fa89.1742990721.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Mon, 17 Feb 2025 16:30:07 +0000
Subject: [PATCH] conf: introduce support for multiple ACPI tables
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Currently we parse
<os>
<acpi>
<table type="slic">...path...</table>
</acpi>
</os>
into a flat 'char *slic_table' field which is rather an anti-pattern
as it has special cased a single attribute type.
This rewrites the internal design to permit multiple table types to
be parsed, should we add more in future. Each type is currently
permitted to only appear once.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 55f48d38522a4657815668dae9ed9184c8870766)
Resolves: https://issues.redhat.com/browse/RHEL-81041
---
src/conf/domain_conf.c | 92 +++++++++++++++++++++++----------
src/conf/domain_conf.h | 21 +++++++-
src/libvirt_private.syms | 2 +
src/libxl/libxl_conf.c | 5 +-
src/libxl/xen_xl.c | 15 ++++--
src/qemu/qemu_command.c | 13 +++--
src/security/security_dac.c | 18 ++++---
src/security/security_selinux.c | 16 +++---
src/security/virt-aa-helper.c | 5 +-
9 files changed, 134 insertions(+), 53 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 095b9bbaa2..b0628da279 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1456,6 +1456,11 @@ VIR_ENUM_IMPL(virDomainOsDefFirmwareFeature,
"secure-boot",
);
+VIR_ENUM_IMPL(virDomainOsACPITable,
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST,
+ "slic",
+);
+
VIR_ENUM_IMPL(virDomainCFPC,
VIR_DOMAIN_CFPC_LAST,
"none",
@@ -3890,6 +3895,15 @@ virDomainSecDefFree(virDomainSecDef *def)
g_free(def);
}
+void virDomainOSACPITableDefFree(virDomainOSACPITableDef *def)
+{
+ if (!def)
+ return;
+ g_free(def->path);
+ g_free(def);
+}
+
+
static void
virDomainOSDefClear(virDomainOSDef *os)
{
@@ -3915,7 +3929,9 @@ virDomainOSDefClear(virDomainOSDef *os)
g_free(os->cmdline);
g_free(os->dtb);
g_free(os->root);
- g_free(os->slic_table);
+ for (i = 0; i < os->nacpiTables; i++)
+ virDomainOSACPITableDefFree(os->acpiTables[i]);
+ g_free(os->acpiTables);
virDomainLoaderDefFree(os->loader);
g_free(os->bootloader);
g_free(os->bootloaderArgs);
@@ -17849,40 +17865,57 @@ virDomainDefParseBootAcpiOptions(virDomainDef *def,
int n;
g_autofree xmlNodePtr *nodes = NULL;
g_autofree char *tmp = NULL;
+ size_t ntables = 0;
+ virDomainOSACPITableDef **tables = NULL;
+ size_t i;
if ((n = virXPathNodeSet("./os/acpi/table", ctxt, &nodes)) < 0)
return -1;
- if (n > 1) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("Only one acpi table is supported"));
- return -1;
- }
+ if (n == 0)
+ return 0;
- if (n == 1) {
- tmp = virXMLPropString(nodes[0], "type");
+ tables = g_new0(virDomainOSACPITableDef *, n);
+ for (i = 0; i < n; i++) {
+ g_autofree char *path = virXMLNodeContentString(nodes[i]);
+ virDomainOsACPITable type;
+ size_t j;
- if (!tmp) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("Missing acpi table type"));
- return -1;
+ if (!path)
+ goto error;
+
+ if (virXMLPropEnum(nodes[i], "type",
+ virDomainOsACPITableTypeFromString,
+ VIR_XML_PROP_REQUIRED,
+ &type) < 0)
+ goto error;
+
+ for (j = 0; j < i; j++) {
+ if (tables[j]->type == type) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("ACPI table type '%1$s' may only appear once"),
+ virDomainOsACPITableTypeToString(type));
+ goto error;
+ }
}
- if (STREQ_NULLABLE(tmp, "slic")) {
- VIR_FREE(tmp);
- if (!(tmp = virXMLNodeContentString(nodes[0])))
- return -1;
-
- def->os.slic_table = virFileSanitizePath(tmp);
- } else {
- virReportError(VIR_ERR_XML_ERROR,
- _("Unknown acpi table type: %1$s"),
- tmp);
- return -1;
- }
+ tables[ntables] = g_new0(virDomainOSACPITableDef, 1);
+ tables[ntables]->type = type;
+ tables[ntables]->path = virFileSanitizePath(path);
+ ntables++;
}
+ def->os.nacpiTables = ntables;
+ def->os.acpiTables = tables;
+
return 0;
+
+ error:
+ for (i = 0; i < ntables; i++) {
+ virDomainOSACPITableDefFree(tables[i]);
+ }
+ g_free(tables);
+ return -1;
}
@@ -28447,11 +28480,16 @@ virDomainDefFormatInternalSetRootName(virDomainDef *def,
def->os.dtb);
virBufferEscapeString(buf, "<root>%s</root>\n",
def->os.root);
- if (def->os.slic_table) {
+
+ if (def->os.nacpiTables) {
virBufferAddLit(buf, "<acpi>\n");
virBufferAdjustIndent(buf, 2);
- virBufferEscapeString(buf, "<table type='slic'>%s</table>\n",
- def->os.slic_table);
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ virBufferAsprintf(buf, "<table type='%s'>",
+ virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));
+ virBufferEscapeString(buf, "%s</table>\n",
+ def->os.acpiTables[i]->path);
+ }
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</acpi>\n");
}
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 2d38e8fa51..f52b80caec 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2462,6 +2462,24 @@ typedef enum {
VIR_ENUM_DECL(virDomainOsDefFirmwareFeature);
+typedef enum {
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC,
+
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST
+} virDomainOsACPITable;
+
+VIR_ENUM_DECL(virDomainOsACPITable);
+
+struct _virDomainOSACPITableDef {
+ virDomainOsACPITable type;
+ char *path;
+};
+
+typedef struct _virDomainOSACPITableDef virDomainOSACPITableDef;
+void virDomainOSACPITableDefFree(virDomainOSACPITableDef *def);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainOSACPITableDef, virDomainOSACPITableDefFree);
+
+
struct _virDomainOSDef {
int type;
virDomainOsDefFirmware firmware;
@@ -2484,7 +2502,8 @@ struct _virDomainOSDef {
char *cmdline;
char *dtb;
char *root;
- char *slic_table;
+ size_t nacpiTables;
+ virDomainOSACPITableDef **acpiTables;
virDomainLoaderDef *loader;
char *bootloader;
char *bootloaderArgs;
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 727ab52cfe..be313ad67b 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -609,6 +609,8 @@ virDomainObjTaint;
virDomainObjUpdateModificationImpact;
virDomainObjWait;
virDomainObjWaitUntil;
+virDomainOsACPITableTypeFromString;
+virDomainOsACPITableTypeToString;
virDomainOsDefFirmwareTypeFromString;
virDomainOsDefFirmwareTypeToString;
virDomainOSTypeFromString;
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index c404226e43..7d845b97ec 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -582,8 +582,9 @@ libxlMakeDomBuildInfo(virDomainDef *def,
VIR_TRISTATE_SWITCH_ON);
#endif
- /* copy SLIC table path to acpi_firmware */
- b_info->u.hvm.acpi_firmware = g_strdup(def->os.slic_table);
+ /* copy the table path to acpi_firmware */
+ if (def->os.nacpiTables)
+ b_info->u.hvm.acpi_firmware = g_strdup(def->os.acpiTables[0]->path);
if (def->nsounds > 0) {
/*
diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c
index 53f6871efc..062b753cea 100644
--- a/src/libxl/xen_xl.c
+++ b/src/libxl/xen_xl.c
@@ -106,6 +106,7 @@ xenParseXLOS(virConf *conf, virDomainDef *def, virCaps *caps)
g_autofree char *bios = NULL;
g_autofree char *bios_path = NULL;
g_autofree char *boot = NULL;
+ g_autofree char *slic = NULL;
int val = 0;
if (xenConfigGetString(conf, "bios", &bios, NULL) < 0)
@@ -133,8 +134,15 @@ xenParseXLOS(virConf *conf, virDomainDef *def, virCaps *caps)
}
}
- if (xenConfigCopyStringOpt(conf, "acpi_firmware", &def->os.slic_table) < 0)
+ if (xenConfigCopyStringOpt(conf, "acpi_firmware", &slic) < 0)
return -1;
+ if (slic != NULL) {
+ def->os.nacpiTables = 1;
+ def->os.acpiTables = g_new0(virDomainOSACPITableDef *, 1);
+ def->os.acpiTables[0] = g_new0(virDomainOSACPITableDef, 1);
+ def->os.acpiTables[0]->type = VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC;
+ def->os.acpiTables[0]->path = g_steal_pointer(&slic);
+ }
if (xenConfigCopyStringOpt(conf, "kernel", &def->os.kernel) < 0)
return -1;
@@ -1134,8 +1142,9 @@ xenFormatXLOS(virConf *conf, virDomainDef *def)
return -1;
}
- if (def->os.slic_table &&
- xenConfigSetString(conf, "acpi_firmware", def->os.slic_table) < 0)
+ if (def->os.nacpiTables &&
+ xenConfigSetString(conf, "acpi_firmware",
+ def->os.acpiTables[0]->path) < 0)
return -1;
if (def->os.kernel &&
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 24dac0ce0f..756dd2168b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -127,6 +127,11 @@ VIR_ENUM_IMPL(qemuNumaPolicy,
"restrictive",
);
+VIR_ENUM_DECL(qemuACPITableSIG);
+VIR_ENUM_IMPL(qemuACPITableSIG,
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST,
+ "SLIC");
+
const char *
qemuAudioDriverTypeToString(virDomainAudioType type)
@@ -5968,6 +5973,7 @@ qemuBuildBootCommandLine(virCommand *cmd,
{
g_auto(virBuffer) boot_buf = VIR_BUFFER_INITIALIZER;
g_autofree char *boot_opts_str = NULL;
+ size_t i;
if (def->os.bootmenu) {
if (def->os.bootmenu == VIR_TRISTATE_BOOL_YES)
@@ -6001,11 +6007,12 @@ qemuBuildBootCommandLine(virCommand *cmd,
virCommandAddArgList(cmd, "-append", def->os.cmdline, NULL);
if (def->os.dtb)
virCommandAddArgList(cmd, "-dtb", def->os.dtb, NULL);
- if (def->os.slic_table) {
+ for (i = 0; i < def->os.nacpiTables; i++) {
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
virCommandAddArg(cmd, "-acpitable");
- virBufferAddLit(&buf, "sig=SLIC,file=");
- virQEMUBuildBufferEscapeComma(&buf, def->os.slic_table);
+ virBufferAsprintf(&buf, "sig=%s,file=",
+ qemuACPITableSIGTypeToString(def->os.acpiTables[i]->type));
+ virQEMUBuildBufferEscapeComma(&buf, def->os.acpiTables[i]->path);
virCommandAddArgBuffer(cmd, &buf);
}
diff --git a/src/security/security_dac.c b/src/security/security_dac.c
index 0505f4e4a3..b4d61bc576 100644
--- a/src/security/security_dac.c
+++ b/src/security/security_dac.c
@@ -2050,9 +2050,10 @@ virSecurityDACRestoreAllLabel(virSecurityManager *mgr,
virSecurityDACRestoreFileLabel(mgr, def->os.dtb) < 0)
rc = -1;
- if (def->os.slic_table &&
- virSecurityDACRestoreFileLabel(mgr, def->os.slic_table) < 0)
- rc = -1;
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ if (virSecurityDACRestoreFileLabel(mgr, def->os.acpiTables[i]->path) < 0)
+ rc = -1;
+ }
if (def->pstore &&
virSecurityDACRestoreFileLabel(mgr, def->pstore->path) < 0)
@@ -2300,11 +2301,12 @@ virSecurityDACSetAllLabel(virSecurityManager *mgr,
user, group, true) < 0)
return -1;
- if (def->os.slic_table &&
- virSecurityDACSetOwnership(mgr, NULL,
- def->os.slic_table,
- user, group, true) < 0)
- return -1;
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ if (virSecurityDACSetOwnership(mgr, NULL,
+ def->os.acpiTables[i]->path,
+ user, group, true) < 0)
+ return -1;
+ }
if (def->pstore &&
virSecurityDACSetOwnership(mgr, NULL,
diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
index cdc32d9b34..b8659e33d6 100644
--- a/src/security/security_selinux.c
+++ b/src/security/security_selinux.c
@@ -3013,9 +3013,10 @@ virSecuritySELinuxRestoreAllLabel(virSecurityManager *mgr,
virSecuritySELinuxRestoreFileLabel(mgr, def->os.dtb, true) < 0)
rc = -1;
- if (def->os.slic_table &&
- virSecuritySELinuxRestoreFileLabel(mgr, def->os.slic_table, true) < 0)
- rc = -1;
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ if (virSecuritySELinuxRestoreFileLabel(mgr, def->os.acpiTables[i]->path, true) < 0)
+ rc = -1;
+ }
if (def->pstore &&
virSecuritySELinuxRestoreFileLabel(mgr, def->pstore->path, true) < 0)
@@ -3443,10 +3444,11 @@ virSecuritySELinuxSetAllLabel(virSecurityManager *mgr,
data->content_context, true) < 0)
return -1;
- if (def->os.slic_table &&
- virSecuritySELinuxSetFilecon(mgr, def->os.slic_table,
- data->content_context, true) < 0)
- return -1;
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ if (virSecuritySELinuxSetFilecon(mgr, def->os.acpiTables[i]->path,
+ data->content_context, true) < 0)
+ return -1;
+ }
if (def->pstore &&
virSecuritySELinuxSetFilecon(mgr, def->pstore->path,
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index e82b5de2b4..e68e908994 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -1002,9 +1002,10 @@ get_files(vahControl * ctl)
if (vah_add_file(&buf, ctl->def->os.dtb, "r") != 0)
goto cleanup;
- if (ctl->def->os.slic_table)
- if (vah_add_file(&buf, ctl->def->os.slic_table, "r") != 0)
+ for (i = 0; i < ctl->def->os.nacpiTables; i++) {
+ if (vah_add_file(&buf, ctl->def->os.acpiTables[i]->path, "r") != 0)
goto cleanup;
+ }
if (ctl->def->pstore)
if (vah_add_file(&buf, ctl->def->pstore->path, "rw") != 0)
--
2.49.0

View File

@ -1,103 +0,0 @@
From 29ea0453595ee14cdd64b2e9c07343aa870426d0 Mon Sep 17 00:00:00 2001
Message-ID: <29ea0453595ee14cdd64b2e9c07343aa870426d0.1744876587.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Thu, 6 Mar 2025 19:19:12 -0500
Subject: [PATCH] conf: parse interface/source/@dev for all interface types
(with backend type='passt')
The original implementation of the passt backend for vhost-user
interfaces erroneously forgot to parse:
<source dev='blah'/>
for interface type='vhostuser', so it wasn't being added to the passt
commandline, and also wasn't being saved to the domain config. Now we
parse it whenever the <backend> type='passt', no matter what the
interface type, and then throw an error during validation if
source/@dev was specified for interface type = 'user|vhostuser' and
backend type != 'passt'.
Fixes: 1e9054b9c79d721a55f413c2983c5370044f8f60
Resolves: https://issues.redhat.com/browse/RHEL-82539
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 4c979edaa545c8425f7a856c06ebc0de939d4b9f)
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/conf/domain_conf.c | 8 +++++---
src/conf/domain_validate.c | 8 +++++++-
.../qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml | 2 ++
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f6d3d849eb..726c3095ed 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9919,9 +9919,6 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
break;
case VIR_DOMAIN_NET_TYPE_USER:
- def->sourceDev = virXMLPropString(source_node, "dev");
- break;
-
case VIR_DOMAIN_NET_TYPE_NULL:
case VIR_DOMAIN_NET_TYPE_LAST:
break;
@@ -10036,6 +10033,11 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
return NULL;
}
+ if (def->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
+ def->sourceDev = virXMLPropString(source_node, "dev");
+ }
+
+
def->linkstate = VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DEFAULT;
if (linkstate != NULL) {
if ((def->linkstate = virDomainNetInterfaceLinkStateTypeFromString(linkstate)) <= 0) {
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 597ae3d938..9cedc8d6d2 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2160,12 +2160,18 @@ virDomainNetDefValidate(const virDomainNetDef *net)
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",
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("The 'passt' backend can only be used with interface type='user' or type='vhostuser'"));
return -1;
}
}
+ if (net->sourceDev && net->backend.type != VIR_DOMAIN_NET_BACKEND_PASST) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("The 'dev' attribute of the <source> element can only be used with <interface> type='user' or type='vhostuser' if the <backend> type='passt'"));
+ return -1;
+ }
+
if (net->nPortForwards > 0) {
size_t p;
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
index a1f9366722..529aff11f8 100644
--- a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
@@ -33,6 +33,7 @@
<controller type='pci' index='0' model='pci-root'/>
<interface type='vhostuser'>
<mac address='00:11:22:33:44:55'/>
+ <source dev='eth42'/>
<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'>
@@ -63,6 +64,7 @@
</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'/>
--
2.49.0

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

@ -1,119 +0,0 @@
From bfde8a471a604ddc3bfe7ee5baddbedc379ddf34 Mon Sep 17 00:00:00 2001
Message-ID: <bfde8a471a604ddc3bfe7ee5baddbedc379ddf34.1742990721.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Mon, 17 Feb 2025 16:58:27 +0000
Subject: [PATCH] conf: support MSDM ACPI table type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The MSDM ACPI table is an alternative for the SLIC table type,
sometimes used by Microsoft for Windows Licensing checks:
https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653305(v=vs.85)
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 32765cd14e99411dfd14a230be86f2aecf7e9a7a)
Resolves: https://issues.redhat.com/browse/RHEL-81041
---
docs/formatdomain.rst | 4 ++++
src/conf/domain_conf.c | 1 +
src/conf/domain_conf.h | 1 +
src/conf/schemas/domaincommon.rng | 1 +
src/libxl/libxl_domain.c | 1 +
src/qemu/qemu_command.c | 3 ++-
src/qemu/qemu_validate.c | 1 +
7 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index b03b5317aa..c144851b62 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -497,6 +497,10 @@ These options apply to any form of booting of the guest OS.
software licensing information. The ACPI table signature in the
header will be forced to ``SLIC`` (:since:`Since 1.3.5 (QEMU)`,
mis-interpreted as ``rawset`` :since:`Since 5.9.0 (Xen)`).
+ * ``msdm``: a single ACPI table with header and data, providing
+ Microsoft Data Management information. The ACPI table signature
+ in the header will be forced to ``MSDM``
+ (:since:`Since 11.2.0`).
Each type may be used only once, except for ``raw`` which can
appear multiple times.
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2ee0403c86..f6d3d849eb 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1461,6 +1461,7 @@ VIR_ENUM_IMPL(virDomainOsACPITable,
"raw",
"rawset",
"slic",
+ "msdm",
);
VIR_ENUM_IMPL(virDomainCFPC,
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index bc3f42888e..961b7b056c 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2466,6 +2466,7 @@ typedef enum {
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC,
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST
} virDomainOsACPITable;
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index 99bcc90d4f..d46eb44588 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -7192,6 +7192,7 @@
<value>raw</value>
<value>rawset</value>
<value>slic</value>
+ <value>msdm</value>
</choice>
</attribute>
<ref name="absFilePath"/>
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index e31d92d903..c5a556ec78 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -339,6 +339,7 @@ libxlDomainDefValidate(const virDomainDef *def,
break;
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
+ case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("ACPI table type '%1$s' is not supported"),
virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index adf7b21b14..9fe191d3b9 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -132,7 +132,8 @@ VIR_ENUM_IMPL(qemuACPITableSIG,
VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST,
"", /* raw */
"", /* rawset */
- "SLIC");
+ "SLIC",
+ "");
const char *
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index b088e54dd0..378f502ea7 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -734,6 +734,7 @@ qemuValidateDomainDefBoot(const virDomainDef *def,
break;
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
+ case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("ACPI table type '%1$s' is not supported"),
virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));
--
2.49.0

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

View File

@ -1,669 +0,0 @@
From 7a9d85a3159fdc0ecec40338f7f28df91ba08a0c Mon Sep 17 00:00:00 2001
Message-ID: <7a9d85a3159fdc0ecec40338f7f28df91ba08a0c.1747908717.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 18 Dec 2024 13:46:25 +0100
Subject: [PATCH] cpu_map: Add GraniteRapids-v2 CPU model
Introduced by QEMU 9.2.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 41a6de76bc6e31a206d9d82c84c5d485b710fe01)
https://issues.redhat.com/browse/RHEL-71897
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 4dbeaa7e1ce9fffb3e2a2b19ba10cc3d2c19091d)
Conflicts:
- tests/domaincapsdata/qemu_10.0.0* were updated by a later
upstream commit (712c39f987e1fb75a9fe3168dfb2501b719b5070)
which was already backported to RHEL-9 as commit
d056b57fff98c30ef64a695dec44a2ddfcc1c55b with the hunks
related to GraniteRapids-v2 removed, thus this backport has to
incorporate those hunks
https://issues.redhat.com/browse/RHEL-87796
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
=> 4c2001ea03d9466db571ddf07248c20d652ac775
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_GraniteRapids-v2.xml | 206 ++++++++++++++++++
.../domaincapsdata/qemu_10.0.0-q35.x86_64.xml | 57 +++++
.../domaincapsdata/qemu_10.0.0-tcg.x86_64.xml | 47 ++++
tests/domaincapsdata/qemu_10.0.0.x86_64.xml | 57 +++++
.../domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 57 +++++
.../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 47 ++++
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 57 +++++
9 files changed, 530 insertions(+)
create mode 100644 src/cpu_map/x86_GraniteRapids-v2.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 8e74195312..dba2f21811 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -121,6 +121,7 @@
<include filename='x86_SapphireRapids-v3.xml'/>
<include filename='x86_GraniteRapids.xml'/>
<include filename='x86_GraniteRapids-v1.xml'/>
+ <include filename='x86_GraniteRapids-v2.xml'/>
<include filename='x86_SierraForest.xml'/>
<include filename='x86_SierraForest-v1.xml'/>
<include filename='x86_Denverton.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index fa7faa4016..9a1c048620 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -77,6 +77,7 @@ cpumap_data = [
'x86_EPYC.xml',
'x86_features.xml',
'x86_GraniteRapids-v1.xml',
+ 'x86_GraniteRapids-v2.xml',
'x86_GraniteRapids.xml',
'x86_Haswell-IBRS.xml',
'x86_Haswell-noTSX-IBRS.xml',
diff --git a/src/cpu_map/x86_GraniteRapids-v2.xml b/src/cpu_map/x86_GraniteRapids-v2.xml
new file mode 100644
index 0000000000..855a43d4ad
--- /dev/null
+++ b/src/cpu_map/x86_GraniteRapids-v2.xml
@@ -0,0 +1,206 @@
+<cpus>
+ <model name='GraniteRapids-v2'>
+ <decode host='on' guest='off'/>
+ <signature family='6' model='173'/>
+ <vendor name='Intel'/>
+ <feature name='3dnowprefetch'/>
+ <feature name='abm'/>
+ <feature name='adx'/>
+ <feature name='aes'/>
+ <feature name='amx-bf16'/>
+ <feature name='amx-fp16'/>
+ <feature name='amx-int8'/>
+ <feature name='amx-tile'/>
+ <feature name='apic'/>
+ <feature name='arat'/>
+ <feature name='arch-capabilities'/>
+ <feature name='avx'/>
+ <feature name='avx-vnni'/>
+ <feature name='avx10'/>
+ <feature name='avx10-128'/>
+ <feature name='avx10-256'/>
+ <feature name='avx10-512'/>
+ <feature name='avx2'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-fp16'/>
+ <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='bmi1'/>
+ <feature name='bmi2'/>
+ <feature name='bus-lock-detect'/>
+ <feature name='cldemote'/>
+ <feature name='clflush'/>
+ <feature name='clflushopt'/>
+ <feature name='clwb'/>
+ <feature name='cmov'/>
+ <feature name='cx16'/>
+ <feature name='cx8'/>
+ <feature name='de'/>
+ <feature name='erms'/>
+ <feature name='f16c'/>
+ <feature name='fbsdp-no'/>
+ <feature name='fma'/>
+ <feature name='fpu'/>
+ <feature name='fsgsbase'/>
+ <feature name='fsrc'/>
+ <feature name='fsrm'/>
+ <feature name='fsrs'/>
+ <feature name='fxsr'/>
+ <feature name='fzrm'/>
+ <feature name='gfni'/>
+ <feature name='hle'/>
+ <feature name='ibrs-all'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='lahf_lm'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mcdt-no'/>
+ <feature name='mce'/>
+ <feature name='mds-no'/>
+ <feature name='mmx'/>
+ <feature name='movbe'/>
+ <feature name='movdir64b'/>
+ <feature name='movdiri'/>
+ <feature name='msr'/>
+ <feature name='mtrr'/>
+ <feature name='nx'/>
+ <feature name='pae'/>
+ <feature name='pat'/>
+ <feature name='pbrsb-no'/>
+ <feature name='pcid'/>
+ <feature name='pclmuldq'/>
+ <feature name='pdpe1gb'/>
+ <feature name='pge'/>
+ <feature name='pku'/>
+ <feature name='pni'/>
+ <feature name='popcnt'/>
+ <feature name='prefetchiti'/>
+ <feature name='pschange-mc-no'/>
+ <feature name='psdp-no'/>
+ <feature name='pse'/>
+ <feature name='pse36'/>
+ <feature name='rdctl-no'/>
+ <feature name='rdpid'/>
+ <feature name='rdrand'/>
+ <feature name='rdseed'/>
+ <feature name='rdtscp'/>
+ <feature name='rtm'/>
+ <feature name='sbdr-ssdp-no'/>
+ <feature name='sep'/>
+ <feature name='serialize'/>
+ <feature name='sha-ni'/>
+ <feature name='skip-l1dfl-vmentry'/>
+ <feature name='smap'/>
+ <feature name='smep'/>
+ <feature name='spec-ctrl'/>
+ <feature name='ss'/>
+ <feature name='ssbd'/>
+ <feature name='sse'/>
+ <feature name='sse2'/>
+ <feature name='sse4.1'/>
+ <feature name='sse4.2'/>
+ <feature name='ssse3'/>
+ <feature name='syscall'/>
+ <feature name='taa-no'/>
+ <feature name='tsc'/>
+ <feature name='tsc-deadline'/>
+ <feature name='tsc_adjust'/>
+ <feature name='tsx-ldtrk'/>
+ <feature name='umip'/>
+ <feature name='vaes'/>
+ <feature name='vme'/>
+ <feature name='vmx-activity-hlt'/>
+ <feature name='vmx-apicv-register'/>
+ <feature name='vmx-apicv-vid'/>
+ <feature name='vmx-apicv-x2apic'/>
+ <feature name='vmx-apicv-xapic'/>
+ <feature name='vmx-cr3-load-noexit'/>
+ <feature name='vmx-cr3-store-noexit'/>
+ <feature name='vmx-cr8-load-exit'/>
+ <feature name='vmx-cr8-store-exit'/>
+ <feature name='vmx-desc-exit'/>
+ <feature name='vmx-entry-ia32e-mode'/>
+ <feature name='vmx-entry-load-efer'/>
+ <feature name='vmx-entry-load-pat'/>
+ <feature name='vmx-entry-load-perf-global-ctrl'/>
+ <feature name='vmx-entry-noload-debugctl'/>
+ <feature name='vmx-ept'/>
+ <feature name='vmx-ept-1gb'/>
+ <feature name='vmx-ept-2mb'/>
+ <feature name='vmx-ept-execonly'/>
+ <feature name='vmx-eptad'/>
+ <feature name='vmx-eptp-switching'/>
+ <feature name='vmx-exit-ack-intr'/>
+ <feature name='vmx-exit-load-efer'/>
+ <feature name='vmx-exit-load-pat'/>
+ <feature name='vmx-exit-load-perf-global-ctrl'/>
+ <feature name='vmx-exit-nosave-debugctl'/>
+ <feature name='vmx-exit-save-efer'/>
+ <feature name='vmx-exit-save-pat'/>
+ <feature name='vmx-exit-save-preemption-timer'/>
+ <feature name='vmx-flexpriority'/>
+ <feature name='vmx-hlt-exit'/>
+ <feature name='vmx-ins-outs'/>
+ <feature name='vmx-intr-exit'/>
+ <feature name='vmx-invept'/>
+ <feature name='vmx-invept-all-context'/>
+ <feature name='vmx-invept-single-context'/>
+ <feature name='vmx-invlpg-exit'/>
+ <feature name='vmx-invpcid-exit'/>
+ <feature name='vmx-invvpid-all-context'/>
+ <feature name='vmx-invvpid-single-addr'/>
+ <feature name='vmx-invvpid-single-context-noglobals'/>
+ <feature name='vmx-io-bitmap'/>
+ <feature name='vmx-io-exit'/>
+ <feature name='vmx-monitor-exit'/>
+ <feature name='vmx-movdr-exit'/>
+ <feature name='vmx-msr-bitmap'/>
+ <feature name='vmx-mtf'/>
+ <feature name='vmx-mwait-exit'/>
+ <feature name='vmx-nmi-exit'/>
+ <feature name='vmx-page-walk-4'/>
+ <feature name='vmx-page-walk-5'/>
+ <feature name='vmx-pause-exit'/>
+ <feature name='vmx-pml'/>
+ <feature name='vmx-posted-intr'/>
+ <feature name='vmx-preemption-timer'/>
+ <feature name='vmx-rdpmc-exit'/>
+ <feature name='vmx-rdrand-exit'/>
+ <feature name='vmx-rdseed-exit'/>
+ <feature name='vmx-rdtsc-exit'/>
+ <feature name='vmx-rdtscp-exit'/>
+ <feature name='vmx-secondary-ctls'/>
+ <feature name='vmx-shadow-vmcs'/>
+ <feature name='vmx-store-lma'/>
+ <feature name='vmx-true-ctls'/>
+ <feature name='vmx-tsc-offset'/>
+ <feature name='vmx-unrestricted-guest'/>
+ <feature name='vmx-vintr-pending'/>
+ <feature name='vmx-vmfunc'/>
+ <feature name='vmx-vmwrite-vmexit-fields'/>
+ <feature name='vmx-vnmi'/>
+ <feature name='vmx-vnmi-pending'/>
+ <feature name='vmx-vpid'/>
+ <feature name='vmx-wbinvd-exit'/>
+ <feature name='vmx-xsaves'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='wbnoinvd'/>
+ <feature name='x2apic'/>
+ <feature name='xfd'/>
+ <feature name='xgetbv1'/>
+ <feature name='xsave'/>
+ <feature name='xsavec'/>
+ <feature name='xsaveopt'/>
+ <feature name='xsaves'/>
+ </model>
+</cpus>
diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml
index e4d8862569..f1a7963d34 100644
--- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml
@@ -565,6 +565,63 @@
<feature name='xfd'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='Intel'>GraniteRapids-v2</model>
+ <blockers model='GraniteRapids-v2'>
+ <feature name='amx-bf16'/>
+ <feature name='amx-fp16'/>
+ <feature name='amx-int8'/>
+ <feature name='amx-tile'/>
+ <feature name='avx-vnni'/>
+ <feature name='avx10'/>
+ <feature name='avx10-128'/>
+ <feature name='avx10-256'/>
+ <feature name='avx10-512'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-fp16'/>
+ <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='bus-lock-detect'/>
+ <feature name='cldemote'/>
+ <feature name='erms'/>
+ <feature name='fbsdp-no'/>
+ <feature name='fsrc'/>
+ <feature name='fsrm'/>
+ <feature name='fsrs'/>
+ <feature name='fzrm'/>
+ <feature name='gfni'/>
+ <feature name='hle'/>
+ <feature name='ibrs-all'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='mcdt-no'/>
+ <feature name='movdir64b'/>
+ <feature name='movdiri'/>
+ <feature name='pbrsb-no'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='prefetchiti'/>
+ <feature name='psdp-no'/>
+ <feature name='rtm'/>
+ <feature name='sbdr-ssdp-no'/>
+ <feature name='serialize'/>
+ <feature name='spec-ctrl'/>
+ <feature name='ss'/>
+ <feature name='taa-no'/>
+ <feature name='tsx-ldtrk'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xfd'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
<blockers model='Haswell'>
<feature name='erms'/>
diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml
index a21ed4997e..9a7d39c1f8 100644
--- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml
@@ -733,6 +733,53 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='Intel'>GraniteRapids-v2</model>
+ <blockers model='GraniteRapids-v2'>
+ <feature name='amx-bf16'/>
+ <feature name='amx-fp16'/>
+ <feature name='amx-int8'/>
+ <feature name='amx-tile'/>
+ <feature name='arch-capabilities'/>
+ <feature name='avx-vnni'/>
+ <feature name='avx10'/>
+ <feature name='avx10-128'/>
+ <feature name='avx10-256'/>
+ <feature name='avx10-512'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-fp16'/>
+ <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='bus-lock-detect'/>
+ <feature name='cldemote'/>
+ <feature name='gfni'/>
+ <feature name='hle'/>
+ <feature name='invpcid'/>
+ <feature name='mcdt-no'/>
+ <feature name='movdir64b'/>
+ <feature name='movdiri'/>
+ <feature name='pcid'/>
+ <feature name='prefetchiti'/>
+ <feature name='rtm'/>
+ <feature name='serialize'/>
+ <feature name='spec-ctrl'/>
+ <feature name='ssbd'/>
+ <feature name='tsc-deadline'/>
+ <feature name='tsc_adjust'/>
+ <feature name='tsx-ldtrk'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xfd'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
<blockers model='Haswell'>
<feature name='hle'/>
diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml
index f4989749ce..64dc451eda 100644
--- a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml
@@ -564,6 +564,63 @@
<feature name='xfd'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='Intel'>GraniteRapids-v2</model>
+ <blockers model='GraniteRapids-v2'>
+ <feature name='amx-bf16'/>
+ <feature name='amx-fp16'/>
+ <feature name='amx-int8'/>
+ <feature name='amx-tile'/>
+ <feature name='avx-vnni'/>
+ <feature name='avx10'/>
+ <feature name='avx10-128'/>
+ <feature name='avx10-256'/>
+ <feature name='avx10-512'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-fp16'/>
+ <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='bus-lock-detect'/>
+ <feature name='cldemote'/>
+ <feature name='erms'/>
+ <feature name='fbsdp-no'/>
+ <feature name='fsrc'/>
+ <feature name='fsrm'/>
+ <feature name='fsrs'/>
+ <feature name='fzrm'/>
+ <feature name='gfni'/>
+ <feature name='hle'/>
+ <feature name='ibrs-all'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='mcdt-no'/>
+ <feature name='movdir64b'/>
+ <feature name='movdiri'/>
+ <feature name='pbrsb-no'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='prefetchiti'/>
+ <feature name='psdp-no'/>
+ <feature name='rtm'/>
+ <feature name='sbdr-ssdp-no'/>
+ <feature name='serialize'/>
+ <feature name='spec-ctrl'/>
+ <feature name='ss'/>
+ <feature name='taa-no'/>
+ <feature name='tsx-ldtrk'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xfd'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
<blockers model='Haswell'>
<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 99445e5f44..d5db9af49e 100644
--- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml
@@ -565,6 +565,63 @@
<feature name='xfd'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='Intel'>GraniteRapids-v2</model>
+ <blockers model='GraniteRapids-v2'>
+ <feature name='amx-bf16'/>
+ <feature name='amx-fp16'/>
+ <feature name='amx-int8'/>
+ <feature name='amx-tile'/>
+ <feature name='avx-vnni'/>
+ <feature name='avx10'/>
+ <feature name='avx10-128'/>
+ <feature name='avx10-256'/>
+ <feature name='avx10-512'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-fp16'/>
+ <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='bus-lock-detect'/>
+ <feature name='cldemote'/>
+ <feature name='erms'/>
+ <feature name='fbsdp-no'/>
+ <feature name='fsrc'/>
+ <feature name='fsrm'/>
+ <feature name='fsrs'/>
+ <feature name='fzrm'/>
+ <feature name='gfni'/>
+ <feature name='hle'/>
+ <feature name='ibrs-all'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='mcdt-no'/>
+ <feature name='movdir64b'/>
+ <feature name='movdiri'/>
+ <feature name='pbrsb-no'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='prefetchiti'/>
+ <feature name='psdp-no'/>
+ <feature name='rtm'/>
+ <feature name='sbdr-ssdp-no'/>
+ <feature name='serialize'/>
+ <feature name='spec-ctrl'/>
+ <feature name='ss'/>
+ <feature name='taa-no'/>
+ <feature name='tsx-ldtrk'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xfd'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
<blockers model='Haswell'>
<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 8bf967c99f..7ccdc11412 100644
--- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml
@@ -733,6 +733,53 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='Intel'>GraniteRapids-v2</model>
+ <blockers model='GraniteRapids-v2'>
+ <feature name='amx-bf16'/>
+ <feature name='amx-fp16'/>
+ <feature name='amx-int8'/>
+ <feature name='amx-tile'/>
+ <feature name='arch-capabilities'/>
+ <feature name='avx-vnni'/>
+ <feature name='avx10'/>
+ <feature name='avx10-128'/>
+ <feature name='avx10-256'/>
+ <feature name='avx10-512'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-fp16'/>
+ <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='bus-lock-detect'/>
+ <feature name='cldemote'/>
+ <feature name='gfni'/>
+ <feature name='hle'/>
+ <feature name='invpcid'/>
+ <feature name='mcdt-no'/>
+ <feature name='movdir64b'/>
+ <feature name='movdiri'/>
+ <feature name='pcid'/>
+ <feature name='prefetchiti'/>
+ <feature name='rtm'/>
+ <feature name='serialize'/>
+ <feature name='spec-ctrl'/>
+ <feature name='ssbd'/>
+ <feature name='tsc-deadline'/>
+ <feature name='tsc_adjust'/>
+ <feature name='tsx-ldtrk'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xfd'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
<blockers model='Haswell'>
<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 40aa971144..05a5ce4bee 100644
--- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml
@@ -564,6 +564,63 @@
<feature name='xfd'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='Intel'>GraniteRapids-v2</model>
+ <blockers model='GraniteRapids-v2'>
+ <feature name='amx-bf16'/>
+ <feature name='amx-fp16'/>
+ <feature name='amx-int8'/>
+ <feature name='amx-tile'/>
+ <feature name='avx-vnni'/>
+ <feature name='avx10'/>
+ <feature name='avx10-128'/>
+ <feature name='avx10-256'/>
+ <feature name='avx10-512'/>
+ <feature name='avx512-bf16'/>
+ <feature name='avx512-fp16'/>
+ <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='bus-lock-detect'/>
+ <feature name='cldemote'/>
+ <feature name='erms'/>
+ <feature name='fbsdp-no'/>
+ <feature name='fsrc'/>
+ <feature name='fsrm'/>
+ <feature name='fsrs'/>
+ <feature name='fzrm'/>
+ <feature name='gfni'/>
+ <feature name='hle'/>
+ <feature name='ibrs-all'/>
+ <feature name='invpcid'/>
+ <feature name='la57'/>
+ <feature name='mcdt-no'/>
+ <feature name='movdir64b'/>
+ <feature name='movdiri'/>
+ <feature name='pbrsb-no'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='prefetchiti'/>
+ <feature name='psdp-no'/>
+ <feature name='rtm'/>
+ <feature name='sbdr-ssdp-no'/>
+ <feature name='serialize'/>
+ <feature name='spec-ctrl'/>
+ <feature name='ss'/>
+ <feature name='taa-no'/>
+ <feature name='tsx-ldtrk'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xfd'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='Intel' canonical='Haswell-v1'>Haswell</model>
<blockers model='Haswell'>
<feature name='erms'/>
--
2.49.0

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,51 +0,0 @@
From 9a44ff8f39bc9873ea9efa42d5705dab5f43be2a Mon Sep 17 00:00:00 2001
Message-ID: <9a44ff8f39bc9873ea9efa42d5705dab5f43be2a.1747908717.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 18 Dec 2024 13:30:16 +0100
Subject: [PATCH] cpu_map: Add avx10* CPU features
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 30f05acf354437a776b528487bb70ddccf324cd2)
https://issues.redhat.com/browse/RHEL-87796
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/x86_features.xml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml
index 08bf014604..8be8fab42e 100644
--- a/src/cpu_map/x86_features.xml
+++ b/src/cpu_map/x86_features.xml
@@ -469,6 +469,9 @@
<feature name='prefetchiti'>
<cpuid eax_in='0x00000007' ecx_in='0x00000001' edx='0x00004000'/>
</feature>
+ <feature name='avx10'>
+ <cpuid eax_in='0x00000007' ecx_in='0x00000001' edx='0x00080000'/>
+ </feature>
<!-- cpuid level 0x00000007, 0x0002 (edx) -->
<feature name='mcdt-no'>
@@ -541,6 +544,17 @@
<cpuid eax_in='0x00000014' ecx_in='0x00000000' ecx='0x80000000'/>
</feature>
+ <!-- cpuid level 0x00000024, 0x0000 (ebx) -->
+ <feature name='avx10-128'>
+ <cpuid eax_in='0x00000024' ecx_in='0x00000000' ebx='0x00010000'/>
+ </feature>
+ <feature name='avx10-256'>
+ <cpuid eax_in='0x00000024' ecx_in='0x00000000' ebx='0x00020000'/>
+ </feature>
+ <feature name='avx10-512'>
+ <cpuid eax_in='0x00000024' ecx_in='0x00000000' ebx='0x00040000'/>
+ </feature>
+
<!-- cpuid level 0x80000001 (ecx) -->
<feature name='lahf_lm'>
<alias name='lahf-lm' source='qemu'/>
--
2.49.0

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

@ -1,46 +0,0 @@
From a28c3abf6f5c7c1d8d45b3fc681f6768e2a3d7a9 Mon Sep 17 00:00:00 2001
Message-ID: <a28c3abf6f5c7c1d8d45b3fc681f6768e2a3d7a9.1747908718.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 18 Dec 2024 13:27:40 +0100
Subject: [PATCH] cpu_map: Add sha512, sm3, and sm4 CPU features
Introduced by Clearwater Forest platform.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 212b7d8e280cabddef1f0996bd9553c6a55babd8)
https://issues.redhat.com/browse/RHEL-71898
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 153ee694e806ebf1ba684c1b7ddfa7a90c9d3adf)
https://issues.redhat.com/browse/RHEL-87796
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/x86_features.xml | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml
index 8be8fab42e..0e1fee6e98 100644
--- a/src/cpu_map/x86_features.xml
+++ b/src/cpu_map/x86_features.xml
@@ -416,6 +416,15 @@
</feature>
<!-- cpuid level 0x00000007, 0x0001 (eax) -->
+ <feature name='sha512'>
+ <cpuid eax_in='0x00000007' ecx_in='0x00000001' eax='0x00000001'/>
+ </feature>
+ <feature name='sm3'>
+ <cpuid eax_in='0x00000007' ecx_in='0x00000001' eax='0x00000002'/>
+ </feature>
+ <feature name='sm4'>
+ <cpuid eax_in='0x00000007' ecx_in='0x00000001' eax='0x00000004'/>
+ </feature>
<feature name='avx-vnni'>
<cpuid eax_in='0x00000007' ecx_in='0x00000001' eax='0x00000010'/>
</feature>
--
2.49.0

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

@ -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,61 +0,0 @@
From 229d362a429fdcf64f91cf2422ab6a402d0af3fa Mon Sep 17 00:00:00 2001
Message-ID: <229d362a429fdcf64f91cf2422ab6a402d0af3fa.1752749355.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Wed, 19 Mar 2025 01:55:02 +0100
Subject: [PATCH] docs: formatdomain: document intel-only IOMMU attributes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 6291b0af3dd6a34b5a0f5f56dafa881d9c262f57)
https://issues.redhat.com/browse/RHEL-50560
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
docs/formatdomain.rst | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 961d20a41d..a950ee1cb4 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -8857,14 +8857,15 @@ Example:
``caching_mode``
The ``caching_mode`` attribute with possible values ``on`` and ``off`` can
be used to turn on the VT-d caching mode (useful for assigned devices).
- :since:`Since 3.4.0` (QEMU/KVM only)
+ :since:`Since 3.4.0` (QEMU/KVM and ``intel`` model only)
``eim``
The ``eim`` attribute (with possible values ``on`` and ``off``) can be
used to configure Extended Interrupt Mode. A q35 domain with split I/O
APIC (as described in `Hypervisor features`_), and
both interrupt remapping and EIM turned on for the IOMMU, will be able to
- use more than 255 vCPUs. :since:`Since 3.4.0` (QEMU/KVM only)
+ use more than 255 vCPUs. :since:`Since 3.4.0` (QEMU/KVM and ``intel`` model
+ only)
``iotlb``
The ``iotlb`` attribute with possible values ``on`` and ``off`` can be
@@ -8874,14 +8875,14 @@ Example:
``aw_bits``
The ``aw_bits`` attribute can be used to set the address width to allow
mapping larger iova addresses in the guest. :since:`Since 6.5.0` (QEMU/KVM
- only)
+ and ``intel`` model only)
``dma_translation``
The ``dma_translation`` attribute with possible values ``on`` and ``off`` can
be used to turn off the dma translation for IOMMU. It is useful when only
interrupt remapping is required but dma translation overhead is unwanted, for
example to efficiently enable more than 255 vCPUs.
- :since:`Since 10.7.0` (QEMU/KVM only)
+ :since:`Since 10.7.0` (QEMU/KVM and ``intel`` model only)
The ``virtio`` IOMMU devices can further have ``address`` element as described
in `Device addresses`_ (address has to by type of ``pci``).
--
2.50.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

@ -1,49 +0,0 @@
From e9899b64816f8086038098b44690df076d93d8d8 Mon Sep 17 00:00:00 2001
Message-ID: <e9899b64816f8086038098b44690df076d93d8d8.1744876588.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Tue, 8 Apr 2025 16:25:37 +0200
Subject: [PATCH] esx: Accept empty "path" URI component same way as "/"
When connecting to "esx://" URI there's code which prints a warning that
the path is not "empty". The check validates that "uri->path" is "/".
In case when the user uses URI such as:
esx://hostname
the warning is printed as well. Since there is no effective difference
betweeen the two allow empty strings as well.
Resolves: https://issues.redhat.com/browse/RHEL-86459
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 59f40ba67cc7d0a3f8eeb601c2f3c84def24a361)
---
src/esx/esx_driver.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 6ae4ef9658..512ca6c028 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -687,7 +687,9 @@ esxConnectToVCenter(esxPrivate *priv,
g_autofree char *url = NULL;
if (!hostSystemIPAddress &&
- (!priv->parsedUri->path || STREQ(priv->parsedUri->path, "/"))) {
+ (!priv->parsedUri->path ||
+ STREQ(priv->parsedUri->path, "") ||
+ STREQ(priv->parsedUri->path, "/"))) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("Path has to specify the datacenter and compute resource"));
return -1;
@@ -799,6 +801,7 @@ esxConnectOpen(virConnectPtr conn, virConnectAuthPtr auth,
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
if (STRCASENEQ(conn->uri->scheme, "vpx") &&
+ STRNEQ(conn->uri->path, "") &&
STRNEQ(conn->uri->path, "/")) {
VIR_WARN("Ignoring unexpected path '%s' for non-vpx scheme '%s'",
conn->uri->path, conn->uri->scheme);
--
2.49.0

View File

@ -1,119 +0,0 @@
From b554cae09e7870484240b023865bd13fe56878d1 Mon Sep 17 00:00:00 2001
Message-ID: <b554cae09e7870484240b023865bd13fe56878d1.1752749355.git.jdenemar@redhat.com>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Mon, 9 Jun 2025 15:40:12 +0200
Subject: [PATCH] esx: Allow specifying different CA bundle for remote
connections
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add new URI parameter which allows for using non-system CA certificates
to verify remote peers.
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 6c9a0beeca1c6a54eda5d15ba27925c734d51279)
Resolves: https://issues.redhat.com/browse/RHEL-97440
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
docs/drvesx.rst | 16 ++++++++++++++--
src/esx/esx_util.c | 4 ++++
src/esx/esx_util.h | 1 +
src/esx/esx_vi.c | 3 +++
4 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/docs/drvesx.rst b/docs/drvesx.rst
index 13c2bc37e5..84416562ba 100644
--- a/docs/drvesx.rst
+++ b/docs/drvesx.rst
@@ -91,7 +91,7 @@ Multiple parameters are separated by ``&``.
::
- ?no_verify=1&auto_answer=1&proxy=socks://example-proxy.com:23456
+ ?no_verify=1&auto_answer=1&proxy=socks://example-proxy.com:23456&cacert=certs/ca-bundle.pem
The driver understands the extra parameters shown below.
@@ -146,6 +146,16 @@ The driver understands the extra parameters shown below.
| | | ``port`` allows to override |
| | | the default port 1080. |
+-----------------+-----------------------------+-----------------------------+
+| ``cacert`` | Path to a file with one | The specified file will be |
+| | or more certificates | used for verifying the |
+| | | remote host certificate |
+| | | instead of the default |
+| | | system one. |
+| | | :since:`Since 11.5.0`. |
+| | | Does nothing if |
+| | | ``no_verify`` is set |
+| | | to ``1``. |
++-----------------+-----------------------------+-----------------------------+
Authentication
~~~~~~~~~~~~~~
@@ -181,8 +191,10 @@ error like this one:
error: internal error curl_easy_perform() returned an error: Peer certificate cannot be authenticated with known CA certificates (60)
-Where are two ways to solve this problem:
+Where are three ways to solve this problem:
+- Use the ``cacert`` `Extra parameters`_ to point to a certificate bundle
+ with the CA that signed the SSL certificate used on the ESX server.
- Use the ``no_verify=1`` `Extra parameters`_ to disable server
certificate verification.
- Generate new SSL certificates signed by a CA known to your client computer
diff --git a/src/esx/esx_util.c b/src/esx/esx_util.c
index cb9638f360..7ee0e5f7c0 100644
--- a/src/esx/esx_util.c
+++ b/src/esx/esx_util.c
@@ -135,6 +135,9 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURI *uri)
goto cleanup;
}
}
+ } else if (STRCASEEQ(queryParam->name, "cacert")) {
+ g_clear_pointer(&(*parsedUri)->cacert, g_free);
+ (*parsedUri)->cacert = g_strdup(queryParam->value);
} else {
VIR_WARN("Ignoring unexpected query parameter '%s'",
queryParam->name);
@@ -168,6 +171,7 @@ esxUtil_FreeParsedUri(esxUtil_ParsedUri **parsedUri)
g_free((*parsedUri)->vCenter);
g_free((*parsedUri)->proxy_hostname);
g_free((*parsedUri)->path);
+ g_free((*parsedUri)->cacert);
g_free(*parsedUri);
}
diff --git a/src/esx/esx_util.h b/src/esx/esx_util.h
index 088c943e64..58bc44e744 100644
--- a/src/esx/esx_util.h
+++ b/src/esx/esx_util.h
@@ -44,6 +44,7 @@ struct _esxUtil_ParsedUri {
char *proxy_hostname;
int proxy_port;
char *path;
+ char *cacert;
};
int esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURI *uri);
diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
index 3ecd406e1d..d49daa5bc6 100644
--- a/src/esx/esx_vi.c
+++ b/src/esx/esx_vi.c
@@ -343,6 +343,9 @@ esxVI_CURL_Connect(esxVI_CURL *curl, esxUtil_ParsedUri *parsedUri)
parsedUri->proxy_port);
}
+ if (parsedUri->cacert)
+ curl_easy_setopt(curl->handle, CURLOPT_CAINFO, parsedUri->cacert);
+
if (virMutexInit(&curl->lock) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Could not initialize CURL mutex"));
--
2.50.1

View File

@ -1,63 +0,0 @@
From 7caecd5f75f22d6bab74efcb3bc151f8bf441ec9 Mon Sep 17 00:00:00 2001
Message-ID: <7caecd5f75f22d6bab74efcb3bc151f8bf441ec9.1744876587.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Tue, 25 Mar 2025 07:23:01 +0100
Subject: [PATCH] esxConnectListAllDomains: Don't propagate failure to lookup a
single domain
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In esxConnectListAllDomains if the lookup of the VM name and UUID fails
for a single VM (possible e.g. with broken storage) the whole API would
return failure even when there are working VMs.
Rework the lookup so that if a subset fails we ignore the failure on
those. We report an error only if lookup of all of the objects failed.
Failure is reported from the last one.
Resolves: https://issues.redhat.com/browse/RHEL-80606
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 7d4de62cfa8c684b2d63a48c71f0ae009acddf62)
---
src/esx/esx_driver.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 554fb3e18f..6ae4ef9658 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -4792,18 +4792,20 @@ esxConnectListAllDomains(virConnectPtr conn,
virtualMachine = virtualMachine->_next) {
g_autofree char *name = NULL;
- if (needIdentity) {
- if (esxVI_GetVirtualMachineIdentity(virtualMachine, &id,
- &name, uuid) < 0) {
- goto cleanup;
- }
- }
+ /* If the lookup of the required properties fails for some of the machines
+ * in the list it's preferrable to return the valid objects instead of
+ * failing outright */
+ if ((needIdentity && esxVI_GetVirtualMachineIdentity(virtualMachine, &id, &name, uuid) < 0) ||
+ (needPowerState && esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0)) {
- if (needPowerState) {
- if (esxVI_GetVirtualMachinePowerState(virtualMachine,
- &powerState) < 0) {
+ /* Raise error only if we didn't successfuly fill any domain */
+ if (count == 0 && !virtualMachine->_next)
goto cleanup;
- }
+
+ /* failure to fetch information of a single VM must not interrupt
+ * the lookup of the rest */
+ virResetLastError();
+ continue;
}
/* filter by active state */
--
2.49.0

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

@ -1,58 +0,0 @@
From 0b2b30820c623e11aced21adb1692ed23430c064 Mon Sep 17 00:00:00 2001
Message-ID: <0b2b30820c623e11aced21adb1692ed23430c064.1749039441.git.jdenemar@redhat.com>
From: Collin Walling <walling@linux.ibm.com>
Date: Mon, 16 Dec 2024 18:03:55 -0500
Subject: [PATCH] libvirt-domain: introduce
VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_FEATURES
Introduce domain flag used to filter deprecated features from the
domain's CPU model.
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 4e2c8de2047e21d98443944a2bfe94529b269efa)
JIRA: https://issues.redhat.com/browse/RHEL-89415
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/libvirt/libvirt-domain.h | 12 ++++++++++++
src/libvirt-domain.c | 2 +-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index c04b696f03..df13b72f7b 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -1491,6 +1491,18 @@ int virDomainMigrateGetMaxSpeed(virDomainPtr domain,
int virDomainMigrateStartPostCopy(virDomainPtr domain,
unsigned int flags);
+/**
+ * virConnectGetDomainCapabilitiesFlags:
+ *
+ * Domain capabilities flags.
+ *
+ * Since: 11.0.0
+ */
+typedef enum {
+ /* Report host model with deprecated features disabled. (Since: 11.0.0) */
+ VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_FEATURES = (1 << 0),
+} virConnectGetDomainCapabilitiesFlags;
+
char * virConnectGetDomainCapabilities(virConnectPtr conn,
const char *emulatorbin,
const char *arch,
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 24752a9888..efc26a41d9 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -12166,7 +12166,7 @@ virDomainSetUserPassword(virDomainPtr dom,
* @arch: domain architecture
* @machine: machine type
* @virttype: virtualization type
- * @flags: extra flags; not used yet, so callers should always pass 0
+ * @flags: extra flags; bitwise-OR of virConnectGetDomainCapabilitiesFlags
*
* Prior creating a domain (for instance via virDomainCreateXML
* or virDomainDefineXML) it may be suitable to know what the
--
2.49.0

View File

@ -1,51 +0,0 @@
From a96d1c90832b639c81f6cd893a79610d4379594d Mon Sep 17 00:00:00 2001
Message-ID: <a96d1c90832b639c81f6cd893a79610d4379594d.1744876587.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 7 Apr 2025 13:35:37 +0200
Subject: [PATCH] libvirt-host: Clarify/fix description of the CPU frequency
field
The 'virNodeInfo' field for CPU frequency is named 'mhz'. The docs were
mentioning 'mHZ', which is neither the field name nor proper spelling of
the unit.
Reword the paragraph to mention "CPU frequency" instead and explicitly
name the field in virNodeInfo struct.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit e54cc1500ccfb36cd5b67eb4d886c491fdda5b2b)
https://issues.redhat.com/browse/RHEL-86197
---
src/libvirt-host.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/libvirt-host.c b/src/libvirt-host.c
index b3a6421a7f..318a664d24 100644
--- a/src/libvirt-host.c
+++ b/src/libvirt-host.c
@@ -410,9 +410,9 @@ virConnectGetMaxVcpus(virConnectPtr conn,
* Use of this API is strongly discouraged as the information provided
* is not guaranteed to be accurate on all hardware platforms.
*
- * The mHZ value merely reflects the speed that the first CPU in the
- * machine is currently running at. This speed may vary across CPUs
- * and changes continually as the host OS throttles.
+ * The CPU frequency value (field 'mhz' in virNodeInfo) merely reflects the
+ * speed that the first CPU in the machine is currently running at. This speed
+ * may vary across CPUs and changes continually as the host OS throttles.
*
* The nodes/sockets/cores/threads data is potentially inaccurate as
* it assumes a symmetric installation. If one NUMA node has more
@@ -420,7 +420,7 @@ virConnectGetMaxVcpus(virConnectPtr conn,
* wrong. It is also not able to report about CPU dies.
*
* Applications are recommended to use the virConnectGetCapabilities()
- * call instead, which provides all the information except CPU mHZ,
+ * call instead, which provides all the information except CPU frequency,
* in a more accurate representation.
*
* Returns 0 in case of success and -1 in case of failure.
--
2.49.0

View File

@ -1,85 +0,0 @@
From fb8c22b5606b2c3d0881df8df05ad1c909b247b2 Mon Sep 17 00:00:00 2001
Message-ID: <fb8c22b5606b2c3d0881df8df05ad1c909b247b2.1742990721.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Wed, 26 Feb 2025 19:10:42 +0000
Subject: [PATCH] libxl: support 'rawset' ACPI table type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This fixes representation of the 'acpi_firmware' config in the Xen
driver, which repesents a concatenation of tables of any type.
Use of 'type=slic' is accepted on input for backwards compatibility.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit dac6ecba6f75bff11fbddb2bce8ca9b576ea6a74)
Resolves: https://issues.redhat.com/browse/RHEL-81041
---
docs/formatdomain.rst | 2 +-
src/libxl/libxl_domain.c | 5 +++--
src/libxl/xen_xl.c | 2 +-
tests/xlconfigdata/test-fullvirt-acpi-slic.xml | 2 +-
4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index ff06efb69f..b03b5317aa 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -492,7 +492,7 @@ These options apply to any form of booting of the guest OS.
signature auto-detected from header (:since:`Since 11.2.0 (QEMU)`).
* ``rawset``: concatenation of multiple ACPI tables with header
and data, each with any ACPI signature, auto-detected from header
- (:since:`Since 11.2.0`).
+ (:since:`Since 11.2.0 (Xen)`).
* ``slic``: a single ACPI table with header and data, providing
software licensing information. The ACPI table signature in the
header will be forced to ``SLIC`` (:since:`Since 1.3.5 (QEMU)`,
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index e564d9e5fe..e31d92d903 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -333,11 +333,12 @@ libxlDomainDefValidate(const virDomainDef *def,
for (i = 0; i < def->os.nacpiTables; i++) {
switch (def->os.acpiTables[i]->type) {
- case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC:
+ case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC: /* Back compat for historical mistake,
+ * functionally the same as 'rawset' */
+ case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
break;
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
- case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("ACPI table type '%1$s' is not supported"),
virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));
diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c
index 062b753cea..9d06315661 100644
--- a/src/libxl/xen_xl.c
+++ b/src/libxl/xen_xl.c
@@ -140,7 +140,7 @@ xenParseXLOS(virConf *conf, virDomainDef *def, virCaps *caps)
def->os.nacpiTables = 1;
def->os.acpiTables = g_new0(virDomainOSACPITableDef *, 1);
def->os.acpiTables[0] = g_new0(virDomainOSACPITableDef, 1);
- def->os.acpiTables[0]->type = VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC;
+ def->os.acpiTables[0]->type = VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET;
def->os.acpiTables[0]->path = g_steal_pointer(&slic);
}
diff --git a/tests/xlconfigdata/test-fullvirt-acpi-slic.xml b/tests/xlconfigdata/test-fullvirt-acpi-slic.xml
index 366d877624..bf617e5e05 100644
--- a/tests/xlconfigdata/test-fullvirt-acpi-slic.xml
+++ b/tests/xlconfigdata/test-fullvirt-acpi-slic.xml
@@ -8,7 +8,7 @@
<type arch='x86_64' machine='xenfv'>hvm</type>
<loader type='rom' format='raw'>/usr/lib/xen/boot/hvmloader</loader>
<acpi>
- <table type='slic'>/sys/firmware/acpi/tables/SLIC</table>
+ <table type='rawset'>/sys/firmware/acpi/tables/SLIC</table>
</acpi>
<boot dev='cdrom'/>
</os>
--
2.49.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

@ -1,55 +0,0 @@
From 90859b9c9cda1ab3daa34847ac4608cf451102ce Mon Sep 17 00:00:00 2001
Message-ID: <90859b9c9cda1ab3daa34847ac4608cf451102ce.1744876588.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 7 Apr 2025 14:58:41 +0200
Subject: [PATCH] manpages: virsh: Use disclaimer from 'virNodeGetInfo()' for
'virsh nodeinfo'
Adapt the disclarimer about the data not being accurate in many cases
from the API docs to the virsh command using the aforementioned API.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 617e2dc3194204a88309e3da55bec8743a5df2ea)
https://issues.redhat.com/browse/RHEL-86197
---
docs/manpages/virsh.rst | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index 2e525d3fac..aea920b7a7 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -427,10 +427,25 @@ nodeinfo
nodeinfo
Returns basic information about the node, like number and type of CPU,
-and size of the physical memory. The output corresponds to virNodeInfo
-structure. Specifically, the "CPU socket(s)" field means number of CPU
-sockets per NUMA cell. The information libvirt displays is dependent
-upon what each architecture may provide.
+and size of the physical memory.
+
+Use of this command is strongly discouraged as the information provided
+is not guaranteed to be accurate on all hardware platforms.
+
+The *CPU frequency* value merely reflects the speed that the first CPU in the
+machine is currently running at. This speed may vary across CPUs and changes
+continually as the host OS throttles.
+
+The data structure used to fetch the data is not extensible thus only supports
+global nodes/sockets/cores/threads (sockets/cores/threads is per NUMA node)
+topology information. If the host CPU has any further groupings (e.g.
+dies, clusters, etc) or the NUMA topology is non-symmetrical the data structure
+can't faithfully represent the system. In such cases a fake topology
+(nodes = 1, sockets = 1, cores = number of host cpus, threads = 1) which
+only correctly represents the total host CPU count is reported.
+
+Recommended replacement is to use the *capabilities* command which reports
+the data (except frequency) under ``/capabilities/host/topology`` XPath.
nodecpumap
--
2.49.0

View File

@ -1,44 +0,0 @@
From 2ea12b6f6eed044dd7100ed19565319227f7384f Mon Sep 17 00:00:00 2001
Message-ID: <2ea12b6f6eed044dd7100ed19565319227f7384f.1742990721.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Thu, 13 Mar 2025 13:01:19 +0100
Subject: [PATCH] network: Free inhibitor in networkStateCleanup()
The shutdown inhibitor is created in networkStateInitialize() but
corresponding call to virInhibitorFree() is missing in
networkStateCleanup() leading to a memleak:
116 (72 direct, 44 indirect) bytes in 1 blocks are definitely lost in loss record 1,769 of 1,998
at 0x484CEF3: calloc (vg_replace_malloc.c:1675)
by 0x4F0E7A9: g_malloc0 (in /usr/lib64/libglib-2.0.so.0.8000.5)
by 0x4993B9B: virInhibitorNew (virinhibitor.c:152)
by 0x5279394: networkStateInitialize (bridge_driver.c:654)
by 0x4CC74DC: virStateInitialize (libvirt.c:665)
by 0x15B719: daemonRunStateInit (remote_daemon.c:613)
by 0x49F2B44: virThreadHelper (virthread.c:256)
by 0x5356662: start_thread (in /usr/lib64/libc.so.6)
by 0x53D7DA3: clone (in /usr/lib64/libc.so.6)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 8701ba4feb528109da8b72fa48a8ada50a235807)
Resolves: https://issues.redhat.com/browse/RHEL-83064
---
src/network/bridge_driver.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index ce793c12ef..adcff6f34f 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -802,6 +802,8 @@ networkStateCleanup(void)
network_driver->lockFD);
}
+ virInhibitorFree(network_driver->inhibitor);
+
virObjectUnref(network_driver->config);
virObjectUnref(network_driver->dnsmasqCaps);
--
2.49.0

View File

@ -1,72 +0,0 @@
From aeff1ebf96b595337f14ef6d1412d6c407bdc085 Mon Sep 17 00:00:00 2001
Message-ID: <aeff1ebf96b595337f14ef6d1412d6c407bdc085.1747908717.git.jdenemar@redhat.com>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Tue, 25 Feb 2025 15:36:32 +0100
Subject: [PATCH] qemu: Add support for VIR_DOMAIN_GUEST_INFO_LOAD
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit b4cf9c8cba45e65551aa9440dea2c3757a96aa0c)
https://issues.redhat.com/browse/RHEL-88447
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
src/qemu/qemu_driver.c | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 8a354a606a..11dbbc1aab 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -19276,7 +19276,8 @@ static const unsigned int qemuDomainGetGuestInfoSupportedTypes =
VIR_DOMAIN_GUEST_INFO_HOSTNAME |
VIR_DOMAIN_GUEST_INFO_FILESYSTEM |
VIR_DOMAIN_GUEST_INFO_DISKS |
- VIR_DOMAIN_GUEST_INFO_INTERFACES;
+ VIR_DOMAIN_GUEST_INFO_INTERFACES |
+ VIR_DOMAIN_GUEST_INFO_LOAD;
static int
qemuDomainGetGuestInfoCheckSupport(unsigned int types,
@@ -19563,6 +19564,10 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
qemuAgentDiskInfo **agentdiskinfo = NULL;
virDomainInterfacePtr *ifaces = NULL;
size_t nifaces = 0;
+ double load1m = 0;
+ double load5m = 0;
+ double load15m = 0;
+ bool format_load = false;
size_t i;
virCheckFlags(0, -1);
@@ -19633,6 +19638,14 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
nifaces = rc;
}
+ if (supportedTypes & VIR_DOMAIN_GUEST_INFO_LOAD) {
+ rc = qemuAgentGetLoadAvg(agent, &load1m, &load5m, &load15m, report_unsupported);
+ if (rc == -1)
+ goto exitagent;
+ if (rc >= 0)
+ format_load = true;
+ }
+
qemuDomainObjExitAgent(vm, agent);
virDomainObjEndAgentJob(vm);
@@ -19659,6 +19672,12 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
virDomainInterfaceFormatParams(ifaces, nifaces, params, nparams, &maxparams);
}
+ if (format_load) {
+ virTypedParamsAddDouble(params, nparams, &maxparams, "load.1m", load1m);
+ virTypedParamsAddDouble(params, nparams, &maxparams, "load.5m", load5m);
+ virTypedParamsAddDouble(params, nparams, &maxparams, "load.15m", load15m);
+ }
+
ret = 0;
cleanup:
--
2.49.0

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,36 +0,0 @@
From 5c4270439f99bd52f91613a6ee833aa4bcb131c4 Mon Sep 17 00:00:00 2001
Message-ID: <5c4270439f99bd52f91613a6ee833aa4bcb131c4.1744876588.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 15 Jan 2025 13:00:36 +0100
Subject: [PATCH] qemu: Allow virtio-mem on CCW
After previous commits, we can allow virtio-mem to live on CCW
channel.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
(cherry picked from commit ee0320a7fccc8088bc2830fe949ae2339db208cb)
Resolves: https://issues.redhat.com/browse/RHEL-72976
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_domain.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index b6c36d85d7..4234e4605b 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -7673,9 +7673,10 @@ qemuDomainDefValidateMemoryHotplugDevice(const virDomainMemoryDef *mem,
case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM:
if (mem->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
+ mem->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW &&
mem->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("only 'pci' addresses are supported for the %1$s device"),
+ _("only 'pci' and 'ccw' addresses are supported for the %1$s device"),
virDomainMemoryModelTypeToString(mem->model));
return -1;
}
--
2.49.0

View File

@ -1,38 +0,0 @@
From d874530eaded03d0b90139c9bbd80902b9464e87 Mon Sep 17 00:00:00 2001
Message-ID: <d874530eaded03d0b90139c9bbd80902b9464e87.1741876175.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Tue, 18 Feb 2025 11:24:32 +0100
Subject: [PATCH] qemu: Avoid crash in qemuDomainCheckCPU with unknown host CPU
When we don't have any information about host CPU (for example when
running on an aarch64 host), the virQEMUCapsGetHostModel would return
NULL.
Fixes: f928eb5fc80ca0ed7277f2513b63aed36c09d275
Fixes: https://gitlab.com/libvirt/libvirt/-/issues/747
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Tested-by: Jaroslav Suchanek <jsuchane@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 43eae1b7077104d4e2ed52447407a335c2d093e3)
https://issues.redhat.com/browse/RHEL-81747
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_domain.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 92035dd281..1ccaff90d9 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -11446,6 +11446,7 @@ qemuDomainCheckCPU(virArch arch,
/* Force compat check if the CPU model is not found in qemuCaps or
* we don't have host CPU data from QEMU */
if (!cpu->model ||
+ !hypervisorCPU ||
hypervisorCPU->fallback != VIR_CPU_FALLBACK_FORBID ||
virQEMUCapsGetCPUBlockers(qemuCaps, virtType,
cpu->model, &blockers) < 0)
--
2.48.1

View File

@ -1,50 +0,0 @@
From b2e5469f35657b7d46842b39be04ecc34e5ff659 Mon Sep 17 00:00:00 2001
Message-ID: <b2e5469f35657b7d46842b39be04ecc34e5ff659.1744876588.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Mon, 20 Jan 2025 17:10:24 +0100
Subject: [PATCH] qemu: Do NOT autoadd NUMA node for s390
In some cases, we might automatically add a NUMA node. But this
doesn't work for s390 really, because in its commit
v2.12.0-rc0~41^2~6 QEMU forbade specifying NUMA nodes for s390.
Suppress automatic adding of NUMA node on our side.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
(cherry picked from commit a8ed747b9a8c5cbd07557edc66962bc26205d7fb)
Resolves: https://issues.redhat.com/browse/RHEL-72976
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_domain.c | 3 ++-
src/qemu/qemu_postparse.c | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 89e1b50366..b6c36d85d7 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -7761,7 +7761,8 @@ qemuDomainDefValidateMemoryHotplug(const virDomainDef *def,
return 0;
}
- if (!ARCH_IS_PPC64(def->os.arch)) {
+ if (!ARCH_IS_PPC64(def->os.arch) &&
+ !ARCH_IS_S390(def->os.arch)) {
/* due to guest support, qemu would silently enable NUMA with one node
* once the memory hotplug backend is enabled. To avoid possible
* confusion we will enforce user originated numa configuration along
diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c
index 892330646a..141847b0ef 100644
--- a/src/qemu/qemu_postparse.c
+++ b/src/qemu/qemu_postparse.c
@@ -1806,6 +1806,7 @@ qemuDomainDefNumaAutoAdd(virDomainDef *def,
if (!abiUpdate ||
!virDomainDefHasMemoryHotplug(def) ||
+ qemuDomainIsS390CCW(def) ||
virDomainNumaGetNodeCount(def->numa) > 0) {
return 0;
}
--
2.49.0

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

@ -1,135 +0,0 @@
From b6e803fc90bb9d49345adca4f38856ce97fde9f8 Mon Sep 17 00:00:00 2001
Message-ID: <b6e803fc90bb9d49345adca4f38856ce97fde9f8.1744876588.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 9 Apr 2025 15:35:20 +0200
Subject: [PATCH] qemu: Properly propagate migration state to TPM cleanup code
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When migrating a domain with TPM state on a shared disk, we need to skip
TPM cleanup on both ends. So far the code only handled successful
migration and skipped the cleanup on the source host. But if the
migration failed for some reason, the cleanup would be incorrectly
called on the destination host removing the TPM files even though the
domain was still running on the source host.
https://issues.redhat.com/browse/RHEL-82411
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 97ed7f22b089c5fdd9ee02cffc6854f6e021ab2b)
https://issues.redhat.com/browse/RHEL-86800
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_driver.c | 7 +++++--
src/qemu/qemu_migration.c | 6 +++---
src/qemu/qemu_process.c | 8 ++------
3 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index f8f3d2c725..4c6eff9286 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3853,6 +3853,7 @@ processMonitorEOFEvent(virQEMUDriver *driver,
const char *auditReason = "shutdown";
unsigned int stopFlags = 0;
virObjectEvent *event = NULL;
+ bool migration;
if (vm->def->id != domid) {
VIR_DEBUG("Domain %s was restarted, ignoring EOF",
@@ -3863,6 +3864,8 @@ processMonitorEOFEvent(virQEMUDriver *driver,
if (qemuProcessBeginStopJob(vm, VIR_JOB_DESTROY, true) < 0)
return;
+ migration = vm->job->asyncJob == VIR_ASYNC_JOB_MIGRATION_IN;
+
if (!virDomainObjIsActive(vm)) {
VIR_DEBUG("Domain %p '%s' is not active, ignoring EOF",
vm, vm->def->name);
@@ -3877,7 +3880,7 @@ processMonitorEOFEvent(virQEMUDriver *driver,
auditReason = "failed";
}
- if (vm->job->asyncJob == VIR_ASYNC_JOB_MIGRATION_IN) {
+ if (migration) {
stopFlags |= VIR_QEMU_PROCESS_STOP_MIGRATED;
qemuMigrationDstErrorSave(driver, vm->def->name,
qemuMonitorLastError(priv->mon));
@@ -3890,7 +3893,7 @@ processMonitorEOFEvent(virQEMUDriver *driver,
virObjectEventStateQueue(driver->domainEventState, event);
endjob:
- qemuDomainRemoveInactive(driver, vm, 0, false);
+ qemuDomainRemoveInactive(driver, vm, 0, migration);
qemuProcessEndStopJob(vm);
}
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 62da892254..5cb7642315 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -3592,7 +3592,7 @@ qemuMigrationDstPrepareFresh(virQEMUDriver *driver,
* and there is no 'goto cleanup;' in the middle of those */
VIR_FREE(priv->origname);
virDomainObjRemoveTransientDef(vm);
- qemuDomainRemoveInactive(driver, vm, 0, false);
+ qemuDomainRemoveInactive(driver, vm, 0, true);
}
virDomainObjEndAPI(&vm);
virErrorRestore(&origErr);
@@ -6963,7 +6963,7 @@ qemuMigrationDstFinishActive(virQEMUDriver *driver,
}
if (!qemuDomainObjIsActive(vm))
- qemuDomainRemoveInactive(driver, vm, VIR_DOMAIN_UNDEFINE_TPM, false);
+ qemuDomainRemoveInactive(driver, vm, VIR_DOMAIN_UNDEFINE_TPM, true);
virErrorRestore(&orig_err);
return NULL;
@@ -7099,7 +7099,7 @@ qemuMigrationProcessUnattended(virQEMUDriver *driver,
qemuMigrationJobFinish(vm);
if (!virDomainObjIsActive(vm))
- qemuDomainRemoveInactive(driver, vm, 0, false);
+ qemuDomainRemoveInactive(driver, vm, 0, true);
}
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index fac5678439..ad7e99750f 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -8731,7 +8731,6 @@ void qemuProcessStop(virQEMUDriver *driver,
size_t i;
g_autofree char *timestamp = NULL;
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
- bool outgoingMigration;
VIR_DEBUG("Shutting down vm=%p name=%s id=%d pid=%lld, "
"reason=%s, asyncJob=%s, flags=0x%x",
@@ -8807,10 +8806,7 @@ void qemuProcessStop(virQEMUDriver *driver,
qemuDomainCleanupRun(driver, vm);
- outgoingMigration = (flags & VIR_QEMU_PROCESS_STOP_MIGRATED) &&
- (asyncJob == VIR_ASYNC_JOB_MIGRATION_OUT);
-
- qemuExtDevicesStop(driver, vm, outgoingMigration);
+ qemuExtDevicesStop(driver, vm, !!(flags & VIR_QEMU_PROCESS_STOP_MIGRATED));
qemuDBusStop(driver, vm);
@@ -9070,7 +9066,7 @@ qemuProcessAutoDestroy(virDomainObj *dom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
- qemuDomainRemoveInactive(driver, dom, 0, false);
+ qemuDomainRemoveInactive(driver, dom, 0, !!(stopFlags & VIR_QEMU_PROCESS_STOP_MIGRATED));
qemuProcessEndStopJob(dom);
--
2.49.0

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

@ -1,230 +0,0 @@
From c28859cbaeac298adbe957956cf8442c9a6b7264 Mon Sep 17 00:00:00 2001
Message-ID: <c28859cbaeac298adbe957956cf8442c9a6b7264.1744876588.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Tue, 11 Mar 2025 10:05:28 +0100
Subject: [PATCH] qemu: Rename outgoingMigration parameter in various TPM
functions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The parameter is used to skip TPM state cleanup on outgoing migration
with shared storage. But we also need to skip the cleanup after a failed
incoming migration. Let's call the parameter "migration" to reflect its
usage on both sides of migration.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit a5e4ca6f02dc8250f84163a0d19b69300affde43)
https://issues.redhat.com/browse/RHEL-86800
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_domain.c | 8 ++++----
src/qemu/qemu_domain.h | 2 +-
src/qemu/qemu_extdevice.c | 8 ++++----
src/qemu/qemu_extdevice.h | 4 ++--
src/qemu/qemu_tpm.c | 19 +++++++++----------
src/qemu/qemu_tpm.h | 4 ++--
6 files changed, 22 insertions(+), 23 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 1ccaff90d9..89e1b50366 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5749,7 +5749,7 @@ static void
qemuDomainRemoveInactiveCommon(virQEMUDriver *driver,
virDomainObj *vm,
virDomainUndefineFlagsValues flags,
- bool outgoingMigration)
+ bool migration)
{
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
g_autofree char *snapDir = NULL;
@@ -5775,7 +5775,7 @@ qemuDomainRemoveInactiveCommon(virQEMUDriver *driver,
if (rmdir(chkDir) < 0 && errno != ENOENT)
VIR_WARN("unable to remove checkpoint directory %s", chkDir);
}
- qemuExtDevicesCleanupHost(driver, vm->def, flags, outgoingMigration);
+ qemuExtDevicesCleanupHost(driver, vm->def, flags, migration);
}
@@ -5788,14 +5788,14 @@ void
qemuDomainRemoveInactive(virQEMUDriver *driver,
virDomainObj *vm,
virDomainUndefineFlagsValues flags,
- bool outgoingMigration)
+ bool migration)
{
if (vm->persistent) {
/* Short-circuit, we don't want to remove a persistent domain */
return;
}
- qemuDomainRemoveInactiveCommon(driver, vm, flags, outgoingMigration);
+ qemuDomainRemoveInactiveCommon(driver, vm, flags, migration);
virDomainObjListRemove(driver->domains, vm);
}
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index e810f79599..6246988491 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -689,7 +689,7 @@ int qemuDomainMomentDiscardAll(void *payload,
void qemuDomainRemoveInactive(virQEMUDriver *driver,
virDomainObj *vm,
virDomainUndefineFlagsValues flags,
- bool outgoingMigration);
+ bool migration);
void
qemuDomainRemoveInactiveLocked(virQEMUDriver *driver,
diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c
index 2384bab7a6..7451e0fa03 100644
--- a/src/qemu/qemu_extdevice.c
+++ b/src/qemu/qemu_extdevice.c
@@ -154,7 +154,7 @@ void
qemuExtDevicesCleanupHost(virQEMUDriver *driver,
virDomainDef *def,
virDomainUndefineFlagsValues flags,
- bool outgoingMigration)
+ bool migration)
{
size_t i;
@@ -165,7 +165,7 @@ qemuExtDevicesCleanupHost(virQEMUDriver *driver,
virDomainTPMDef *tpm = def->tpms[i];
if (tpm->type == VIR_DOMAIN_TPM_TYPE_EMULATOR)
- qemuExtTPMCleanupHost(driver, tpm, flags, outgoingMigration);
+ qemuExtTPMCleanupHost(driver, tpm, flags, migration);
}
}
@@ -266,7 +266,7 @@ qemuExtDevicesStart(virQEMUDriver *driver,
void
qemuExtDevicesStop(virQEMUDriver *driver,
virDomainObj *vm,
- bool outgoingMigration)
+ bool migration)
{
virDomainDef *def = vm->def;
size_t i;
@@ -283,7 +283,7 @@ qemuExtDevicesStop(virQEMUDriver *driver,
for (i = 0; i < def->ntpms; i++) {
if (def->tpms[i]->type == VIR_DOMAIN_TPM_TYPE_EMULATOR)
- qemuExtTPMStop(driver, vm, outgoingMigration);
+ qemuExtTPMStop(driver, vm, migration);
}
for (i = 0; i < def->nnets; i++) {
diff --git a/src/qemu/qemu_extdevice.h b/src/qemu/qemu_extdevice.h
index d4ac9f395c..36f7fb77a8 100644
--- a/src/qemu/qemu_extdevice.h
+++ b/src/qemu/qemu_extdevice.h
@@ -48,7 +48,7 @@ int qemuExtDevicesPrepareHost(virQEMUDriver *driver,
void qemuExtDevicesCleanupHost(virQEMUDriver *driver,
virDomainDef *def,
virDomainUndefineFlagsValues flags,
- bool outgoingMigration)
+ bool migration)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuExtDevicesStart(virQEMUDriver *driver,
@@ -59,7 +59,7 @@ int qemuExtDevicesStart(virQEMUDriver *driver,
void qemuExtDevicesStop(virQEMUDriver *driver,
virDomainObj *vm,
- bool outgoingMigration)
+ bool migration)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
bool qemuExtDevicesHasDevice(virDomainDef *def);
diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c
index f5e0184e54..f910a26286 100644
--- a/src/qemu/qemu_tpm.c
+++ b/src/qemu/qemu_tpm.c
@@ -907,7 +907,8 @@ qemuTPMEmulatorInitPaths(virDomainTPMDef *tpm,
* @driver: QEMU driver
* @tpm: TPM definition
* @flags: flags indicating whether to keep or remove TPM persistent state
- * @outgoingMigration: whether cleanup is due to an outgoing migration
+ * @migration: whether cleanup is due to a successful outgoing or failed
+ * incoming migration
*
* Clean up persistent storage for the swtpm.
*/
@@ -915,14 +916,12 @@ static void
qemuTPMEmulatorCleanupHost(virQEMUDriver *driver,
virDomainTPMDef *tpm,
virDomainUndefineFlagsValues flags,
- bool outgoingMigration)
+ bool migration)
{
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
- /* Never remove the state in case of outgoing migration with shared
- * storage.
- */
- if (outgoingMigration &&
+ /* Never remove the state in case of migration with shared storage. */
+ if (migration &&
virFileIsSharedFS(tpm->data.emulator.source_path, cfg->sharedFilesystems) == 1)
return;
@@ -1293,9 +1292,9 @@ void
qemuExtTPMCleanupHost(virQEMUDriver *driver,
virDomainTPMDef *tpm,
virDomainUndefineFlagsValues flags,
- bool outgoingMigration)
+ bool migration)
{
- qemuTPMEmulatorCleanupHost(driver, tpm, flags, outgoingMigration);
+ qemuTPMEmulatorCleanupHost(driver, tpm, flags, migration);
}
@@ -1319,7 +1318,7 @@ qemuExtTPMStart(virQEMUDriver *driver,
void
qemuExtTPMStop(virQEMUDriver *driver,
virDomainObj *vm,
- bool outgoingMigration)
+ bool migration)
{
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
g_autofree char *shortName = virDomainDefGetShortName(vm->def);
@@ -1329,7 +1328,7 @@ qemuExtTPMStop(virQEMUDriver *driver,
return;
qemuTPMEmulatorStop(cfg->swtpmStateDir, shortName);
- if (outgoingMigration && qemuTPMHasSharedStorage(driver, vm->def))
+ if (migration && qemuTPMHasSharedStorage(driver, vm->def))
restoreTPMStateLabel = false;
if (qemuSecurityRestoreTPMLabels(driver, vm, restoreTPMStateLabel, false) < 0)
diff --git a/src/qemu/qemu_tpm.h b/src/qemu/qemu_tpm.h
index 7096060a2a..37813087cf 100644
--- a/src/qemu/qemu_tpm.h
+++ b/src/qemu/qemu_tpm.h
@@ -38,7 +38,7 @@ int qemuExtTPMPrepareHost(virQEMUDriver *driver,
void qemuExtTPMCleanupHost(virQEMUDriver *driver,
virDomainTPMDef *tpm,
virDomainUndefineFlagsValues flags,
- bool outgoingMigration)
+ bool migration)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuExtTPMStart(virQEMUDriver *driver,
@@ -52,7 +52,7 @@ int qemuExtTPMStart(virQEMUDriver *driver,
void qemuExtTPMStop(virQEMUDriver *driver,
virDomainObj *vm,
- bool outgoingMigration)
+ bool migration)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuExtTPMSetupCgroup(virQEMUDriver *driver,
--
2.49.0

View File

@ -1,86 +0,0 @@
From 6fa979b9735e988971203bca10903ba587a27f79 Mon Sep 17 00:00:00 2001
Message-ID: <6fa979b9735e988971203bca10903ba587a27f79.1744876588.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 15 Jan 2025 15:48:41 +0100
Subject: [PATCH] qemu: Validate virtio-mem-ccw
There are basically two differences between virtio-mem-ccw and
virtio-mem-pci. s390 doesn't allow mixing different page sizes
and there's no NUMA support in QEMU.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
(cherry picked from commit 541dfe40bc9b3fe90d488ab85df8ea3ea31b8249)
Resolves: https://issues.redhat.com/browse/RHEL-72976
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_validate.c | 35 ++++++++++++++++++++++++++++++++---
1 file changed, 32 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 1c61038f93..97f8f58ffd 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -5259,7 +5259,8 @@ qemuValidateDomainDeviceDefHub(virDomainHubDef *hub,
static int
-qemuValidateDomainDeviceDefMemory(virDomainMemoryDef *mem,
+qemuValidateDomainDeviceDefMemory(const virDomainMemoryDef *mem,
+ const virDomainDef *def,
virQEMUCaps *qemuCaps)
{
virSGXCapability *sgxCaps;
@@ -5298,12 +5299,40 @@ qemuValidateDomainDeviceDefMemory(virDomainMemoryDef *mem,
break;
case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM:
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI)) {
+ if ((mem->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI)) ||
+ (mem->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("virtio-mem isn't supported by this QEMU binary"));
return -1;
}
+ if (mem->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW) {
+ /* virtio-mem-ccw has a few differences compared to virtio-mem-pci:
+ *
+ * 1) corresponding memory-backing-* object can't have a different
+ * page size than the boot memory (see s390_machine_device_plug()
+ * in qemu sources).
+ * 2) Since its commit v2.12.0-rc0~41^2~6 QEMU doesn't allow NUMA
+ * for s390.
+ */
+
+ if (mem->source.virtio_mem.pagesize != 0 &&
+ def->mem.nhugepages &&
+ mem->source.virtio_mem.pagesize != def->mem.hugepages[0].size) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("virtio-mem-ccw can't use different page size than the boot memory"));
+ return -1;
+ }
+
+ if (mem->targetNode != 0 && mem->targetNode != -1) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("NUMA nodes are not supported for virtio-mem-ccw"));
+ return -1;
+ }
+ }
+
if (mem->target.virtio_mem.dynamicMemslots == VIR_TRISTATE_BOOL_YES &&
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI_DYNAMIC_MEMSLOTS)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -5490,7 +5519,7 @@ qemuValidateDomainDeviceDef(const virDomainDeviceDef *dev,
return qemuValidateDomainDeviceDefSound(dev->data.sound, qemuCaps);
case VIR_DOMAIN_DEVICE_MEMORY:
- return qemuValidateDomainDeviceDefMemory(dev->data.memory, qemuCaps);
+ return qemuValidateDomainDeviceDefMemory(dev->data.memory, def, qemuCaps);
case VIR_DOMAIN_DEVICE_SHMEM:
return qemuValidateDomainDeviceDefShmem(dev->data.shmem, qemuCaps);
--
2.49.0

View File

@ -1,337 +0,0 @@
From 62862c4c7302758d304dd876f26712a75df26e08 Mon Sep 17 00:00:00 2001
Message-ID: <62862c4c7302758d304dd876f26712a75df26e08.1752749355.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Fri, 14 Mar 2025 17:13:09 +0100
Subject: [PATCH] qemu: add IOMMU model amd
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Introduce a new IOMMU device model 'amd', both the parser
and the formatter for QEMU because of our enum warnings.
https://issues.redhat.com/browse/RHEL-50560
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 14760600914ea6b5da778dd470823e734becf630)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
docs/formatdomain.rst | 5 ++-
src/conf/domain_conf.c | 1 +
src/conf/domain_conf.h | 1 +
src/conf/domain_validate.c | 13 +++++++
src/conf/schemas/domaincommon.rng | 1 +
src/qemu/qemu_command.c | 28 +++++++++++++
src/qemu/qemu_domain_address.c | 4 ++
src/qemu/qemu_validate.c | 22 +++++++++++
.../amd-iommu.x86_64-latest.args | 35 +++++++++++++++++
.../amd-iommu.x86_64-latest.xml | 1 +
tests/qemuxmlconfdata/amd-iommu.xml | 39 +++++++++++++++++++
tests/qemuxmlconftest.c | 2 +
12 files changed, 150 insertions(+), 2 deletions(-)
create mode 100644 tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
create mode 120000 tests/qemuxmlconfdata/amd-iommu.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/amd-iommu.xml
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index a950ee1cb4..ec7bdb07d0 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -8841,8 +8841,9 @@ Example:
``model``
Supported values are ``intel`` (for Q35 guests) ``smmuv3``
- (:since:`since 5.5.0`, for ARM virt guests), and ``virtio``
- (:since:`since 8.3.0`, for Q35 and ARM virt guests).
+ (:since:`since 5.5.0`, for ARM virt guests), ``virtio``
+ (:since:`since 8.3.0`, for Q35 and ARM virt guests) and
+ ``amd`` (:since:`since 11.5.0`).
``driver``
The ``driver`` subelement can be used to configure additional options, some
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 726c3095ed..7c8591e509 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1349,6 +1349,7 @@ VIR_ENUM_IMPL(virDomainIOMMUModel,
"intel",
"smmuv3",
"virtio",
+ "amd",
);
VIR_ENUM_IMPL(virDomainVsockModel,
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 20be6f7c05..343bb9bae0 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2973,6 +2973,7 @@ typedef enum {
VIR_DOMAIN_IOMMU_MODEL_INTEL,
VIR_DOMAIN_IOMMU_MODEL_SMMUV3,
VIR_DOMAIN_IOMMU_MODEL_VIRTIO,
+ VIR_DOMAIN_IOMMU_MODEL_AMD,
VIR_DOMAIN_IOMMU_MODEL_LAST
} virDomainIOMMUModel;
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 9cedc8d6d2..483cfbbe08 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2986,6 +2986,18 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *iommu)
}
break;
+ case VIR_DOMAIN_IOMMU_MODEL_AMD:
+ if (iommu->caching_mode != VIR_TRISTATE_SWITCH_ABSENT ||
+ iommu->eim != VIR_TRISTATE_SWITCH_ABSENT ||
+ iommu->aw_bits != 0 ||
+ iommu->dma_translation != VIR_TRISTATE_SWITCH_ABSENT) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("iommu model '%1$s' doesn't support some additional attributes"),
+ virDomainIOMMUModelTypeToString(iommu->model));
+ return -1;
+ }
+ break;
+
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
case VIR_DOMAIN_IOMMU_MODEL_LAST:
break;
@@ -3003,6 +3015,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *iommu)
break;
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
+ case VIR_DOMAIN_IOMMU_MODEL_AMD:
case VIR_DOMAIN_IOMMU_MODEL_LAST:
break;
}
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index d46eb44588..38a0586f40 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -6174,6 +6174,7 @@
<value>intel</value>
<value>smmuv3</value>
<value>virtio</value>
+ <value>amd</value>
</choice>
</attribute>
<interleave>
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index fb70c79a94..de535029a8 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6051,6 +6051,7 @@ qemuBuildIOMMUCommandLine(virCommand *cmd,
virQEMUCaps *qemuCaps)
{
g_autoptr(virJSONValue) props = NULL;
+ g_autoptr(virJSONValue) wrapperProps = NULL;
const virDomainIOMMUDef *iommu = def->iommu;
if (!iommu)
@@ -6095,6 +6096,32 @@ qemuBuildIOMMUCommandLine(virCommand *cmd,
/* There is no -device for SMMUv3, so nothing to be done here */
return 0;
+ case VIR_DOMAIN_IOMMU_MODEL_AMD:
+ if (virJSONValueObjectAdd(&wrapperProps,
+ "s:driver", "AMDVI-PCI",
+ "s:id", iommu->info.alias,
+ NULL) < 0)
+ return -1;
+
+ if (qemuBuildDeviceAddressProps(wrapperProps, def, &iommu->info) < 0)
+ return -1;
+
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, wrapperProps, def, qemuCaps) < 0)
+ return -1;
+
+ if (virJSONValueObjectAdd(&props,
+ "s:driver", "amd-iommu",
+ "s:pci-id", iommu->info.alias,
+ "S:intremap", qemuOnOffAuto(iommu->intremap),
+ "T:device-iotlb", iommu->iotlb,
+ NULL) < 0)
+ return -1;
+
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
+ return -1;
+
+ return 0;
+
case VIR_DOMAIN_IOMMU_MODEL_LAST:
default:
virReportEnumRangeError(virDomainIOMMUModel, iommu->model);
@@ -6921,6 +6948,7 @@ qemuBuildMachineCommandLine(virCommand *cmd,
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
+ case VIR_DOMAIN_IOMMU_MODEL_AMD:
/* These IOMMUs are formatted in qemuBuildIOMMUCommandLine */
break;
diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c
index b73ac9ebf1..d8ab5a03f7 100644
--- a/src/qemu/qemu_domain_address.c
+++ b/src/qemu/qemu_domain_address.c
@@ -941,6 +941,9 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDef *dev,
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
return virtioFlags | VIR_PCI_CONNECT_INTEGRATED;
+ case VIR_DOMAIN_IOMMU_MODEL_AMD:
+ return pciFlags | VIR_PCI_CONNECT_INTEGRATED;
+
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
case VIR_DOMAIN_IOMMU_MODEL_SMMUV3:
case VIR_DOMAIN_IOMMU_MODEL_LAST:
@@ -2359,6 +2362,7 @@ qemuDomainAssignDevicePCISlots(virDomainDef *def,
switch (iommu->model) {
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
+ case VIR_DOMAIN_IOMMU_MODEL_AMD:
if (virDeviceInfoPCIAddressIsWanted(&iommu->info) &&
qemuDomainPCIAddressReserveNextAddr(addrs, &iommu->info) < 0) {
return -1;
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 97f8f58ffd..ddfb14399a 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -5153,6 +5153,28 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMMUDef *iommu,
}
break;
+ case VIR_DOMAIN_IOMMU_MODEL_AMD:
+ if (!qemuDomainIsQ35(def)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("IOMMU device: '%1$s' is only supported with Q35 machines"),
+ virDomainIOMMUModelTypeToString(iommu->model));
+ return -1;
+ }
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_AMD_IOMMU_PCI_ID)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("IOMMU device: '%1$s' is not supported with this QEMU binary"),
+ virDomainIOMMUModelTypeToString(iommu->model));
+ return -1;
+ }
+ if (iommu->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE &&
+ iommu->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("IOMMU device: '%1$s' needs a PCI address"),
+ virDomainIOMMUModelTypeToString(iommu->model));
+ return -1;
+ }
+ break;
+
case VIR_DOMAIN_IOMMU_MODEL_LAST:
default:
virReportEnumRangeError(virDomainIOMMUModel, iommu->model);
diff --git a/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
new file mode 100644
index 0000000000..36244edb3a
--- /dev/null
+++ b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
@@ -0,0 +1,35 @@
+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 q35,usb=off,kernel_irqchip=split,dump-guest-core=off,memory-backend=pc.ram,acpi=on \
+-accel kvm \
+-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 \
+-device '{"driver":"AMDVI-PCI","id":"iommu0","bus":"pcie.0","addr":"0x1"}' \
+-device '{"driver":"amd-iommu","pci-id":"iommu0","intremap":"on","device-iotlb":true}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-global ICH9-LPC.noreboot=off \
+-watchdog-action reset \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.xml b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.xml
new file mode 120000
index 0000000000..5ba3d4b91b
--- /dev/null
+++ b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.xml
@@ -0,0 +1 @@
+amd-iommu.xml
\ No newline at end of file
diff --git a/tests/qemuxmlconfdata/amd-iommu.xml b/tests/qemuxmlconfdata/amd-iommu.xml
new file mode 100644
index 0000000000..0668ed4237
--- /dev/null
+++ b/tests/qemuxmlconfdata/amd-iommu.xml
@@ -0,0 +1,39 @@
+<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'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='q35'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <acpi/>
+ <ioapic driver='qemu'/>
+ </features>
+ <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'/>
+ <audio id='1' type='none'/>
+ <watchdog model='itco' action='reset'/>
+ <memballoon model='none'/>
+ <iommu model='amd'>
+ <driver intremap='on' iotlb='on'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
+ </iommu>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index bed562286d..e59ed73088 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -2774,6 +2774,8 @@ mymain(void)
DO_TEST_CAPS_LATEST("acpi-table");
DO_TEST_CAPS_LATEST("acpi-table-many");
+ DO_TEST_CAPS_LATEST("amd-iommu");
+
DO_TEST_CAPS_LATEST("intel-iommu");
DO_TEST_CAPS_LATEST("intel-iommu-caching-mode");
DO_TEST_CAPS_LATEST("intel-iommu-eim");
--
2.50.1

View File

@ -1,690 +0,0 @@
From 40243a6838c8f22c2be519ff8347c03c730caf45 Mon Sep 17 00:00:00 2001
Message-ID: <40243a6838c8f22c2be519ff8347c03c730caf45.1755522824.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Wed, 16 Jul 2025 16:40:01 +0100
Subject: [PATCH] qemu: add ability to set TLS priority string with QEMU
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
QEMU will either use the GNUTLS default priority string of "NORMAL",
or on Fedora/RHEL related distros, "@QEMU,SYSTEM", which resolves to
a configuration in /etc/crypto-policies/back-ends/gnutls.config.
The latter gives the sysadmin the ability to change the priority
string used for GNUTLS at deployment time, either system side, or
exclusively for QEMU, avoiding the hardcoded GNUTLS defaults.
There are still some limitations to this:
* Priorities cannot be set for different areas of QEMU
functionality (migration, vnc, nbd, etc)
* Priorities are fixed at the time when QEMU first
triggers GNUTLS to load its config file, often
immediately at startup.
We recently uncovered a QEMU bug that causes crashes in live
migration with TLS-1.3, where the easiest workaround is to
change the TLS priorities. We can't change this on the running
QEMU, but fortunately it is possible to change it on the target
QEMU and the TLS handshake will make it take effect on both
src and dst.
The problem is, while fixing the immediate incoming and outgoing
live migration problems, the workaround will apply to everything
else that QEMU does for the rest of the time that process exists.
We want to make it possible to set the TLS priorities only for
the current migrations, such that if the target QEMU has a fixed
GNUTLS, it will not have its TLS priorities hobbled for the next
live migration.
To achieve this we need libvirt to be able to (optionally) set
the TLS priority string with QEMU. While live migration is the
most pressing need, the new qemu.conf parameters are wired up
for every subsystem for greater selectivity in future.
With this we can activate the GNUTLS workaround for running
QEMU processes by editting qemu.conf and restarting virtqemud,
and later undo this the same way.
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 14e41ac9f365b148e69088c5ffeb565a0f9ba326)
- Added dummy vxhsTLSpriority field and adapted old test data files
Resolves: https://issues.redhat.com/browse/RHEL-106276
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
src/conf/storage_source_conf.c | 2 +
src/conf/storage_source_conf.h | 1 +
src/qemu/libvirtd_qemu.aug | 6 +++
src/qemu/qemu.conf.in | 37 +++++++++++++++++++
src/qemu/qemu_backup.c | 5 ++-
src/qemu/qemu_blockjob.c | 1 +
src/qemu/qemu_command.c | 15 ++++++--
src/qemu/qemu_command.h | 1 +
src/qemu/qemu_conf.c | 22 +++++++++++
src/qemu/qemu_conf.h | 8 ++++
src/qemu/qemu_domain.c | 3 ++
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_hotplug.c | 4 +-
src/qemu/qemu_hotplug.h | 1 +
src/qemu/qemu_migration_params.c | 1 +
src/qemu/test_libvirtd_qemu.aug.in | 6 +++
...rk-tlsx509-nbd-hostname.x86_64-latest.args | 2 +-
.../graphics-vnc-tls-secret.x86_64-5.2.0.args | 2 +-
...graphics-vnc-tls-secret.x86_64-latest.args | 2 +-
...-tlsx509-secret-chardev.x86_64-latest.args | 2 +-
tests/qemuxmlconftest.c | 6 +++
21 files changed, 117 insertions(+), 11 deletions(-)
diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c
index ca956a1b7c..dc6e6bde32 100644
--- a/src/conf/storage_source_conf.c
+++ b/src/conf/storage_source_conf.c
@@ -838,6 +838,7 @@ virStorageSourceCopy(const virStorageSource *src,
def->compat = g_strdup(src->compat);
def->tlsAlias = g_strdup(src->tlsAlias);
def->tlsCertdir = g_strdup(src->tlsCertdir);
+ def->tlsPriority = g_strdup(src->tlsPriority);
def->tlsHostname = g_strdup(src->tlsHostname);
def->query = g_strdup(src->query);
def->vdpadev = g_strdup(src->vdpadev);
@@ -1191,6 +1192,7 @@ virStorageSourceClear(virStorageSource *def)
VIR_FREE(def->tlsAlias);
VIR_FREE(def->tlsCertdir);
+ VIR_FREE(def->tlsPriority);
VIR_FREE(def->tlsHostname);
VIR_FREE(def->ssh_user);
diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h
index e6cbb93c06..760b60bd40 100644
--- a/src/conf/storage_source_conf.h
+++ b/src/conf/storage_source_conf.h
@@ -392,6 +392,7 @@ struct _virStorageSource {
* certificate directory with listen and verify bools. */
char *tlsAlias;
char *tlsCertdir;
+ char *tlsPriority;
/* TLS hostname override */
char *tlsHostname;
diff --git a/src/qemu/libvirtd_qemu.aug b/src/qemu/libvirtd_qemu.aug
index 3f018f39a0..711806b2a8 100644
--- a/src/qemu/libvirtd_qemu.aug
+++ b/src/qemu/libvirtd_qemu.aug
@@ -30,6 +30,7 @@ module Libvirtd_qemu =
let default_tls_entry = str_entry "default_tls_x509_cert_dir"
| bool_entry "default_tls_x509_verify"
| str_entry "default_tls_x509_secret_uuid"
+ | str_entry "default_tls_priority"
let vnc_entry = str_entry "vnc_listen"
| bool_entry "vnc_auto_unix_socket"
@@ -37,6 +38,7 @@ module Libvirtd_qemu =
| str_entry "vnc_tls_x509_cert_dir"
| bool_entry "vnc_tls_x509_verify"
| str_entry "vnc_tls_x509_secret_uuid"
+ | str_entry "vnc_tls_priority"
| str_entry "vnc_password"
| bool_entry "vnc_sasl"
| str_entry "vnc_sasl_dir"
@@ -54,15 +56,18 @@ module Libvirtd_qemu =
| str_entry "chardev_tls_x509_cert_dir"
| bool_entry "chardev_tls_x509_verify"
| str_entry "chardev_tls_x509_secret_uuid"
+ | str_entry "chardev_tls_priority"
let migrate_entry = str_entry "migrate_tls_x509_cert_dir"
| bool_entry "migrate_tls_x509_verify"
| str_entry "migrate_tls_x509_secret_uuid"
+ | str_entry "migrate_tls_priority"
| bool_entry "migrate_tls_force"
let backup_entry = str_entry "backup_tls_x509_cert_dir"
| bool_entry "backup_tls_x509_verify"
| str_entry "backup_tls_x509_secret_uuid"
+ | str_entry "backup_tls_priority"
let vxhs_entry = bool_entry "vxhs_tls"
| str_entry "vxhs_tls_x509_cert_dir"
@@ -71,6 +76,7 @@ module Libvirtd_qemu =
let nbd_entry = bool_entry "nbd_tls"
| str_entry "nbd_tls_x509_cert_dir"
| str_entry "nbd_tls_x509_secret_uuid"
+ | str_entry "nbd_tls_priority"
let nogfx_entry = bool_entry "nographics_allow_host_audio"
diff --git a/src/qemu/qemu.conf.in b/src/qemu/qemu.conf.in
index 988d176a28..8bf18d06b2 100644
--- a/src/qemu/qemu.conf.in
+++ b/src/qemu/qemu.conf.in
@@ -62,6 +62,18 @@
#default_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
+# Libvirt allows QEMU to use its built-in TLS priority by default,
+# however, this allows overriding it at runtime. This is especially
+# useful if TLS priority needs to be changed for an operation run
+# against an existing running QEMU.
+#
+# This must be a valid GNUTLS priority string:
+#
+# https://gnutls.org/manual/html_node/Priority-Strings.html
+#
+#default_tls_priority = "@SYSTEM"
+
+
# VNC is configured to listen on 127.0.0.1 by default.
# To make it listen on all public interfaces, uncomment
# this next option.
@@ -127,6 +139,11 @@
#vnc_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
+# Override QEMU default GNUTLS priority string for VNC
+#
+#vnc_tls_priority = "@SYSTEM"
+
+
# The default VNC password. Only 8 bytes are significant for
# VNC passwords. This parameter is only used if the per-domain
# XML config does not already provide a password. To allow
@@ -278,6 +295,11 @@
#chardev_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
+# Override QEMU default GNUTLS priority string for character devices
+#
+#chardev_tls_priority = "@SYSTEM"
+
+
# Enable use of TLS encryption for all VxHS network block devices that
# don't specifically disable.
#
@@ -366,6 +388,11 @@
#nbd_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
+# Override QEMU default GNUTLS priority string for NBD
+#
+#nbd_tls_priority = "@SYSTEM"
+
+
# In order to override the default TLS certificate location for migration
# certificates, supply a valid path to the certificate directory. If the
# provided path does not exist, libvirtd will fail to start. If the path is
@@ -405,6 +432,11 @@
#migrate_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
+# Override QEMU default GNUTLS priority string for live migration
+#
+#migrate_tls_priority = "@SYSTEM"
+
+
# By default TLS is requested using the VIR_MIGRATE_TLS flag, thus not requested
# automatically. Setting 'migate_tls_force' to "1" will prevent any migration
# which is not using VIR_MIGRATE_TLS to ensure higher level of security in
@@ -450,6 +482,11 @@
#backup_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
+# Override QEMU default GNUTLS priority string for NBD backups
+#
+#backup_tls_priority = "@SYSTEM"
+
+
# By default, if no graphical front end is configured, libvirt will disable
# QEMU audio output since directly talking to alsa/pulseaudio may not work
# with various security settings. If you know what you're doing, enable
diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c
index f64639d501..d416f0f0c7 100644
--- a/src/qemu/qemu_backup.c
+++ b/src/qemu/qemu_backup.c
@@ -725,8 +725,9 @@ qemuBackupBeginPrepareTLS(virDomainObj *vm,
}
if (qemuBuildTLSx509BackendProps(cfg->backupTLSx509certdir, true,
- cfg->backupTLSx509verify, tlsObjAlias,
- tlsKeySecretAlias,
+ cfg->backupTLSx509verify,
+ cfg->backupTLSpriority,
+ tlsObjAlias, tlsKeySecretAlias,
tlsProps) < 0)
return -1;
diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c
index 4e77543fa8..4d94703807 100644
--- a/src/qemu/qemu_blockjob.c
+++ b/src/qemu/qemu_blockjob.c
@@ -623,6 +623,7 @@ qemuBlockJobCleanStorageSourceRuntime(virStorageSource *src)
VIR_FREE(src->nodenameformat);
VIR_FREE(src->tlsAlias);
VIR_FREE(src->tlsCertdir);
+ VIR_FREE(src->tlsPriority);
}
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index fffc8be08a..243729800b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1253,6 +1253,7 @@ qemuBuildObjectSecretCommandLine(virCommand *cmd,
* @tlspath: path to the TLS credentials
* @listen: boolean listen for client or server setting
* @verifypeer: boolean to enable peer verification (form of authorization)
+ * @priority: GNUTLS priority string override (optional)
* @alias: alias for the TLS credentials object
* @secalias: if one exists, the alias of the security object for passwordid
* @propsret: json properties to return
@@ -1265,6 +1266,7 @@ int
qemuBuildTLSx509BackendProps(const char *tlspath,
bool isListen,
bool verifypeer,
+ const char *priority,
const char *alias,
const char *secalias,
virJSONValue **propsret)
@@ -1273,6 +1275,7 @@ qemuBuildTLSx509BackendProps(const char *tlspath,
"s:dir", tlspath,
"s:endpoint", (isListen ? "server": "client"),
"b:verify-peer", (isListen ? verifypeer : true),
+ "S:priority", priority,
"S:passwordid", secalias,
NULL) < 0)
return -1;
@@ -1286,6 +1289,7 @@ qemuBuildTLSx509BackendProps(const char *tlspath,
* @tlspath: path to the TLS credentials
* @listen: boolean listen for client or server setting
* @verifypeer: boolean to enable peer verification (form of authorization)
+ * @priority: GNUTLS priority string override (optional)
* @certEncSecretAlias: alias of a 'secret' object for decrypting TLS private key
* (optional)
* @alias: TLS object alias
@@ -1300,14 +1304,15 @@ qemuBuildTLSx509CommandLine(virCommand *cmd,
const char *tlspath,
bool isListen,
bool verifypeer,
+ const char *priority,
const char *certEncSecretAlias,
const char *alias,
virQEMUCaps *qemuCaps)
{
g_autoptr(virJSONValue) props = NULL;
- if (qemuBuildTLSx509BackendProps(tlspath, isListen, verifypeer, alias,
- certEncSecretAlias, &props) < 0)
+ if (qemuBuildTLSx509BackendProps(tlspath, isListen, verifypeer, priority,
+ alias, certEncSecretAlias, &props) < 0)
return -1;
if (qemuBuildObjectCommandlineFromJSON(cmd, props, qemuCaps) < 0)
@@ -1350,6 +1355,7 @@ qemuBuildChardevCommand(virCommand *cmd,
if (qemuBuildTLSx509CommandLine(cmd, chrSourcePriv->tlsCertPath,
dev->data.tcp.listen,
chrSourcePriv->tlsVerify,
+ chrSourcePriv->tlsPriority,
tlsCertEncSecAlias,
objalias, qemuCaps) < 0) {
return -1;
@@ -8144,6 +8150,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfig *cfg,
cfg->vncTLSx509certdir,
true,
cfg->vncTLSx509verify,
+ cfg->vncTLSpriority,
secretAlias,
gfxPriv->tlsAlias,
qemuCaps) < 0)
@@ -10995,8 +11002,8 @@ qemuBuildStorageSourceAttachPrepareCommon(virStorageSource *src,
}
if (src->haveTLS == VIR_TRISTATE_BOOL_YES &&
- qemuBuildTLSx509BackendProps(src->tlsCertdir, false, true, src->tlsAlias,
- tlsKeySecretAlias, &data->tlsProps) < 0)
+ qemuBuildTLSx509BackendProps(src->tlsCertdir, false, true, src->tlsPriority,
+ src->tlsAlias, tlsKeySecretAlias, &data->tlsProps) < 0)
return -1;
return 0;
diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
index 76c514b5f7..948a633668 100644
--- a/src/qemu/qemu_command.h
+++ b/src/qemu/qemu_command.h
@@ -62,6 +62,7 @@ int qemuBuildSecretInfoProps(qemuDomainSecretInfo *secinfo,
int qemuBuildTLSx509BackendProps(const char *tlspath,
bool isListen,
bool verifypeer,
+ const char *priority,
const char *alias,
const char *secalias,
virJSONValue **propsret);
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 7c15c521c7..93e1f7938b 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -422,6 +422,9 @@ virQEMUDriverConfigLoadDefaultTLSEntry(virQEMUDriverConfig *cfg,
if (virConfGetValueString(conf, "default_tls_x509_secret_uuid",
&cfg->defaultTLSx509secretUUID) < 0)
return -1;
+ if (virConfGetValueString(conf, "default_tls_priority",
+ &cfg->defaultTLSpriority) < 0)
+ return -1;
return 0;
}
@@ -521,6 +524,9 @@ virQEMUDriverConfigLoadSpecificTLSEntry(virQEMUDriverConfig *cfg,
#val "_tls_x509_secret_uuid", \
&cfg->val## TLSx509secretUUID) < 0) \
return -1; \
+ if ((rv = virConfGetValueString(conf, #val "_tls_priority", \
+ &cfg->val## TLSpriority)) < 0) \
+ return -1; \
} while (0)
#define GET_CONFIG_TLS_CERTINFO_SERVER(val) \
@@ -1305,6 +1311,22 @@ virQEMUDriverConfigSetDefaults(virQEMUDriverConfig *cfg)
#undef SET_TLS_SECRET_UUID_DEFAULT
+#define SET_TLS_PRIORITY_DEFAULT(val) \
+ do { \
+ if (!cfg->val## TLSpriority && \
+ cfg->defaultTLSpriority) { \
+ cfg->val## TLSpriority = g_strdup(cfg->defaultTLSpriority); \
+ } \
+ } while (0)
+
+ SET_TLS_PRIORITY_DEFAULT(vnc);
+ SET_TLS_PRIORITY_DEFAULT(chardev);
+ SET_TLS_PRIORITY_DEFAULT(migrate);
+ SET_TLS_PRIORITY_DEFAULT(backup);
+ SET_TLS_PRIORITY_DEFAULT(nbd);
+
+#undef SET_TLS_PRIORITY_DEFAULT
+
/*
* If a "SYSCONFDIR" + "pki/libvirt-<val>" exists, then assume someone
* has created a val specific area to place service specific certificates.
diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
index 42cdb6f883..b650f52262 100644
--- a/src/qemu/qemu_conf.h
+++ b/src/qemu/qemu_conf.h
@@ -115,6 +115,7 @@ struct _virQEMUDriverConfig {
bool defaultTLSx509verify;
bool defaultTLSx509verifyPresent;
char *defaultTLSx509secretUUID;
+ char *defaultTLSpriority;
bool vncAutoUnixSocket;
bool vncTLS;
@@ -123,6 +124,7 @@ struct _virQEMUDriverConfig {
bool vncSASL;
char *vncTLSx509certdir;
char *vncTLSx509secretUUID;
+ char *vncTLSpriority;
char *vncListen;
char *vncPassword;
char *vncSASLdir;
@@ -140,25 +142,31 @@ struct _virQEMUDriverConfig {
bool chardevTLSx509verify;
bool chardevTLSx509verifyPresent;
char *chardevTLSx509secretUUID;
+ char *chardevTLSpriority;
char *migrateTLSx509certdir;
bool migrateTLSx509verify;
bool migrateTLSx509verifyPresent;
char *migrateTLSx509secretUUID;
+ char *migrateTLSpriority;
bool migrateTLSForce;
char *backupTLSx509certdir;
bool backupTLSx509verify;
bool backupTLSx509verifyPresent;
char *backupTLSx509secretUUID;
+ char *backupTLSpriority;
bool vxhsTLS;
char *vxhsTLSx509certdir;
char *vxhsTLSx509secretUUID;
+ char *vxhsTLSpriority; /* unused / dummy field to keep
+ * GET_CONFIG_TLS_CERTINFO_COMMON happy */
bool nbdTLS;
char *nbdTLSx509certdir;
char *nbdTLSx509secretUUID;
+ char *nbdTLSpriority;
unsigned int remotePortMin;
unsigned int remotePortMax;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index cc47adb724..8879a45ffb 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -955,6 +955,7 @@ qemuDomainChrSourcePrivateDispose(void *obj)
qemuDomainChrSourcePrivateClearFDPass(priv);
g_free(priv->tlsCertPath);
+ g_free(priv->tlsPriority);
g_free(priv->tlsCredsAlias);
@@ -8686,6 +8687,7 @@ qemuDomainPrepareChardevSourceOne(virDomainDeviceDef *dev,
if (charsrc->data.tcp.haveTLS == VIR_TRISTATE_BOOL_YES) {
charpriv->tlsCertPath = g_strdup(data->cfg->chardevTLSx509certdir);
+ charpriv->tlsPriority = g_strdup(data->cfg->chardevTLSpriority);
charpriv->tlsVerify = data->cfg->chardevTLSx509verify;
}
}
@@ -8785,6 +8787,7 @@ qemuProcessPrepareStorageSourceTLSNBD(virStorageSource *src,
src->tlsAlias = qemuAliasTLSObjFromSrcAlias(parentAlias);
src->tlsCertdir = g_strdup(cfg->nbdTLSx509certdir);
+ src->tlsPriority = g_strdup(cfg->nbdTLSpriority);
if (cfg->nbdTLSx509secretUUID) {
qemuDomainStorageSourcePrivate *srcpriv = qemuDomainStorageSourcePrivateFetch(src);
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 63f422bbcb..3f16f86da8 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -381,6 +381,7 @@ struct _qemuDomainChrSourcePrivate {
char *tlsCertPath; /* path to certificates if TLS is requested */
bool tlsVerify; /* whether server should verify client certificates */
+ char *tlsPriority; /* optional GNUTLS priority string */
char *tlsCredsAlias; /* alias of the x509 tls credentials object */
};
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index ff09b58bfe..c6704cbebe 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1717,6 +1717,7 @@ qemuDomainGetTLSObjects(qemuDomainSecretInfo *secinfo,
const char *tlsCertdir,
bool tlsListen,
bool tlsVerify,
+ const char *tlsPriority,
const char *alias,
virJSONValue **tlsProps,
virJSONValue **secProps)
@@ -1730,7 +1731,7 @@ qemuDomainGetTLSObjects(qemuDomainSecretInfo *secinfo,
secAlias = secinfo->alias;
}
- if (qemuBuildTLSx509BackendProps(tlsCertdir, tlsListen, tlsVerify,
+ if (qemuBuildTLSx509BackendProps(tlsCertdir, tlsListen, tlsVerify, tlsPriority,
alias, secAlias, tlsProps) < 0)
return -1;
@@ -1774,6 +1775,7 @@ qemuDomainAddChardevTLSObjects(virQEMUDriver *driver,
cfg->chardevTLSx509certdir,
dev->data.tcp.listen,
cfg->chardevTLSx509verify,
+ cfg->chardevTLSpriority,
*tlsAlias, &tlsProps, &secProps) < 0)
return -1;
diff --git a/src/qemu/qemu_hotplug.h b/src/qemu/qemu_hotplug.h
index 4fe7f4923e..5d32487047 100644
--- a/src/qemu/qemu_hotplug.h
+++ b/src/qemu/qemu_hotplug.h
@@ -38,6 +38,7 @@ int qemuDomainGetTLSObjects(qemuDomainSecretInfo *secinfo,
const char *tlsCertdir,
bool tlsListen,
bool tlsVerify,
+ const char *tlsPriority,
const char *alias,
virJSONValue **tlsProps,
virJSONValue **secProps);
diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c
index 98822012cc..3858cca907 100644
--- a/src/qemu/qemu_migration_params.c
+++ b/src/qemu/qemu_migration_params.c
@@ -1143,6 +1143,7 @@ qemuMigrationParamsEnableTLS(virQEMUDriver *driver,
if (qemuDomainGetTLSObjects(priv->migSecinfo,
cfg->migrateTLSx509certdir, tlsListen,
cfg->migrateTLSx509verify,
+ cfg->migrateTLSpriority,
*tlsAlias, &tlsProps, &secProps) < 0)
return -1;
diff --git a/src/qemu/test_libvirtd_qemu.aug.in b/src/qemu/test_libvirtd_qemu.aug.in
index 86b3844d2c..b916af35ee 100644
--- a/src/qemu/test_libvirtd_qemu.aug.in
+++ b/src/qemu/test_libvirtd_qemu.aug.in
@@ -5,12 +5,14 @@ module Test_libvirtd_qemu =
{ "default_tls_x509_cert_dir" = "/etc/pki/qemu" }
{ "default_tls_x509_verify" = "1" }
{ "default_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
+{ "default_tls_priority" = "@SYSTEM" }
{ "vnc_listen" = "0.0.0.0" }
{ "vnc_auto_unix_socket" = "1" }
{ "vnc_tls" = "1" }
{ "vnc_tls_x509_cert_dir" = "/etc/pki/libvirt-vnc" }
{ "vnc_tls_x509_verify" = "1" }
{ "vnc_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
+{ "vnc_tls_priority" = "@SYSTEM" }
{ "vnc_password" = "XYZ12345" }
{ "vnc_sasl" = "1" }
{ "vnc_sasl_dir" = "/some/directory/sasl2" }
@@ -26,19 +28,23 @@ module Test_libvirtd_qemu =
{ "chardev_tls_x509_cert_dir" = "/etc/pki/libvirt-chardev" }
{ "chardev_tls_x509_verify" = "1" }
{ "chardev_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
+{ "chardev_tls_priority" = "@SYSTEM" }
{ "vxhs_tls" = "1" }
{ "vxhs_tls_x509_cert_dir" = "/etc/pki/libvirt-vxhs" }
{ "vxhs_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
{ "nbd_tls" = "1" }
{ "nbd_tls_x509_cert_dir" = "/etc/pki/libvirt-nbd" }
{ "nbd_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
+{ "nbd_tls_priority" = "@SYSTEM" }
{ "migrate_tls_x509_cert_dir" = "/etc/pki/libvirt-migrate" }
{ "migrate_tls_x509_verify" = "1" }
{ "migrate_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
+{ "migrate_tls_priority" = "@SYSTEM" }
{ "migrate_tls_force" = "0" }
{ "backup_tls_x509_cert_dir" = "/etc/pki/libvirt-backup" }
{ "backup_tls_x509_verify" = "1" }
{ "backup_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
+{ "backup_tls_priority" = "@SYSTEM" }
{ "nographics_allow_host_audio" = "1" }
{ "remote_display_port_min" = "5900" }
{ "remote_display_port_max" = "65535" }
diff --git a/tests/qemuxmlconfdata/disk-network-tlsx509-nbd-hostname.x86_64-latest.args b/tests/qemuxmlconfdata/disk-network-tlsx509-nbd-hostname.x86_64-latest.args
index 4ee9a0631b..77d38c3020 100644
--- a/tests/qemuxmlconfdata/disk-network-tlsx509-nbd-hostname.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/disk-network-tlsx509-nbd-hostname.x86_64-latest.args
@@ -28,7 +28,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-boot strict=on \
-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
-object '{"qom-type":"secret","id":"objlibvirt-1-storage_tls0-secret0","data":"9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1","keyid":"masterKey0","iv":"AAECAwQFBgcICQoLDA0ODw==","format":"base64"}' \
--object '{"qom-type":"tls-creds-x509","id":"objlibvirt-1-storage_tls0","dir":"/etc/pki/libvirt-nbd","endpoint":"client","verify-peer":true,"passwordid":"objlibvirt-1-storage_tls0-secret0"}' \
+-object '{"qom-type":"tls-creds-x509","id":"objlibvirt-1-storage_tls0","dir":"/etc/pki/libvirt-nbd","endpoint":"client","verify-peer":true,"priority":"@SYSTEM:-VERS-TLS1.3","passwordid":"objlibvirt-1-storage_tls0-secret0"}' \
-blockdev '{"driver":"nbd","server":{"type":"inet","host":"example.com","port":"1234"},"tls-creds":"objlibvirt-1-storage_tls0","tls-hostname":"test-hostname","node-name":"libvirt-1-storage","read-only":false,"cache":{"direct":true,"no-flush":false}}' \
-device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x7","drive":"libvirt-1-storage","id":"virtio-disk3","bootindex":1,"write-cache":"on"}' \
-audiodev '{"id":"audio1","driver":"none"}' \
diff --git a/tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-5.2.0.args b/tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-5.2.0.args
index 11f8b3f4f0..3c3002dd4f 100644
--- a/tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-5.2.0.args
+++ b/tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-5.2.0.args
@@ -30,7 +30,7 @@ SASL_CONF_PATH=/etc/sasl2 \
-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
-audiodev '{"id":"audio1","driver":"none"}' \
-object secret,id=vnc-tls-creds0-secret0,data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--object tls-creds-x509,id=vnc-tls-creds0,dir=/etc/pki/libvirt-vnc,endpoint=server,verify-peer=on,passwordid=vnc-tls-creds0-secret0 \
+-object tls-creds-x509,id=vnc-tls-creds0,dir=/etc/pki/libvirt-vnc,endpoint=server,verify-peer=on,priority=@SYSTEM:-VERS-TLS1.3,passwordid=vnc-tls-creds0-secret0 \
-vnc 127.0.0.1:3,tls-creds=vnc-tls-creds0,sasl=on,audiodev=audio1 \
-device cirrus-vga,id=video0,bus=pci.0,addr=0x2 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-latest.args b/tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-latest.args
index 50cc8532d1..32d7be1d3b 100644
--- a/tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-latest.args
@@ -29,7 +29,7 @@ SASL_CONF_PATH=/etc/sasl2 \
-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
-audiodev '{"id":"audio1","driver":"none"}' \
-object '{"qom-type":"secret","id":"vnc-tls-creds0-secret0","data":"9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1","keyid":"masterKey0","iv":"AAECAwQFBgcICQoLDA0ODw==","format":"base64"}' \
--object '{"qom-type":"tls-creds-x509","id":"vnc-tls-creds0","dir":"/etc/pki/libvirt-vnc","endpoint":"server","verify-peer":true,"passwordid":"vnc-tls-creds0-secret0"}' \
+-object '{"qom-type":"tls-creds-x509","id":"vnc-tls-creds0","dir":"/etc/pki/libvirt-vnc","endpoint":"server","verify-peer":true,"priority":"@SYSTEM:-VERS-TLS1.3","passwordid":"vnc-tls-creds0-secret0"}' \
-vnc 127.0.0.1:3,tls-creds=vnc-tls-creds0,sasl=on,audiodev=audio1 \
-device '{"driver":"cirrus-vga","id":"video0","bus":"pci.0","addr":"0x2"}' \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/serial-tcp-tlsx509-secret-chardev.x86_64-latest.args b/tests/qemuxmlconfdata/serial-tcp-tlsx509-secret-chardev.x86_64-latest.args
index c227a04112..492d1be626 100644
--- a/tests/qemuxmlconfdata/serial-tcp-tlsx509-secret-chardev.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/serial-tcp-tlsx509-secret-chardev.x86_64-latest.args
@@ -32,7 +32,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,localport=1111 \
-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
-object '{"qom-type":"secret","id":"charserial1-secret0","data":"9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1","keyid":"masterKey0","iv":"AAECAwQFBgcICQoLDA0ODw==","format":"base64"}' \
--object '{"qom-type":"tls-creds-x509","id":"objcharserial1_tls0","dir":"/etc/pki/libvirt-chardev","endpoint":"client","verify-peer":true,"passwordid":"charserial1-secret0"}' \
+-object '{"qom-type":"tls-creds-x509","id":"objcharserial1_tls0","dir":"/etc/pki/libvirt-chardev","endpoint":"client","verify-peer":true,"priority":"@SYSTEM:-VERS-TLS1.3","passwordid":"charserial1-secret0"}' \
-chardev socket,id=charserial1,host=127.0.0.1,port=5555,tls-creds=objcharserial1_tls0 \
-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1","index":1}' \
-audiodev '{"id":"audio1","driver":"none"}' \
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index e59ed73088..a0af6429d1 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1598,7 +1598,9 @@ mymain(void)
DO_TEST_CAPS_VER("disk-network-tlsx509-nbd", "5.2.0");
DO_TEST_CAPS_LATEST("disk-network-tlsx509-nbd");
DO_TEST_CAPS_VER_PARSE_ERROR("disk-network-tlsx509-nbd-hostname", "6.2.0");
+ driver.config->nbdTLSpriority = g_strdup("@SYSTEM:-VERS-TLS1.3");
DO_TEST_CAPS_LATEST("disk-network-tlsx509-nbd-hostname");
+ VIR_FREE(driver.config->nbdTLSpriority);
DO_TEST_CAPS_LATEST("disk-network-http");
VIR_FREE(driver.config->nbdTLSx509secretUUID);
VIR_FREE(driver.config->vxhsTLSx509secretUUID);
@@ -1714,9 +1716,11 @@ mymain(void)
driver.config->vncTLS = 1;
driver.config->vncTLSx509verify = 1;
DO_TEST_CAPS_LATEST("graphics-vnc-tls");
+ driver.config->vncTLSpriority = g_strdup("@SYSTEM:-VERS-TLS1.3");
driver.config->vncTLSx509secretUUID = g_strdup("6fd3f62d-9fe7-4a4e-a869-7acd6376d8ea");
DO_TEST_CAPS_VER("graphics-vnc-tls-secret", "5.2.0");
DO_TEST_CAPS_LATEST("graphics-vnc-tls-secret");
+ VIR_FREE(driver.config->vncTLSpriority);
VIR_FREE(driver.config->vncTLSx509secretUUID);
driver.config->vncSASL = driver.config->vncTLSx509verify = driver.config->vncTLS = 0;
DO_TEST_CAPS_LATEST("graphics-vnc-egl-headless");
@@ -1865,7 +1869,9 @@ mymain(void)
driver.config->chardevTLSx509verify = 0;
DO_TEST_CAPS_LATEST("serial-tcp-tlsx509-chardev-notls");
driver.config->chardevTLSx509secretUUID = g_strdup("6fd3f62d-9fe7-4a4e-a869-7acd6376d8ea");
+ driver.config->chardevTLSpriority = g_strdup("@SYSTEM:-VERS-TLS1.3");
DO_TEST_CAPS_LATEST("serial-tcp-tlsx509-secret-chardev");
+ VIR_FREE(driver.config->chardevTLSpriority);
VIR_FREE(driver.config->chardevTLSx509secretUUID);
driver.config->chardevTLS = 0;
DO_TEST_CAPS_LATEST("serial-many-chardev");
--
2.50.1

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

@ -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

@ -1,84 +0,0 @@
From 5df4d5dc38491553e3d1e454f1cd233bda0b990a Mon Sep 17 00:00:00 2001
Message-ID: <5df4d5dc38491553e3d1e454f1cd233bda0b990a.1755522824.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Wed, 16 Jul 2025 16:32:05 +0100
Subject: [PATCH] qemu: fix order of VNC TLS config entries
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
For TLS config parameters, the 'verify' option always comes before the
'secret_uuid' option, except in the VNC case which has them reversed.
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 845e1b5138f37dbf91e5b08b7d54d963a6ec0452)
Resolves: https://issues.redhat.com/browse/RHEL-106276
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
src/qemu/libvirtd_qemu.aug | 2 +-
src/qemu/qemu.conf.in | 12 ++++++------
src/qemu/test_libvirtd_qemu.aug.in | 2 +-
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/qemu/libvirtd_qemu.aug b/src/qemu/libvirtd_qemu.aug
index 1377fd89cc..3f018f39a0 100644
--- a/src/qemu/libvirtd_qemu.aug
+++ b/src/qemu/libvirtd_qemu.aug
@@ -35,8 +35,8 @@ module Libvirtd_qemu =
| bool_entry "vnc_auto_unix_socket"
| bool_entry "vnc_tls"
| str_entry "vnc_tls_x509_cert_dir"
- | str_entry "vnc_tls_x509_secret_uuid"
| bool_entry "vnc_tls_x509_verify"
+ | str_entry "vnc_tls_x509_secret_uuid"
| str_entry "vnc_password"
| bool_entry "vnc_sasl"
| str_entry "vnc_sasl_dir"
diff --git a/src/qemu/qemu.conf.in b/src/qemu/qemu.conf.in
index 89c9b6b913..3365834200 100644
--- a/src/qemu/qemu.conf.in
+++ b/src/qemu/qemu.conf.in
@@ -101,12 +101,6 @@
#vnc_tls_x509_cert_dir = "/etc/pki/libvirt-vnc"
-# Uncomment and use the following option to override the default secret
-# UUID provided in the default_tls_x509_secret_uuid parameter.
-#
-#vnc_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
-
-
# The default TLS configuration only uses certificates for the server
# allowing the client to verify the server's identity and establish
# an encrypted channel.
@@ -125,6 +119,12 @@
#vnc_tls_x509_verify = 1
+# Uncomment and use the following option to override the default secret
+# UUID provided in the default_tls_x509_secret_uuid parameter.
+#
+#vnc_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
+
+
# The default VNC password. Only 8 bytes are significant for
# VNC passwords. This parameter is only used if the per-domain
# XML config does not already provide a password. To allow
diff --git a/src/qemu/test_libvirtd_qemu.aug.in b/src/qemu/test_libvirtd_qemu.aug.in
index 69fdae215a..86b3844d2c 100644
--- a/src/qemu/test_libvirtd_qemu.aug.in
+++ b/src/qemu/test_libvirtd_qemu.aug.in
@@ -9,8 +9,8 @@ module Test_libvirtd_qemu =
{ "vnc_auto_unix_socket" = "1" }
{ "vnc_tls" = "1" }
{ "vnc_tls_x509_cert_dir" = "/etc/pki/libvirt-vnc" }
-{ "vnc_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
{ "vnc_tls_x509_verify" = "1" }
+{ "vnc_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
{ "vnc_password" = "XYZ12345" }
{ "vnc_sasl" = "1" }
{ "vnc_sasl_dir" = "/some/directory/sasl2" }
--
2.50.1

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

@ -1,253 +0,0 @@
From 1910eee655456fff9f60e1a8d27e6b608a390953 Mon Sep 17 00:00:00 2001
Message-ID: <1910eee655456fff9f60e1a8d27e6b608a390953.1752749355.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Wed, 12 Mar 2025 16:10:31 +0100
Subject: [PATCH] qemu: introduce QEMU_CAPS_AMD_IOMMU
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Check for the presence of the amd-iommu device, so we can conditionalize
probing for its properties.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 14192af47ab8eda8bb9b9eee14fd1090addbb731)
https://issues.redhat.com/browse/RHEL-50560
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 +
tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 +
17 files changed, 18 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 6bff55f58e..8db6d19fda 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -726,6 +726,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
/* 470 */
"virtio-mem-ccw", /* QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW */
"blockdev-set-active", /* QEMU_CAPS_BLOCKDEV_SET_ACTIVE */
+ "amd-iommu", /* QEMU_CAPS_AMD_IOMMU */
);
@@ -1416,6 +1417,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
{ "sev-snp-guest", QEMU_CAPS_SEV_SNP_GUEST },
{ "acpi-erst", QEMU_CAPS_DEVICE_ACPI_ERST },
{ "virtio-mem-ccw", QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW },
+ { "amd-iommu", QEMU_CAPS_AMD_IOMMU },
};
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 8de392bf0f..484d1b5f1d 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -705,6 +705,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
/* 470 */
QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW, /* -device virtio-mem-ccw */
QEMU_CAPS_BLOCKDEV_SET_ACTIVE, /* blockdev-set-active QMP command supported */
+ QEMU_CAPS_AMD_IOMMU, /* -device amd-iommu */
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 e09b6e6e1a..8854b48a56 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
@@ -211,6 +211,7 @@
<flag name='chardev-reconnect-miliseconds'/>
<flag name='netdev-stream-reconnect-miliseconds'/>
<flag name='blockdev-set-active'/>
+ <flag name='amd-iommu'/>
<version>9002050</version>
<microcodeVersion>43100285</microcodeVersion>
<package>v9.2.0-1636-gffaf7f0376</package>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
index 4cd05fa7ec..c46b023c78 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
@@ -161,6 +161,7 @@
<flag name='virtio-crypto'/>
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
+ <flag name='amd-iommu'/>
<version>5002000</version>
<microcodeVersion>43100243</microcodeVersion>
<package>v5.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
index a8897fb80b..c7f2da0de6 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
@@ -174,6 +174,7 @@
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>6000000</version>
<microcodeVersion>43100242</microcodeVersion>
<package>v6.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml
index 0f2995a2d3..c3792a2ba8 100644
--- a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml
@@ -180,6 +180,7 @@
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>6001000</version>
<microcodeVersion>43100243</microcodeVersion>
<package>v6.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
index 582b0e9b52..8c904abf1f 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
@@ -182,6 +182,7 @@
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>6002000</version>
<microcodeVersion>43100244</microcodeVersion>
<package>v6.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
index fd317a9afa..0268960643 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
@@ -190,6 +190,7 @@
<flag name='acpi-erst'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>7000000</version>
<microcodeVersion>43100243</microcodeVersion>
<package>v7.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
index 32e4e8e1bb..8c0534264c 100644
--- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
@@ -195,6 +195,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>7001000</version>
<microcodeVersion>43100244</microcodeVersion>
<package>v7.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
index 0ebcb94a31..6e2204602b 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
@@ -199,6 +199,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>7002000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v7.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
index 025ced01d9..6daef743bf 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
@@ -199,6 +199,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>7002000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v7.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
index 5f45788b77..f28b8df68e 100644
--- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
@@ -203,6 +203,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>8000000</version>
<microcodeVersion>43100244</microcodeVersion>
<package>v8.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
index 7dee7f94c2..d6fbb11064 100644
--- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
@@ -205,6 +205,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>8001000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v8.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml
index 51e14736cd..27ecaee290 100644
--- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml
@@ -208,6 +208,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>8002000</version>
<microcodeVersion>43100246</microcodeVersion>
<package>v8.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
index 4b64547b11..452e7384c0 100644
--- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
@@ -210,6 +210,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>9000000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v9.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
index 06600f48fb..26883bd672 100644
--- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
@@ -208,6 +208,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='snapshot-internal-qmp'/>
+ <flag name='amd-iommu'/>
<version>9001000</version>
<microcodeVersion>43100246</microcodeVersion>
<package>v9.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml
index 982b7ad436..1353761fab 100644
--- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.2.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='amd-iommu'/>
<version>9001090</version>
<microcodeVersion>43100247</microcodeVersion>
<package>v9.2.0-rc0-42-g3428a3894c</package>
--
2.50.1

File diff suppressed because it is too large Load Diff

View File

@ -1,111 +0,0 @@
From 74aeb210bdbeba3389eff4f07860217dd8bb068e Mon Sep 17 00:00:00 2001
Message-ID: <74aeb210bdbeba3389eff4f07860217dd8bb068e.1747908718.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 4 Apr 2025 19:44:52 -0400
Subject: [PATCH] qemu: make passt+vhostuser reconnect behave identically to
passt+user
When "original passt" support was added, we decided that we always
wanted to reconnect (i.e. restart the passt process) if it was somehow
terminated. Generic vhost-user, on the other hand, only turns on
reconnect if specified by the user in the config. But there is no
reason to require the user to specify this if the other end of the
vhost-user socket is a passt process - we know what has happened and
what we want to do; no reason to do the *wrong* thing by default, and
force the user to make an arbitrary decision about what to add to the
config in order to make it do the *right* thing; instead we just
hardcode it to always do the right thing.
(NB: when the backend is passt, <interface type='vhostuser'> has
always ignored the reconnect setting in <source> when parsing and
formatting, just as it has always ignored the socket path (since that
also is not user configurable for the passt backend)
Resolves: https://issues.redhat.com/browse/RHEL-80169
Signed-off-by: Laine Stump <laine@redhat.com>
Tested-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 44abaa0128ac0fc8be9de4eebc15c03809bf5867)
Conflicts:
tests/qemuxmlconfdata/schema-reorder-domain-subelements.x86_64-latest.args:
This file (created by upstream commit be5332c81d28) was modified
upstream but doesin't exist downstream
https://issues.redhat.com/browse/RHEL-80169
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_passt.c | 16 +++++++++++++---
.../net-vhostuser-passt.x86_64-latest.args | 6 +++---
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_passt.c b/src/qemu/qemu_passt.c
index bc495eca1e..fcc34de384 100644
--- a/src/qemu/qemu_passt.c
+++ b/src/qemu/qemu_passt.c
@@ -36,7 +36,7 @@ VIR_LOG_INIT("qemu.passt");
#define PASST "passt"
-
+#define QEMU_PASST_RECONNECT_TIMEOUT 5
static char *
qemuPasstCreatePidFilename(virDomainObj *vm,
@@ -106,11 +106,15 @@ qemuPasstAddNetProps(virDomainObj *vm,
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_STREAM_RECONNECT)) {
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_STREAM_RECONNECT_MILISECONDS)) {
- if (virJSONValueObjectAdd(netprops, "u:reconnect-ms", 5000, NULL) < 0)
+ if (virJSONValueObjectAdd(netprops, "u:reconnect-ms",
+ QEMU_PASST_RECONNECT_TIMEOUT * 1000, NULL) < 0) {
return -1;
+ }
} else {
- if (virJSONValueObjectAdd(netprops, "u:reconnect", 5, NULL) < 0)
+ if (virJSONValueObjectAdd(netprops, "u:reconnect",
+ QEMU_PASST_RECONNECT_TIMEOUT, NULL) < 0) {
return -1;
+ }
}
}
@@ -182,6 +186,12 @@ qemuPasstPrepareVhostUser(virDomainObj *vm,
*/
g_free(net->data.vhostuser->data.nix.path);
net->data.vhostuser->data.nix.path = qemuPasstCreateSocketPath(vm, net);
+
+ /* reconnect is always enabled, with timeout always at 5 seconds, when
+ * using passt
+ */
+ net->data.vhostuser->data.nix.reconnect.enabled = VIR_TRISTATE_BOOL_YES;
+ net->data.vhostuser->data.nix.reconnect.timeout = QEMU_PASST_RECONNECT_TIMEOUT;
}
int
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
index 7c030d7067..afbbe188cf 100644
--- a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
@@ -28,13 +28,13 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-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 \
+-chardev socket,id=charnet0,path=/var/run/libvirt/qemu/passt/-1-QEMUGuest1-net0.socket,reconnect-ms=5000 \
-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 \
+-chardev socket,id=charnet1,path=/var/run/libvirt/qemu/passt/-1-QEMUGuest1-net1.socket,reconnect-ms=5000 \
-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 \
+-chardev socket,id=charnet2,path=/var/run/libvirt/qemu/passt/-1-QEMUGuest1-net2.socket,reconnect-ms=5000 \
-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"}' \
--
2.49.0

View File

@ -1,119 +0,0 @@
From a34cd486d22bf36ea64a6dd14541138fcca31b37 Mon Sep 17 00:00:00 2001
Message-ID: <a34cd486d22bf36ea64a6dd14541138fcca31b37.1747908718.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 4 Apr 2025 16:57:21 -0400
Subject: [PATCH] qemu: make processNetDevStreamDisconnectedEvent() reusable
We will be adding a new event whose response will be *exactly* the
same as the response to NETDEV_STREAM_DISCONNECTED. Rather than doing
a copy-paste of the complete function that does the processing, turn
that function into something more generic that takes the name of the
event as an arg (the event name is only used in log messages).
Signed-off-by: Laine Stump <laine@redhat.com>
Tested-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 03a6bc7752ec73d7ea222d5386e8f4124fe51c7f)
Conflicts:
src/qemu/qemu_driver.c:
In context surrounding a chunk, the arguments to
processNicRxFilterChangedEvent() changed upstream (due to upstream
commit 50981052a5f)
https://issues.redhat.com/browse/RHEL-80169
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_driver.c | 37 +++++++++++++++++++++++--------------
1 file changed, 23 insertions(+), 14 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 89bb10756e..3373dfb845 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3618,8 +3618,9 @@ processDeviceDeletedEvent(virQEMUDriver *driver,
static void
-processNetdevStreamDisconnectedEvent(virDomainObj *vm,
- const char *netdevId)
+processNetdevDisconnectedEvent(virDomainObj *vm,
+ const char *netdevId,
+ const char *eventName)
{
virDomainDeviceDef dev;
virDomainNetDef *def;
@@ -3634,13 +3635,13 @@ processNetdevStreamDisconnectedEvent(virDomainObj *vm,
*/
if (!devAlias) {
- VIR_WARN("Received NETDEV_STREAM_DISCONNECTED event for unrecognized netdev %s from domain %p %s",
- netdevId, vm, vm->def->name);
+ VIR_WARN("Received %s event for unrecognized netdev %s from domain %p %s",
+ eventName, netdevId, vm, vm->def->name);
return;
}
- VIR_DEBUG("Received NETDEV_STREAM_DISCONNECTED event for device %s from domain %p %s",
- devAlias, vm, vm->def->name);
+ VIR_DEBUG("Received %s event for device %s from domain %p %s",
+ eventName, devAlias, vm, vm->def->name);
if (virDomainObjBeginJob(vm, VIR_JOB_QUERY) < 0)
return;
@@ -3651,28 +3652,28 @@ processNetdevStreamDisconnectedEvent(virDomainObj *vm,
}
if (virDomainDefFindDevice(vm->def, devAlias, &dev, true) < 0) {
- VIR_WARN("NETDEV_STREAM_DISCONNECTED event received for non-existent device %s in domain %s",
- devAlias, vm->def->name);
+ VIR_WARN("%s event received for non-existent device %s in domain %s",
+ eventName, devAlias, vm->def->name);
goto endjob;
}
if (dev.type != VIR_DOMAIN_DEVICE_NET) {
- VIR_WARN("NETDEV_STREAM_DISCONNECTED event received for non-network device %s in domain %s",
- devAlias, vm->def->name);
+ VIR_WARN("%s event received for non-network device %s in domain %s",
+ eventName, devAlias, vm->def->name);
goto endjob;
}
def = dev.data.net;
if (def->backend.type != VIR_DOMAIN_NET_BACKEND_PASST) {
- VIR_DEBUG("ignore NETDEV_STREAM_DISCONNECTED event for non-passt network device %s in domain %s",
- def->info.alias, vm->def->name);
+ VIR_DEBUG("ignore %s event for non-passt network device %s in domain %s",
+ eventName, def->info.alias, vm->def->name);
goto endjob;
}
/* handle the event - restart the passt process with its original
* parameters
*/
- VIR_DEBUG("process NETDEV_STREAM_DISCONNECTED event for network device %s in domain %s",
- def->info.alias, vm->def->name);
+ VIR_DEBUG("process %s event for network device %s in domain %s",
+ eventName, def->info.alias, vm->def->name);
if (qemuPasstStart(vm, def) < 0)
goto endjob;
@@ -3682,6 +3683,14 @@ processNetdevStreamDisconnectedEvent(virDomainObj *vm,
}
+static void
+processNetdevStreamDisconnectedEvent(virDomainObj *vm,
+ const char *netdevId)
+{
+ processNetdevDisconnectedEvent(vm, netdevId, "NETDEV_STREAM_DISCONNECTED");
+}
+
+
static void
processNicRxFilterChangedEvent(virDomainObj *vm,
const char *devAlias)
--
2.49.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

View File

@ -1,139 +0,0 @@
From 64a914839cf44c7ed309fb827ab40c94dcb7c0d0 Mon Sep 17 00:00:00 2001
Message-ID: <64a914839cf44c7ed309fb827ab40c94dcb7c0d0.1739824249.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 10 Feb 2025 19:49:10 +0100
Subject: [PATCH] qemu: migration: Reactivate block nodes after migration if VM
is left paused
On incoming migration qemu doesn't activate the block graph nodes right
away. This is to properly facilitate locking of the images.
The block nodes are normally re-activated when starting the CPUs after
migration, but in cases (e.g. when a paused VM was migrated) when the VM
is left paused the block nodes are not re-activated by qemu.
This means that blockjobs which would want to write to an existing
backing chain member would fail. Generally read-only jobs would succeed
with older qemu's but this was not intended.
Instead with new qemu you'll always get an error if attempting to access
a inactive node:
error: internal error: unable to execute QEMU command 'blockdev-mirror': Inactive 'libvirt-1-storage' can't be a backing child of active '#block052'
This is the case for explicit blockjobs (virsh blockcopy) but also for
non shared-storage migration (virsh migrate --copy-storage-all).
Since qemu now provides 'blockdev-set-active' QMP command which can
on-demand re-activate the nodes we can re-activate them in similar cases
as when we'd be starting vCPUs if the VM weren't left paused.
The only exception is on the source in case of a failed post-copy
migration as the VM already ran on destination so it won't ever run on
the source even when recovered.
Resolves: https://issues.redhat.com/browse/RHEL-78398
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 2626fa0569781c0f42db247f4b7116c33cd88b43)
https://issues.redhat.com/browse/RHEL-79095
---
src/qemu/qemu_migration.c | 55 ++++++++++++++++++++++++++++++++++++---
1 file changed, 52 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 4112e95a1e..62da892254 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -220,6 +220,43 @@ qemuMigrationSrcStoreDomainState(virDomainObj *vm)
}
+/**
+ * qemuMigrationBlockNodesReactivate:
+ *
+ * In case when we're keeping the VM paused qemu will not re-activate the block
+ * device backend tree so blockjobs would fail. In case when qemu supports the
+ * 'blockdev-set-active' command this function will re-activate the block nodes.
+ */
+static void
+qemuMigrationBlockNodesReactivate(virDomainObj *vm,
+ virDomainAsyncJob asyncJob)
+{
+ virErrorPtr orig_err;
+ qemuDomainObjPrivate *priv = vm->privateData;
+ int rc;
+
+ if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV_SET_ACTIVE))
+ return;
+
+ VIR_DEBUG("re-activating block nodes");
+
+ virErrorPreserveLast(&orig_err);
+
+ if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0)
+ goto cleanup;
+
+ rc = qemuMonitorBlockdevSetActive(priv->mon, NULL, true);
+
+ qemuDomainObjExitMonitor(vm);
+
+ if (rc < 0)
+ VIR_WARN("failed to re-activate block nodes after migration of VM '%s'", vm->def->name);
+
+ cleanup:
+ virErrorRestore(&orig_err);
+}
+
+
static void
qemuMigrationSrcRestoreDomainState(virQEMUDriver *driver, virDomainObj *vm)
{
@@ -236,14 +273,17 @@ qemuMigrationSrcRestoreDomainState(virQEMUDriver *driver, virDomainObj *vm)
virDomainStateTypeToString(state),
virDomainStateReasonToString(state, reason));
- if (preMigrationState != VIR_DOMAIN_RUNNING ||
- state != VIR_DOMAIN_PAUSED ||
+ if (state == VIR_DOMAIN_PAUSED &&
reason == VIR_DOMAIN_PAUSED_POSTCOPY_FAILED)
return;
+ if (preMigrationState != VIR_DOMAIN_RUNNING ||
+ state != VIR_DOMAIN_PAUSED)
+ goto reactivate;
+
if (reason == VIR_DOMAIN_PAUSED_IOERROR) {
VIR_DEBUG("Domain is paused due to I/O error, skipping resume");
- return;
+ goto reactivate;
}
VIR_DEBUG("Restoring pre-migration state due to migration error");
@@ -266,7 +306,14 @@ qemuMigrationSrcRestoreDomainState(virQEMUDriver *driver, virDomainObj *vm)
VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR);
virObjectEventStateQueue(driver->domainEventState, event);
}
+
+ goto reactivate;
}
+
+ return;
+
+ reactivate:
+ qemuMigrationBlockNodesReactivate(vm, VIR_ASYNC_JOB_MIGRATION_OUT);
}
@@ -6781,6 +6828,8 @@ qemuMigrationDstFinishFresh(virQEMUDriver *driver,
if (*inPostCopy)
*doKill = false;
+ } else {
+ qemuMigrationBlockNodesReactivate(vm, VIR_ASYNC_JOB_MIGRATION_IN);
}
if (mig->jobData) {
--
2.48.1

View File

@ -1,160 +0,0 @@
From 662a2be65c232cf811e3b7618bb51a32c3c74ad6 Mon Sep 17 00:00:00 2001
Message-ID: <662a2be65c232cf811e3b7618bb51a32c3c74ad6.1739824249.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 10 Feb 2025 17:51:31 +0100
Subject: [PATCH] qemu: monitor: Add monitor backend for 'blockdev-set-active'
The command will be used to re-activate block nodes after migration when
we're leaving the VM paused so that blockjobs can be used.
As the 'node-name' field is optional the 'qemumonitorjsontest' case
tests both variants.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit d8f9cfb5e45111da0bd39f334f0643c0ab22ef49)
https://issues.redhat.com/browse/RHEL-79095
---
src/qemu/qemu_monitor.c | 21 +++++++++++++++++++++
src/qemu/qemu_monitor.h | 5 +++++
src/qemu/qemu_monitor_json.c | 21 +++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 5 +++++
tests/qemumonitorjsontest.c | 31 +++++++++++++++++++++++++++++++
5 files changed, 83 insertions(+)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 79ff4e2e87..82aa1cbc5f 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -4555,3 +4555,24 @@ qemuMonitorDisplayReload(qemuMonitor *mon,
return qemuMonitorJSONDisplayReload(mon, type, tlsCerts);
}
+
+
+/**
+ * qemuMonitorBlockdevSetActive:
+ * @mon: monitor object
+ * @nodename: optional nodename to (de)activate
+ * @active: requested state
+ *
+ * Activate or deactivate @nodename based on @active. If @nodename is NULL,
+ * qemu will act on all block nodes.
+ */
+int
+qemuMonitorBlockdevSetActive(qemuMonitor *mon,
+ const char *nodename,
+ bool active)
+{
+ QEMU_CHECK_MONITOR(mon);
+ VIR_DEBUG("nodename='%s', active='%d'", NULLSTR(nodename), active);
+
+ return qemuMonitorJSONBlockdevSetActive(mon, nodename, active);
+}
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index a4818a6aa1..672cd6487e 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1650,3 +1650,8 @@ qemuMonitorSnapshotDelete(qemuMonitor *mon,
const char *jobname,
const char *snapshotname,
const char **disks);
+
+int
+qemuMonitorBlockdevSetActive(qemuMonitor *mon,
+ const char *nodename,
+ bool active);
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 53648dea8b..6f9f495888 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -8831,3 +8831,24 @@ qemuMonitorJSONSnapshotDelete(qemuMonitor *mon,
return qemuMonitorJSONCheckError(cmd, reply);
}
+
+
+int
+qemuMonitorJSONBlockdevSetActive(qemuMonitor *mon,
+ const char *nodename,
+ bool active)
+{
+ g_autoptr(virJSONValue) cmd = NULL;
+ g_autoptr(virJSONValue) reply = NULL;
+
+ if (!(cmd = qemuMonitorJSONMakeCommand("blockdev-set-active",
+ "S:node-name", nodename,
+ "b:active", active,
+ NULL)))
+ return -1;
+
+ if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
+ return -1;
+
+ return qemuMonitorJSONCheckError(cmd, reply);
+}
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index 0214e9e9ff..68f60aec61 100644
--- a/src/qemu/qemu_monitor_json.h
+++ b/src/qemu/qemu_monitor_json.h
@@ -816,3 +816,8 @@ qemuMonitorJSONSnapshotDelete(qemuMonitor *mon,
const char *jobname,
const char *snapshotname,
const char **disks);
+
+int
+qemuMonitorJSONBlockdevSetActive(qemuMonitor *mon,
+ const char *nodename,
+ bool active);
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index f7fe0fb6f4..f0f6a329c8 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -1249,6 +1249,36 @@ testQemuMonitorJSONqemuMonitorJSONSnapshot(const void *opaque)
}
+static int
+testQemuMonitorJSONqemuMonitorJSONBlockdevSetActive(const void *opaque)
+{
+ const testGenericData *data = opaque;
+ virDomainXMLOption *xmlopt = data->xmlopt;
+ g_autoptr(qemuMonitorTest) test = NULL;
+
+ if (!(test = qemuMonitorTestNewSchema(xmlopt, data->schema)))
+ return -1;
+
+ if (qemuMonitorTestAddItem(test, "blockdev-set-active",
+ "{\"return\":{}}") < 0)
+ return -1;
+
+ if (qemuMonitorTestAddItem(test, "blockdev-set-active",
+ "{\"return\":{}}") < 0)
+ return -1;
+
+ if (qemuMonitorJSONBlockdevSetActive(qemuMonitorTestGetMonitor(test),
+ NULL, true) < 0)
+ return -1;
+
+ if (qemuMonitorJSONBlockdevSetActive(qemuMonitorTestGetMonitor(test),
+ "testnode", false) < 0)
+ return -1;
+
+ return 0;
+}
+
+
static bool
testQemuMonitorJSONqemuMonitorJSONQueryCPUsEqual(struct qemuMonitorQueryCpusEntry *a,
struct qemuMonitorQueryCpusEntry *b)
@@ -2989,6 +3019,7 @@ mymain(void)
DO_TEST(qemuMonitorJSONSendKeyHoldtime);
DO_TEST(qemuMonitorJSONNBDServerStart);
DO_TEST(qemuMonitorJSONSnapshot);
+ DO_TEST(qemuMonitorJSONBlockdevSetActive);
DO_TEST_CPU_DATA("host");
DO_TEST_CPU_DATA("full");
--
2.48.1

View File

@ -1,243 +0,0 @@
From db00ca8dbb2feacf9307ce6e07058ff39ca7e3d6 Mon Sep 17 00:00:00 2001
Message-ID: <db00ca8dbb2feacf9307ce6e07058ff39ca7e3d6.1749039441.git.jdenemar@redhat.com>
From: Collin Walling <walling@linux.ibm.com>
Date: Mon, 16 Dec 2024 18:03:53 -0500
Subject: [PATCH] qemu: parse deprecated-props from query-cpu-model-expansion
response
query-cpu-model-expansion may report an array of deprecated properties.
This array is optional, and may not be supported for a particular
architecture or reported for a particular CPU model. If the output is
present, then capture it and store in a qemuMonitorCPUModelInfo struct
for later use.
The deprecated features will be retained in qemuCaps->kvm->hostCPU.info
and will be stored in the capabilities cache file under the <hostCPU>
element using the following format:
<deprecatedFeatures>
<property name='bpb'/>
<property name='csske'/>
<property name='cte'/>
<property name='te'/>
</deprecatedFeatures>
At this time the data is only queried, parsed, and cached. The data
will be utilized in a subsequent patch.
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 45140d293007c1b29f7563bf6ee9640e27769b96)
JIRA: https://issues.redhat.com/browse/RHEL-89415
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/qemu/qemu_capabilities.c | 31 +++++++++++++++++++
src/qemu/qemu_monitor.c | 3 ++
src/qemu/qemu_monitor.h | 1 +
src/qemu/qemu_monitor_json.c | 18 +++++++++++
.../qemucapabilitiesdata/caps_9.1.0_s390x.xml | 6 ++++
.../qemucapabilitiesdata/caps_9.2.0_s390x.xml | 6 ++++
6 files changed, 65 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b507027667..b1faea3ac7 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -4029,6 +4029,7 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsAccel *caps,
const char *typeStr)
{
xmlNodePtr hostCPUNode;
+ xmlNodePtr deprecated_props;
g_autofree xmlNodePtr *nodes = NULL;
VIR_XPATH_NODE_AUTORESTORE(ctxt)
g_autoptr(qemuMonitorCPUModelInfo) hostCPU = NULL;
@@ -4121,6 +4122,24 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsAccel *caps,
}
}
+ ctxt->node = hostCPUNode;
+
+ if ((deprecated_props = virXPathNode("./deprecatedFeatures", ctxt))) {
+ g_autoptr(GPtrArray) props = virXMLNodeGetSubelementList(deprecated_props, NULL);
+
+ hostCPU->deprecated_props = g_new0(char *, props->len + 1);
+
+ for (i = 0; i < props->len; i++) {
+ xmlNodePtr prop = g_ptr_array_index(props, i);
+
+ if (!(hostCPU->deprecated_props[i] = virXMLPropString(prop, "name"))) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("missing 'name' attribute for a host CPU model deprecated property in QEMU capabilities cache"));
+ return -1;
+ }
+ }
+ }
+
caps->hostCPU.info = g_steal_pointer(&hostCPU);
return 0;
}
@@ -4853,6 +4872,18 @@ virQEMUCapsFormatHostCPUModelInfo(virQEMUCapsAccel *caps,
virBufferAddLit(buf, "/>\n");
}
+ if (model->deprecated_props) {
+ virBufferAddLit(buf, "<deprecatedFeatures>\n");
+ virBufferAdjustIndent(buf, 2);
+
+ for (i = 0; i < g_strv_length(model->deprecated_props); i++)
+ virBufferAsprintf(buf, "<property name='%s'/>\n",
+ model->deprecated_props[i]);
+
+ virBufferAdjustIndent(buf, -2);
+ virBufferAddLit(buf, "</deprecatedFeatures>\n");
+ }
+
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</hostCPU>\n");
}
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index ed63b7a29b..3945aa92e5 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3319,6 +3319,7 @@ qemuMonitorCPUModelInfoFree(qemuMonitorCPUModelInfo *model_info)
g_free(model_info->props[i].value.string);
}
+ g_strfreev(model_info->deprecated_props);
g_free(model_info->props);
g_free(model_info->name);
g_free(model_info);
@@ -3363,6 +3364,8 @@ qemuMonitorCPUModelInfoCopy(const qemuMonitorCPUModelInfo *orig)
}
}
+ copy->deprecated_props = g_strdupv(orig->deprecated_props);
+
return copy;
}
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index bcb39409ac..acb3279e45 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1160,6 +1160,7 @@ struct _qemuMonitorCPUModelInfo {
char *name;
size_t nprops;
qemuMonitorCPUProperty *props;
+ GStrv deprecated_props;
bool migratability;
};
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 5df32922fb..edf6fac76e 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -5130,6 +5130,7 @@ qemuMonitorJSONParseCPUModelExpansionData(virJSONValue *data,
bool fail_no_props,
virJSONValue **cpu_model,
virJSONValue **cpu_props,
+ virJSONValue **cpu_deprecated_props,
const char **cpu_name)
{
if (qemuMonitorJSONParseCPUModelData(data, "query-cpu-model-expansion",
@@ -5137,6 +5138,12 @@ qemuMonitorJSONParseCPUModelExpansionData(virJSONValue *data,
cpu_name) < 0)
return -1;
+ /*
+ * Unconditionally check for the deprecated-props array, as
+ * it is not a guarantee response even if QEMU supports it.
+ */
+ *cpu_deprecated_props = virJSONValueObjectGetArray(data, "deprecated-props");
+
return 0;
}
@@ -5144,6 +5151,7 @@ qemuMonitorJSONParseCPUModelExpansionData(virJSONValue *data,
static int
qemuMonitorJSONParseCPUModelExpansion(const char *cpu_name,
virJSONValue *cpu_props,
+ virJSONValue *cpu_deprecated_props,
qemuMonitorCPUModelInfo **model_info)
{
g_autoptr(qemuMonitorCPUModelInfo) expanded_model = NULL;
@@ -5151,6 +5159,12 @@ qemuMonitorJSONParseCPUModelExpansion(const char *cpu_name,
if (qemuMonitorJSONParseCPUModel(cpu_name, cpu_props, &expanded_model) < 0)
return -1;
+ if (cpu_deprecated_props &&
+ virJSONValueArraySize(cpu_deprecated_props) &&
+ (!(expanded_model->deprecated_props = virJSONValueArrayToStringList(cpu_deprecated_props)))) {
+ return -1;
+ }
+
*model_info = g_steal_pointer(&expanded_model);
return 0;
}
@@ -5215,6 +5229,7 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitor *mon,
g_autoptr(virJSONValue) fullData = NULL;
virJSONValue *cpu_model;
virJSONValue *cpu_props = NULL;
+ virJSONValue *cpu_deprecated_props = NULL;
const char *cpu_name = "";
int rc;
@@ -5228,6 +5243,7 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitor *mon,
if (qemuMonitorJSONParseCPUModelExpansionData(data, fail_no_props,
&cpu_model, &cpu_props,
+ &cpu_deprecated_props,
&cpu_name) < 0)
return -1;
@@ -5246,11 +5262,13 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitor *mon,
if (qemuMonitorJSONParseCPUModelExpansionData(fullData, fail_no_props,
&cpu_model, &cpu_props,
+ &cpu_deprecated_props,
&cpu_name) < 0)
return -1;
}
return qemuMonitorJSONParseCPUModelExpansion(cpu_name, cpu_props,
+ cpu_deprecated_props,
model_info);
}
diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml b/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml
index 50e9a60a1f..5e8db88e52 100644
--- a/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml
@@ -193,6 +193,12 @@
<property name='te' type='boolean' value='true'/>
<property name='cmm' type='boolean' value='true'/>
<property name='vxpdeh2' type='boolean' value='true'/>
+ <deprecatedFeatures>
+ <property name='bpb'/>
+ <property name='te'/>
+ <property name='cte'/>
+ <property name='csske'/>
+ </deprecatedFeatures>
</hostCPU>
<cpu type='kvm' name='z13' typename='z13-s390x-cpu' usable='yes'/>
<cpu type='kvm' name='z990.3' typename='z990.3-s390x-cpu' usable='yes'/>
diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml b/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml
index 6d4f6726fb..79a149d187 100644
--- a/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml
@@ -196,6 +196,12 @@
<property name='te' type='boolean' value='true'/>
<property name='cmm' type='boolean' value='true'/>
<property name='vxpdeh2' type='boolean' value='true'/>
+ <deprecatedFeatures>
+ <property name='bpb'/>
+ <property name='te'/>
+ <property name='cte'/>
+ <property name='csske'/>
+ </deprecatedFeatures>
</hostCPU>
<cpu type='kvm' name='z13' typename='z13-s390x-cpu' usable='yes'/>
<cpu type='kvm' name='z990.3' typename='z990.3-s390x-cpu' usable='yes'/>
--
2.49.0

View File

@ -1,109 +0,0 @@
From 556d3cac6b834a7f5630e31bac2f4f594392bde6 Mon Sep 17 00:00:00 2001
Message-ID: <556d3cac6b834a7f5630e31bac2f4f594392bde6.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 3 Feb 2025 17:48:05 +0100
Subject: [PATCH] qemu: process: Export qemuPrepareNVRAM for use in snapshot
code
Export qemuPrepareNVRAM so that it doesn't require the VM object. The
snapshot code needs in the corner case of creating a snapshot of a
freshly defined VM ensure that the nvram image exists in order to
snapshot it.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit a377404ed912e8d17e88ef3eb8e71143eff88f7d)
https://issues.redhat.com/browse/RHEL-73315
---
src/qemu/qemu_process.c | 26 ++++++++++++++------------
src/qemu/qemu_process.h | 4 ++++
2 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index b9d69649ca..1866c8f4e1 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4627,10 +4627,9 @@ qemuPrepareNVRAMHelper(int dstFD,
static int
-qemuPrepareNVRAMBlock(virDomainObj *vm,
+qemuPrepareNVRAMBlock(virDomainLoaderDef *loader,
bool reset_nvram)
{
- virDomainLoaderDef *loader = vm->def->os.loader;
g_autoptr(virCommand) qemuimg = NULL;
const char *templateFormatStr = "raw";
@@ -4691,13 +4690,12 @@ qemuPrepareNVRAMBlock(virDomainObj *vm,
static int
-qemuPrepareNVRAMFile(virDomainObj *vm,
+qemuPrepareNVRAMFile(virQEMUDriver *driver,
+ virDomainLoaderDef *loader,
bool reset_nvram)
{
- qemuDomainObjPrivate *priv = vm->privateData;
- g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(priv->driver);
+ g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
VIR_AUTOCLOSE srcFD = -1;
- virDomainLoaderDef *loader = vm->def->os.loader;
struct qemuPrepareNVRAMHelperData data;
if (virFileExists(loader->nvram->path) && !reset_nvram)
@@ -4739,21 +4737,24 @@ qemuPrepareNVRAMFile(virDomainObj *vm,
}
-static int
-qemuPrepareNVRAM(virDomainObj *vm,
+int
+qemuPrepareNVRAM(virQEMUDriver *driver,
+ virDomainDef *def,
bool reset_nvram)
{
- virDomainLoaderDef *loader = vm->def->os.loader;
+ virDomainLoaderDef *loader = def->os.loader;
if (!loader || !loader->nvram)
return 0;
+ VIR_DEBUG("nvram='%s'", NULLSTR(loader->nvram->path));
+
switch (virStorageSourceGetActualType(loader->nvram)) {
case VIR_STORAGE_TYPE_FILE:
- return qemuPrepareNVRAMFile(vm, reset_nvram);
+ return qemuPrepareNVRAMFile(driver, loader, reset_nvram);
case VIR_STORAGE_TYPE_BLOCK:
- return qemuPrepareNVRAMBlock(vm, reset_nvram);
+ return qemuPrepareNVRAMBlock(loader, reset_nvram);
case VIR_STORAGE_TYPE_DIR:
case VIR_STORAGE_TYPE_NETWORK:
@@ -7408,7 +7409,8 @@ qemuProcessPrepareHost(virQEMUDriver *driver,
qemuProcessMakeDir(driver, vm, priv->channelTargetDir) < 0)
return -1;
- if (qemuPrepareNVRAM(vm, !!(flags & VIR_QEMU_PROCESS_START_RESET_NVRAM)) < 0)
+ if (qemuPrepareNVRAM(driver, vm->def,
+ !!(flags & VIR_QEMU_PROCESS_START_RESET_NVRAM)) < 0)
return -1;
if (vm->def->vsock) {
diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h
index 12781673c5..fee00ce53b 100644
--- a/src/qemu/qemu_process.h
+++ b/src/qemu/qemu_process.h
@@ -258,3 +258,7 @@ int qemuProcessSetupEmulator(virDomainObj *vm);
void qemuProcessHandleNbdkitExit(qemuNbdkitProcess *nbdkit,
virDomainObj *vm);
+
+int qemuPrepareNVRAM(virQEMUDriver *driver,
+ virDomainDef *def,
+ bool reset_nvram);
--
2.48.1

View File

@ -1,94 +0,0 @@
From f61b747b0420d71efe33f836a1117d4741ecd716 Mon Sep 17 00:00:00 2001
Message-ID: <f61b747b0420d71efe33f836a1117d4741ecd716.1742990721.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Tue, 11 Mar 2025 09:04:18 +0100
Subject: [PATCH] qemu: process: Remove un-updated 'qemuProcessStartWarnShmem'
The checks in qemuProcessStartWarnShmem are no longer current. Since
previous patch made it fatal for vhost-user interfaces to be configured
without shared memory this warning code can be deleted.
Resolves: https://issues.redhat.com/browse/RHEL-80533
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 080c7fd341619a3d1986a00265addaf45b63aacf)
https://issues.redhat.com/browse/RHEL-84133
---
src/qemu/qemu_process.c | 54 -----------------------------------------
1 file changed, 54 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 722e982b9e..fac5678439 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5406,56 +5406,6 @@ qemuProcessMakeDir(virQEMUDriver *driver,
}
-static void
-qemuProcessStartWarnShmem(virDomainObj *vm)
-{
- size_t i;
- bool check_shmem = false;
- bool shmem = vm->def->nshmems;
-
- /*
- * For vhost-user to work, the domain has to have some type of
- * shared memory configured. We're not the proper ones to judge
- * whether shared hugepages or shm are enough and will be in the
- * future, so we'll just warn in case neither is configured.
- * Moreover failing would give the false illusion that libvirt is
- * really checking that everything works before running the domain
- * and not only we are unable to do that, but it's also not our
- * aim to do so.
- */
- for (i = 0; i < vm->def->nnets; i++) {
- if (virDomainNetGetActualType(vm->def->nets[i]) ==
- VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
- check_shmem = true;
- break;
- }
- }
-
- if (!check_shmem)
- return;
-
- /*
- * This check is by no means complete. We merely check
- * whether there are *some* hugepages enabled and *some* NUMA
- * nodes with shared memory access.
- */
- if (!shmem && vm->def->mem.nhugepages) {
- for (i = 0; i < virDomainNumaGetNodeCount(vm->def->numa); i++) {
- if (virDomainNumaGetNodeMemoryAccessMode(vm->def->numa, i) ==
- VIR_DOMAIN_MEMORY_ACCESS_SHARED) {
- shmem = true;
- break;
- }
- }
- }
-
- if (!shmem) {
- VIR_WARN("Detected vhost-user interface without any shared memory, "
- "the interface might not be operational");
- }
-}
-
-
static int
qemuProcessStartValidateGraphics(virDomainObj *vm)
{
@@ -5690,10 +5640,6 @@ qemuProcessStartValidate(virQEMUDriver *driver,
if (qemuProcessStartValidateTSC(driver, vm) < 0)
return -1;
- VIR_DEBUG("Checking for any possible (non-fatal) issues");
-
- qemuProcessStartWarnShmem(vm);
-
return 0;
}
--
2.49.0

View File

@ -1,110 +0,0 @@
From 0cc716142961427bd257a528ef54b87b3a053ade Mon Sep 17 00:00:00 2001
Message-ID: <0cc716142961427bd257a528ef54b87b3a053ade.1747908718.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 4 Apr 2025 19:38:28 -0400
Subject: [PATCH] qemu: put vhost-user code that's special for passt in a
helper function
Rather than duplicating these two lines of chr device object setup for
hotplug and domain start, put them in a helper function that's called
from both places. That way when we need to setup *more* stuff specific
to passt+vhostuser, we can just add it in that one place.
Signed-off-by: Laine Stump <laine@redhat.com>
Tested-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 95ff77f2896478e039673bb552affec2c5a5e822)
https://issues.redhat.com/browse/RHEL-80169
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_hotplug.c | 7 +------
src/qemu/qemu_passt.c | 19 +++++++++++++++++++
src/qemu/qemu_passt.h | 3 +++
src/qemu/qemu_process.c | 9 ++-------
4 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index c8746f5e22..ff09b58bfe 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1264,12 +1264,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
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);
+ qemuPasstPrepareVhostUser(vm, net);
if (qemuPasstStart(vm, net) < 0)
goto cleanup;
diff --git a/src/qemu/qemu_passt.c b/src/qemu/qemu_passt.c
index b9616d1c63..bc495eca1e 100644
--- a/src/qemu/qemu_passt.c
+++ b/src/qemu/qemu_passt.c
@@ -165,6 +165,25 @@ qemuPasstSetupCgroup(virDomainObj *vm,
}
+void
+qemuPasstPrepareVhostUser(virDomainObj *vm,
+ virDomainNetDef *net)
+{
+ /* There are some options on the QEMU commandline for a vhost-user
+ * chr device that are normally configurable, but when it is passt
+ * speaking to the vhost-user device those things are
+ * derived/fixed. This function, which is called prior to
+ * generating the QEMU commandline, sets thos derived/fixed things
+ * in the chr device object.
+ */
+
+ /* The socket path is not user-configurable for passt - it is
+ * derived from other info
+ */
+ g_free(net->data.vhostuser->data.nix.path);
+ net->data.vhostuser->data.nix.path = qemuPasstCreateSocketPath(vm, net);
+}
+
int
qemuPasstStart(virDomainObj *vm,
virDomainNetDef *net)
diff --git a/src/qemu/qemu_passt.h b/src/qemu/qemu_passt.h
index e0b9aaac8d..ea545ccf38 100644
--- a/src/qemu/qemu_passt.h
+++ b/src/qemu/qemu_passt.h
@@ -37,5 +37,8 @@ int qemuPasstSetupCgroup(virDomainObj *vm,
virDomainNetDef *net,
virCgroup *cgroup);
+void qemuPasstPrepareVhostUser(virDomainObj *vm,
+ virDomainNetDef *net);
+
char *qemuPasstCreateSocketPath(virDomainObj *vm,
virDomainNetDef *net);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 2076ad8208..c1ae324ad4 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5898,13 +5898,8 @@ qemuProcessPrepareDomainNetwork(virDomainObj *vm)
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);
+ /* some extra setup of internal data for passt vhostuser mode */
+ qemuPasstPrepareVhostUser(vm, net);
}
break;
--
2.49.0

View File

@ -1,106 +0,0 @@
From ace165fe4fa45ceb7e26cfd7f2fafead7cfeb503 Mon Sep 17 00:00:00 2001
Message-ID: <ace165fe4fa45ceb7e26cfd7f2fafead7cfeb503.1737731143.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Mon, 25 Nov 2024 22:51:04 -0500
Subject: [PATCH] qemu: re-use existing ActualNetDef for more interface types
during update-device
For the full history behind this patch, look at the following:
https://issues.redhat.com/browse/RHEL-7036
commit v10.7.0-101-ga37bd2a15b
commit v10.8.0-rc2-8-gbcd5ae4e73
Summary: original problem was unexpected failure of update-device when
the user hadn't changed anything other than online status of the guest
NIC (which should always be allowed).
The first commit "fixed" this by avoiding the allocation of a new
ActualNetDef (i.e. creating a new networkport) for *all* network
device updates (because that was inappropriately changing which
ethernet physdev should be used for a macvtap connection, which by
design can't be handled in an update-device).
But this commit caused a regression for update-device of bridge-based
network devices (because some the updates of certain attributes *do*
require the ActualNetDef be re-allocated), so...
The 2nd commit narrowed the list of network types that get the "don't
allocate new ActualNetDef" treatment (so that only interfaces
connected to a network that uses a pool of ethernet VFs *being used in
passthrough mode* qualify).
But then it was pointed out that this re-broke simple updates of
devices that used a direct/macvtap network in "bridge" mode (because
it's possible to list multiple physdevs to use for bridge mode, in
which case the network driver attempts to "load balance" (and so a new
allocation might have a different ethernet physdev which, again, can't
be supported in a device-update).
So this (single line of code) patch *widens* the list of network types
that don't allocate a new ActualNetDef to also include the other
direct (macvtap) modes, e.g. bridge, private, etc.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 4e987a86b5e4c9faf36aa5abad47fe6db6314950)
https://issues.redhat.com/browse/RHEL-7036
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_hotplug.c | 36 ++++++++++++++++++++----------------
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 3c18af6b0c..de0777d330 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -3935,25 +3935,29 @@ qemuDomainChangeNet(virQEMUDriver *driver,
if (newdev->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
if (olddev->type == VIR_DOMAIN_NET_TYPE_NETWORK &&
oldType == VIR_DOMAIN_NET_TYPE_DIRECT &&
- virDomainNetGetActualDirectMode(olddev) == VIR_NETDEV_MACVLAN_MODE_PASSTHRU &&
STREQ(olddev->data.network.name, newdev->data.network.name)) {
/* old and new are type='network', and the network name
- * hasn't changed *and* this is a network where each
- * connection is allocated exclusive use of a VF
- * device. In this case we *don't* want to get a new port
- * ("actual device") from the network because attempting
- * to allocate a new device would also allocate a
- * new/different VF, causing the update to fail. And
- * anyway we can use olddev's actualNetDef (since it
- * hasn't changed).
+ * hasn't changed *and* this is a "direct" network (a pool
+ * of 1 or more host ethernet devices where each guest
+ * interface is allocated one of those physical devices
+ * that it then connects to via macvtap). In this case we
+ * *don't* want to get a new port ("actual device") from
+ * the network because attempting to allocate a new port
+ * would also allocate a new/different ethernet (physical
+ * device), causing the update to fail (because the
+ * physical device of a macvtap-based interface can't be
+ * changed without completely unplugging and re-plugging
+ * the guest NIC).
*
- * So instead we just duplicate *the pointer to* the
- * actualNetDef from olddev to newdev so that comparisons
- * of actualNetDef will show no change. If the update is
- * successful, we will clear the actualNetDef pointer from
- * olddev before destroying it (or if the update fails,
- * then we need to clear the pointer from newdev before
- * destroying it)
+ * We can work around this issue by just re-using olddev's
+ * actualNetDef (since it hasn't changed) rather than
+ * allocating a new one. We just duplicate *the pointer
+ * to* the actualNetDef from olddev to newdev so that
+ * comparisons of actualNetDef will show no change. If the
+ * update is successful, we will clear the actualNetDef
+ * pointer from olddev before destroying it (or if the
+ * update fails, then we need to clear the pointer from
+ * newdev before destroying it)
*/
newdev->data.network.actual = olddev->data.network.actual;
memcpy(newdev->data.network.portid, olddev->data.network.portid,
--
2.48.1

View File

@ -1,56 +0,0 @@
From 13ff514007822c650ad0f3006882e2f85aab9b48 Mon Sep 17 00:00:00 2001
Message-ID: <13ff514007822c650ad0f3006882e2f85aab9b48.1747908718.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 4 Apr 2025 16:48:23 -0400
Subject: [PATCH] qemu: remove nonsensical sanity check in
processNetdevStreamDisconnectedEvent()
By definition QEMU will never send a NETDEV_STREAM_DISCONNECTED event
if it doesn't support the reconnect option for a stream netdev. And
even if, by some comedy of errors, it did send
NETDEV_STREAM_DISCONNECTED in that case, our response to the event
doesn't request anything at all of QEMU (much less something that
would fail if QEMU didn't understand NETDEV_STREAM_DISCONNECTED) - it
just starts a new passt process to replace the one that has been
terminated, so we don't need to check the QEMU capabilities for
QEMU_CAPS_NETDEV_STREAM_RECONNECT.
Signed-off-by: Laine Stump <laine@redhat.com>
Tested-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 51a54dc1c4ecf37d60acee1cb94252e51c5ef627)
https://issues.redhat.com/browse/RHEL-80169
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_driver.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 11dbbc1aab..89bb10756e 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3623,7 +3623,6 @@ processNetdevStreamDisconnectedEvent(virDomainObj *vm,
{
virDomainDeviceDef dev;
virDomainNetDef *def;
- virQEMUCaps *qemuCaps = QEMU_DOMAIN_PRIVATE(vm)->qemuCaps;
const char *devAlias = STRSKIP(netdevId, "host");
/* The event sends us the "netdev-id", but we don't store the
@@ -3669,12 +3668,6 @@ processNetdevStreamDisconnectedEvent(virDomainObj *vm,
goto endjob;
}
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_STREAM_RECONNECT)) {
- VIR_WARN("ignore NETDEV_STREAM_DISCONNECTED event for passt network device %s in domain %s - QEMU binary does not support reconnect",
- def->info.alias, vm->def->name);
- goto endjob;
- }
-
/* handle the event - restart the passt process with its original
* parameters
*/
--
2.49.0

View File

@ -1,224 +0,0 @@
From 1be043d47792afe408bef01a5c169dcd4e98e782 Mon Sep 17 00:00:00 2001
Message-ID: <1be043d47792afe408bef01a5c169dcd4e98e782.1747908718.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Fri, 4 Apr 2025 17:16:43 -0400
Subject: [PATCH] qemu: respond to NETDEV_VHOST_USER_DISCONNECTED event
This response to this event is identical to NETDEV_STREAM_DISCONNECTED
(start a new passt process to replace the one that just disappeared -
see commitf62ce81b8a5), except that the new passt process will have
"--vhost-user" appended to the commandline. Fortunately that
difference is already handled based on the virDomainNetDef contents,
so we can, in fact, respond to the new event in exactly the same
manner.
Signed-off-by: Laine Stump <laine@redhat.com>
Tested-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit dedf1ada95f046310827194eb8794fa18975b9e7)
Conflicts:
src/qemu/qemu_driver.c:
In context surrounding a chunk, the arguments to
processNicRxFilterChangedEvent() changed upstream (due to upstream
commit 50981052a5f)
https://issues.redhat.com/browse/RHEL-80169
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_driver.c | 11 +++++++++++
src/qemu/qemu_monitor.c | 11 +++++++++++
src/qemu/qemu_monitor.h | 6 ++++++
src/qemu/qemu_monitor_json.c | 16 ++++++++++++++++
src/qemu/qemu_process.c | 18 ++++++++++++++++++
7 files changed, 64 insertions(+)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 4234e4605b..cc47adb724 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -10038,6 +10038,7 @@ qemuProcessEventFree(struct qemuProcessEvent *event)
case QEMU_PROCESS_EVENT_WATCHDOG:
case QEMU_PROCESS_EVENT_DEVICE_DELETED:
case QEMU_PROCESS_EVENT_NETDEV_STREAM_DISCONNECTED:
+ case QEMU_PROCESS_EVENT_NETDEV_VHOST_USER_DISCONNECTED:
case QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED:
case QEMU_PROCESS_EVENT_SERIAL_CHANGED:
case QEMU_PROCESS_EVENT_GUEST_CRASHLOADED:
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 6246988491..63f422bbcb 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -465,6 +465,7 @@ typedef enum {
QEMU_PROCESS_EVENT_GUESTPANIC,
QEMU_PROCESS_EVENT_DEVICE_DELETED,
QEMU_PROCESS_EVENT_NETDEV_STREAM_DISCONNECTED,
+ QEMU_PROCESS_EVENT_NETDEV_VHOST_USER_DISCONNECTED,
QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED,
QEMU_PROCESS_EVENT_SERIAL_CHANGED,
QEMU_PROCESS_EVENT_JOB_STATUS_CHANGE,
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 3373dfb845..b374b1978c 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3691,6 +3691,14 @@ processNetdevStreamDisconnectedEvent(virDomainObj *vm,
}
+static void
+processNetdevVhostUserDisconnectedEvent(virDomainObj *vm,
+ const char *netdevId)
+{
+ processNetdevDisconnectedEvent(vm, netdevId, "NETDEV_VHOST_USER_DISCONNECTED");
+}
+
+
static void
processNicRxFilterChangedEvent(virDomainObj *vm,
const char *devAlias)
@@ -4089,6 +4097,9 @@ static void qemuProcessEventHandler(void *data, void *opaque)
case QEMU_PROCESS_EVENT_NETDEV_STREAM_DISCONNECTED:
processNetdevStreamDisconnectedEvent(vm, processEvent->data);
break;
+ case QEMU_PROCESS_EVENT_NETDEV_VHOST_USER_DISCONNECTED:
+ processNetdevVhostUserDisconnectedEvent(vm, processEvent->data);
+ break;
case QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED:
processNicRxFilterChangedEvent(vm, processEvent->data);
break;
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 82aa1cbc5f..ed63b7a29b 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -1267,6 +1267,17 @@ qemuMonitorEmitNetdevStreamDisconnected(qemuMonitor *mon,
}
+void
+qemuMonitorEmitNetdevVhostUserDisconnected(qemuMonitor *mon,
+ const char *devAlias)
+{
+ VIR_DEBUG("mon=%p", mon);
+
+ QEMU_MONITOR_CALLBACK(mon, domainNetdevVhostUserDisconnected,
+ mon->vm, devAlias);
+}
+
+
void
qemuMonitorEmitSerialChange(qemuMonitor *mon,
const char *devAlias,
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 672cd6487e..bcb39409ac 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -255,6 +255,9 @@ typedef void (*qemuMonitorDomainDeviceUnplugErrCallback)(qemuMonitor *mon,
typedef void (*qemuMonitorDomainNetdevStreamDisconnectedCallback)(qemuMonitor *mon,
virDomainObj *vm,
const char *devAlias);
+typedef void (*qemuMonitorDomainNetdevVhostUserDisconnectedCallback)(qemuMonitor *mon,
+ virDomainObj *vm,
+ const char *devAlias);
typedef void (*qemuMonitorDomainNicRxFilterChangedCallback)(qemuMonitor *mon,
virDomainObj *vm,
const char *devAlias);
@@ -403,6 +406,7 @@ struct _qemuMonitorCallbacks {
qemuMonitorDomainMemoryDeviceSizeChange domainMemoryDeviceSizeChange;
qemuMonitorDomainDeviceUnplugErrCallback domainDeviceUnplugError;
qemuMonitorDomainNetdevStreamDisconnectedCallback domainNetdevStreamDisconnected;
+ qemuMonitorDomainNetdevVhostUserDisconnectedCallback domainNetdevVhostUserDisconnected;
};
qemuMonitor *qemuMonitorOpen(virDomainObj *vm,
@@ -490,6 +494,8 @@ void qemuMonitorEmitDeviceUnplugErr(qemuMonitor *mon,
const char *devAlias);
void qemuMonitorEmitNetdevStreamDisconnected(qemuMonitor *mon,
const char *devAlias);
+void qemuMonitorEmitNetdevVhostUserDisconnected(qemuMonitor *mon,
+ const char *devAlias);
void qemuMonitorEmitNicRxFilterChanged(qemuMonitor *mon,
const char *devAlias);
void qemuMonitorEmitSerialChange(qemuMonitor *mon,
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 6f9f495888..be5d3be7e6 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -85,6 +85,7 @@ static void qemuMonitorJSONHandleMemoryFailure(qemuMonitor *mon, virJSONValue *d
static void qemuMonitorJSONHandleMemoryDeviceSizeChange(qemuMonitor *mon, virJSONValue *data);
static void qemuMonitorJSONHandleDeviceUnplugErr(qemuMonitor *mon, virJSONValue *data);
static void qemuMonitorJSONHandleNetdevStreamDisconnected(qemuMonitor *mon, virJSONValue *data);
+static void qemuMonitorJSONHandleNetdevVhostUserDisconnected(qemuMonitor *mon, virJSONValue *data);
typedef struct {
const char *type;
@@ -108,6 +109,7 @@ static qemuEventHandler eventHandlers[] = {
{ "MIGRATION", qemuMonitorJSONHandleMigrationStatus, },
{ "MIGRATION_PASS", qemuMonitorJSONHandleMigrationPass, },
{ "NETDEV_STREAM_DISCONNECTED", qemuMonitorJSONHandleNetdevStreamDisconnected, },
+ { "NETDEV_VHOST_USER_DISCONNECTED", qemuMonitorJSONHandleNetdevVhostUserDisconnected, },
{ "NIC_RX_FILTER_CHANGED", qemuMonitorJSONHandleNicRxFilterChanged, },
{ "PR_MANAGER_STATUS_CHANGED", qemuMonitorJSONHandlePRManagerStatusChanged, },
{ "RDMA_GID_STATUS_CHANGED", qemuMonitorJSONHandleRdmaGidStatusChanged, },
@@ -1044,6 +1046,20 @@ qemuMonitorJSONHandleNetdevStreamDisconnected(qemuMonitor *mon, virJSONValue *da
}
+static void
+qemuMonitorJSONHandleNetdevVhostUserDisconnected(qemuMonitor *mon, virJSONValue *data)
+{
+ const char *name;
+
+ if (!(name = virJSONValueObjectGetString(data, "netdev-id"))) {
+ VIR_WARN("missing device in NETDEV_VHOST_USER_DISCONNECTED event");
+ return;
+ }
+
+ qemuMonitorEmitNetdevVhostUserDisconnected(mon, name);
+}
+
+
static void
qemuMonitorJSONHandleNicRxFilterChanged(qemuMonitor *mon, virJSONValue *data)
{
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index ad7e99750f..2076ad8208 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -1402,6 +1402,23 @@ qemuProcessHandleNetdevStreamDisconnected(qemuMonitor *mon G_GNUC_UNUSED,
}
+static void
+qemuProcessHandleNetdevVhostUserDisconnected(qemuMonitor *mon G_GNUC_UNUSED,
+ virDomainObj *vm,
+ const char *devAlias)
+{
+ virObjectLock(vm);
+
+ VIR_DEBUG("Device %s Netdev vhost-user Disconnected in domain %p %s",
+ devAlias, vm, vm->def->name);
+
+ qemuProcessEventSubmit(vm, QEMU_PROCESS_EVENT_NETDEV_VHOST_USER_DISCONNECTED,
+ 0, 0, g_strdup(devAlias));
+
+ virObjectUnlock(vm);
+}
+
+
static void
qemuProcessHandleNicRxFilterChanged(qemuMonitor *mon G_GNUC_UNUSED,
virDomainObj *vm,
@@ -1848,6 +1865,7 @@ static qemuMonitorCallbacks monitorCallbacks = {
.domainMemoryDeviceSizeChange = qemuProcessHandleMemoryDeviceSizeChange,
.domainDeviceUnplugError = qemuProcessHandleDeviceUnplugErr,
.domainNetdevStreamDisconnected = qemuProcessHandleNetdevStreamDisconnected,
+ .domainNetdevVhostUserDisconnected = qemuProcessHandleNetdevVhostUserDisconnected,
};
static void
--
2.49.0

View File

@ -1,326 +0,0 @@
From 6921381e6831f942029b922e6f0ef6b7ca0c6c58 Mon Sep 17 00:00:00 2001
Message-ID: <6921381e6831f942029b922e6f0ef6b7ca0c6c58.1755522824.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Wed, 16 Jul 2025 16:30:52 +0100
Subject: [PATCH] qemu: sanitize blank lines in config file
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We mostly use 2 blank lines between config file entries to
improve readability. Fix where we don't do that.
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 0b9cfa791f2bd135ea36fe03fd1a8d6c8bf5e3d6)
Resolves: https://issues.redhat.com/browse/RHEL-106276
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
src/qemu/qemu.conf.in | 41 ++++++++++++++++++++++++++++++++++++++---
1 file changed, 38 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu.conf.in b/src/qemu/qemu.conf.in
index 3365834200..988d176a28 100644
--- a/src/qemu/qemu.conf.in
+++ b/src/qemu/qemu.conf.in
@@ -48,7 +48,7 @@
#
#default_tls_x509_verify = 1
-#
+
# Libvirt assumes the server-key.pem file is unencrypted by default.
# To use an encrypted server-key.pem file, the password to decrypt
# the PEM file is required. This can be provided by creating a secret
@@ -71,6 +71,7 @@
#
#vnc_listen = "0.0.0.0"
+
# Enable this option to have VNC served over an automatically created
# unix socket. This prevents unprivileged access from users on the
# host machine, though most VNC clients do not support it.
@@ -81,6 +82,7 @@
#
#vnc_auto_unix_socket = 1
+
# Enable use of TLS encryption on the VNC server. This requires
# a VNC client which supports the VeNCrypt protocol extension.
# Examples include vinagre, virt-viewer, virt-manager and vencrypt
@@ -222,6 +224,7 @@
#
#spice_sasl = 1
+
# The default SASL configuration file is located in /etc/sasl2/
# When running libvirtd unprivileged, it may be desirable to
# override the configs in this location. Set this parameter to
@@ -229,6 +232,7 @@
#
#spice_sasl_dir = "/some/directory/sasl2"
+
# Enable use of TLS encryption on the chardev TCP transports.
#
# It is necessary to setup CA and issue a server certificate
@@ -468,6 +472,7 @@
#remote_display_port_min = 5900
#remote_display_port_max = 65535
+
# VNC WebSocket port policies, same rules apply as with remote display
# ports. VNC WebSockets use similar display <-> port mappings, with
# the exception being that ports start from 5700 instead of 5900.
@@ -475,6 +480,7 @@
#remote_websocket_port_min = 5700
#remote_websocket_port_max = 65535
+
# The default security driver is SELinux. If SELinux is disabled
# on the host, then the security driver will automatically disable
# itself. If you wish to disable QEMU SELinux security driver while
@@ -492,15 +498,18 @@
#
#security_driver = "selinux"
+
# If set to non-zero, then the default security labeling
# will make guests confined. If set to zero, then guests
# will be unconfined by default. Defaults to 1.
#security_default_confined = 1
+
# If set to non-zero, then attempts to create unconfined
# guests will be blocked. Defaults to 0.
#security_require_confined = 1
+
# The user for QEMU processes run by the system instance. It can be
# specified as a user name or as a user id. The qemu driver will try to
# parse this value first as a name and then, if the name doesn't exist,
@@ -518,20 +527,24 @@
#
#user = "@QEMU_USER@"
+
# The group for QEMU processes run by the system instance. It can be
# specified in a similar way to user.
#group = "@QEMU_GROUP@"
+
# Whether libvirt should dynamically change file ownership
# to match the configured user/group above. Defaults to 1.
# Set to 0 to disable file ownership changes.
#dynamic_ownership = 1
+
# Whether libvirt should remember and restore the original
# ownership over files it is relabeling. Defaults to 1, set
# to 0 to disable the feature.
#remember_owner = 1
+
# What cgroup controllers to make use of with QEMU guests
#
# - 'cpu' - use for scheduler tunables
@@ -553,6 +566,7 @@
#
#cgroup_controllers = [ "cpu", "devices", "memory", "blkio", "cpuset", "cpuacct" ]
+
# This is the basic set of devices allowed / required by
# all virtual machines.
#
@@ -612,12 +626,14 @@
#dump_image_format = "raw"
#snapshot_image_format = "raw"
+
# When a domain is configured to be auto-dumped when libvirtd receives a
# watchdog event from qemu guest, libvirtd will save dump files in directory
# specified by auto_dump_path. Default value is /var/lib/libvirt/qemu/dump
#
#auto_dump_path = "/var/lib/libvirt/qemu/dump"
+
# When a domain is configured to be auto-dumped, enabling this flag
# has the same effect as using the VIR_DUMP_BYPASS_CACHE flag with the
# virDomainCoreDump API. That is, the system will avoid using the
@@ -626,6 +642,7 @@
#
#auto_dump_bypass_cache = 0
+
# When a domain is configured to be auto-started, enabling this flag
# has the same effect as using the VIR_DOMAIN_START_BYPASS_CACHE flag
# with the virDomainCreateWithFlags API. That is, the system will
@@ -634,6 +651,7 @@
#
#auto_start_bypass_cache = 0
+
# If provided by the host and a hugetlbfs mount point is configured,
# a guest may request huge page backing. When this mount point is
# unspecified here, determination of a host mount point in /proc/mounts
@@ -682,6 +700,7 @@
#max_processes = 0
#max_files = 0
+
# If max_threads_per_process is set to a positive integer, libvirt
# will use it to set the maximum number of threads that can be
# created by a qemu process. Some VM configurations can result in
@@ -692,6 +711,7 @@
#
#max_threads_per_process = 0
+
# If max_core is set to a non-zero integer, then QEMU will be
# permitted to create core dumps when it crashes, provided its
# RAM size is smaller than the limit set.
@@ -716,6 +736,7 @@
#
#max_core = "unlimited"
+
# Determine if guest RAM is included in QEMU core dumps. By
# default guest RAM will be excluded if a new enough QEMU is
# present and host kernel supports it. Setting this to '1' will
@@ -726,6 +747,7 @@
#
#dump_guest_core = 1
+
# mac_filter enables MAC addressed based filtering on bridge ports.
# This currently requires ebtables to be installed.
#
@@ -755,6 +777,7 @@
#
#max_queued = 0
+
###################################################################
# Keepalive protocol:
# This allows qemu driver to detect broken connections to remote
@@ -778,7 +801,6 @@
#keepalive_count = 5
-
# Use seccomp syscall filtering sandbox in QEMU.
# 1 == filter enabled, 0 == filter disabled
#
@@ -813,7 +835,6 @@
#migration_port_max = 49215
-
# Timestamp QEMU's log messages (if QEMU supports it)
#
# Defaults to 1.
@@ -853,6 +874,7 @@
# "/usr/share/AAVMF/AAVMF32_CODE.fd:/usr/share/AAVMF/AAVMF32_VARS.fd"
#]
+
# The backend to use for handling stdout/stderr output from
# QEMU processes.
#
@@ -868,6 +890,7 @@
#
#stdio_handler = "logd"
+
# QEMU gluster libgfapi log level, debug levels are 0-9, with 9 being the
# most verbose, and 0 representing no debugging output.
#
@@ -888,6 +911,7 @@
#
#gluster_debug_level = 9
+
# virtiofsd debug
#
# Whether to enable the debugging output of the virtiofsd daemon.
@@ -895,6 +919,7 @@
#
#virtiofsd_debug = 1
+
# To enhance security, QEMU driver is capable of creating private namespaces
# for each domain started. Well, so far only "mount" namespace is supported. If
# enabled it means qemu process is unable to see all the devices on the system,
@@ -903,24 +928,29 @@
# by default.
#namespaces = [ "mount" ]
+
# This directory is used for memoryBacking source if configured as file.
# NOTE: big files will be stored here
#memory_backing_dir = "/var/lib/libvirt/qemu/ram"
+
# Path to the SCSI persistent reservations helper. This helper is
# used whenever <reservations/> are enabled for SCSI LUN devices.
# If this is not an absolute path, the program will be searched for
# in $PATH as well as a few additional directories.
#pr_helper = "qemu-pr-helper"
+
# Path to the SLIRP networking helper.
#slirp_helper = "/usr/bin/slirp-helper"
+
# Path to the dbus-daemon
# If this is not an absolute path, the program will be searched for
# in $PATH.
#dbus_daemon = "dbus-daemon"
+
# User for the swtpm TPM Emulator
#
# Default is 'tss'; this is the same user that tcsd (TrouSerS) installs
@@ -929,6 +959,7 @@
#swtpm_user = "tss"
#swtpm_group = "tss"
+
# For debugging and testing purposes it's sometimes useful to be able to disable
# libvirt behaviour based on the capabilities of the qemu process. This option
# allows to do so. DO _NOT_ use in production and beaware that the behaviour
@@ -936,6 +967,7 @@
#
#capability_filters = [ "capname" ]
+
# 'deprecation_behavior' setting controls how the qemu process behaves towards
# deprecated commands and arguments used by libvirt.
#
@@ -967,6 +999,7 @@
#
#deprecation_behavior = "none"
+
# If this is set then QEMU and its threads will run in a separate scheduling
# group meaning no other process will share Hyper Threads of a single core with
# QEMU. Each QEMU has its own group.
@@ -983,6 +1016,7 @@
# scheduling group
#sched_core = "none"
+
# Using nbdkit to access remote disk sources
#
# If this is set then libvirt will use nbdkit to access remote disk sources
@@ -994,6 +1028,7 @@
#
#storage_use_nbdkit = @USE_NBDKIT_DEFAULT@
+
# libvirt will normally prevent migration if the storage backing the VM is not
# on a shared filesystems. Sometimes, however, the storage *is* shared despite
# not being detected as such: for example, this is the case when one of the
--
2.50.1

View File

@ -1,94 +0,0 @@
From 45fe2375b04f05ff9f9cb0f84dd3c5408718353f Mon Sep 17 00:00:00 2001
Message-ID: <45fe2375b04f05ff9f9cb0f84dd3c5408718353f.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 3 Feb 2025 17:52:50 +0100
Subject: [PATCH] qemu: snapshot: Ensure that NVRAM image exists when taking
inactive internal snapshot
Attempting to take an internal snapshot of a freshly defined VM with
qcow2 backed NVRAM results in failure as the NVRAM image doesn't get
populated until the VM is started for the first time.
Fix this by invoking qemuPrepareNVRAM() when qcow2 nvram is defined.
Resolves: https://issues.redhat.com/browse/RHEL-73315
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit 650e6fb7ebf905fe7dc992610ef9e932328460b7)
https://issues.redhat.com/browse/RHEL-73315
---
src/qemu/qemu_snapshot.c | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index 7c998afe6f..b1f4ebb995 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -269,6 +269,7 @@ qemuSnapshotForEachQcow2One(virStorageSource *src,
/**
* qemuSnapshotForEachQcow2:
*
+ * @driver: qemu driver configuration
* @def: domain definition
* @snap: snapshot object
* @op: 'qemu-img snapshot' operation flag, one of "-c", "-d", "-a"
@@ -282,7 +283,8 @@ qemuSnapshotForEachQcow2One(virStorageSource *src,
* permissive modes.
*/
static int
-qemuSnapshotForEachQcow2(virDomainDef *def,
+qemuSnapshotForEachQcow2(virQEMUDriver *driver,
+ virDomainDef *def,
virDomainMomentObj *snap,
const char *op)
{
@@ -352,6 +354,16 @@ qemuSnapshotForEachQcow2(virDomainDef *def,
if (virStorageSourceIsLocalStorage(nvram) &&
nvram->format == VIR_STORAGE_FILE_QCOW2) {
+ if (create) {
+ /* Ensure that the NVRAM image exists; e.g. when snapshotting
+ * a VM directly after defining it */
+ if (qemuPrepareNVRAM(driver, def, false) < 0) {
+ nrollback = def->ndisks;
+ virErrorPreserveLast(&orig_err);
+ goto rollback;
+ }
+ }
+
if (qemuSnapshotForEachQcow2One(nvram, op, snap->def->name) < 0) {
if (create) {
nrollback = def->ndisks;
@@ -392,7 +404,8 @@ static int
qemuSnapshotCreateInactiveInternal(virDomainObj *vm,
virDomainMomentObj *snap)
{
- return qemuSnapshotForEachQcow2(vm->def, snap, "-c");
+ return qemuSnapshotForEachQcow2(QEMU_DOMAIN_PRIVATE(vm)->driver,
+ vm->def, snap, "-c");
}
@@ -2696,7 +2709,8 @@ qemuSnapshotInternalRevertInactive(virDomainObj *vm,
}
/* Try all disks, but report failure if we skipped any. */
- if (qemuSnapshotForEachQcow2(def, snap, "-a") != 0)
+ if (qemuSnapshotForEachQcow2(QEMU_DOMAIN_PRIVATE(vm)->driver,
+ def, snap, "-a") != 0)
return -1;
return 0;
@@ -4064,7 +4078,8 @@ qemuSnapshotDiscardImpl(virDomainObj *vm,
if (qemuSnapshotDiscardExternal(vm, snap, externalData) < 0)
return -1;
} else {
- if (qemuSnapshotForEachQcow2(def, snap, "-d") < 0)
+ if (qemuSnapshotForEachQcow2(QEMU_DOMAIN_PRIVATE(vm)->driver,
+ def, snap, "-d") < 0)
return -1;
}
} else {
--
2.48.1

View File

@ -1,71 +0,0 @@
From b617eb7d706e30ffd241d86898cb02d42ab8e817 Mon Sep 17 00:00:00 2001
Message-ID: <b617eb7d706e30ffd241d86898cb02d42ab8e817.1737731143.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Thu, 9 Jan 2025 16:23:44 +0100
Subject: [PATCH] qemu: snapshot: delete disk image only if parent snapshot is
external
When we are deleting external snapshot that is not active we only need
to delete overlay disk image of the parent snapshot. This works
correctly even if parent snapshot is external and active as it will have
another overlay created when user reverted to that snapshot.
In case the parent snapshot is internal there are no overlay disk images
created as everything is stored internally within the disk image. In
this case we would delete the actual disk image storing internal
snapshots and most likely the original disk image as well resulting in
data loss once the VM is shutoff.
Fixes: https://gitlab.com/libvirt/libvirt/-/issues/734
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit d51179fa82448f4720f1645f0b7100df80508cc4)
https://issues.redhat.com/browse/RHEL-74041
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/qemu/qemu_snapshot.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index 18b2e478f6..80cd54bf33 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -3144,6 +3144,8 @@ qemuSnapshotDeleteExternalPrepareData(virDomainObj *vm,
return -1;
}
+ data->parentSnap = qemuSnapshotFindParentSnapForDisk(snap, data->snapDisk);
+
if (data->merge) {
virStorageSource *snapDiskSrc = NULL;
@@ -3185,8 +3187,6 @@ qemuSnapshotDeleteExternalPrepareData(virDomainObj *vm,
qemuSnapshotGetDisksWithBackingStore(vm, snap, data);
}
- data->parentSnap = qemuSnapshotFindParentSnapForDisk(snap, data->snapDisk);
-
if (data->parentSnap && !virDomainSnapshotIsExternal(data->parentSnap)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("deleting external snapshot that has internal snapshot as parent not supported"));
@@ -3642,10 +3642,12 @@ qemuSnapshotDiscardExternal(virDomainObj *vm,
if (!data->job)
goto error;
} else {
- if (virStorageSourceInit(data->parentDomDisk->src) < 0 ||
- virStorageSourceUnlink(data->parentDomDisk->src) < 0) {
- VIR_WARN("Failed to remove snapshot image '%s'",
- data->snapDisk->name);
+ if (data->parentSnap && virDomainSnapshotIsExternal(data->parentSnap)) {
+ if (virStorageSourceInit(data->parentDomDisk->src) < 0 ||
+ virStorageSourceUnlink(data->parentDomDisk->src) < 0) {
+ VIR_WARN("Failed to remove snapshot image '%s'",
+ data->snapDisk->name);
+ }
}
}
}
--
2.48.1

View File

@ -1,75 +0,0 @@
From c9c9405687b78713b913c09113697fcadec1cdba Mon Sep 17 00:00:00 2001
Message-ID: <c9c9405687b78713b913c09113697fcadec1cdba.1741876175.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Wed, 26 Feb 2025 11:04:52 +0100
Subject: [PATCH] qemu: snapshot: error out early when reverting snapshot for
VM with non-file disk
Before this patch the code would start the revert process by destroying
the VM and preparing to revert where it would fail with following error:
error: unsupported configuration: source for disk 'sdb' is not a regular file; refusing to generate external snapshot name
and leaving user with offline VM even if it was running.
Make the check before we start the revert process to not destroy VMs.
Resolves: https://issues.redhat.com/browse/RHEL-30971
Resolves: https://issues.redhat.com/browse/RHEL-79928
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 278b8334eb26aa9495f6d37e4f72471cbc8739a6)
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/qemu/qemu_snapshot.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index 3a8510c69e..16d3aaf6e7 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -2190,6 +2190,8 @@ qemuSnapshotRevertValidate(virDomainObj *vm,
virDomainSnapshotDef *snapdef,
unsigned int flags)
{
+ size_t i;
+
if (!vm->persistent &&
snapdef->state != VIR_DOMAIN_SNAPSHOT_RUNNING &&
snapdef->state != VIR_DOMAIN_SNAPSHOT_PAUSED &&
@@ -2217,6 +2219,22 @@ qemuSnapshotRevertValidate(virDomainObj *vm,
}
}
+ /* Reverting to external snapshot creates overlay files for every disk and
+ * it would fail for non-file based disks.
+ * See qemuSnapshotRevertExternalPrepare for more details. */
+ if (virDomainSnapshotIsExternal(snap)) {
+ for (i = 0; i < snap->def->dom->ndisks; i++) {
+ virDomainDiskDef *disk = snap->def->dom->disks[i];
+
+ if (disk->src->type != VIR_STORAGE_TYPE_FILE) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
+ _("source disk for '%1$s' is not a regular file, reverting to snapshot is not supported"),
+ disk->dst);
+ return -1;
+ }
+ }
+ }
+
return 0;
}
@@ -2368,6 +2386,9 @@ qemuSnapshotRevertExternalPrepare(virDomainObj *vm,
if (virDomainMomentDefPostParse(&tmpsnapdef->parent) < 0)
return -1;
+ /* Force default location to be external in order to create overlay files
+ * for every disk. In qemuSnapshotRevertValidate we make sure that each
+ * disk is regular file otherwise this would fail. */
if (virDomainSnapshotAlignDisks(tmpsnapdef, domdef,
VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL,
false, true) < 0) {
--
2.48.1

View File

@ -1,108 +0,0 @@
From d50549c9b0e601bc3a6ae5ee97d1ff2f75645f57 Mon Sep 17 00:00:00 2001
Message-ID: <d50549c9b0e601bc3a6ae5ee97d1ff2f75645f57.1742990721.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Mon, 17 Feb 2025 16:58:27 +0000
Subject: [PATCH] qemu: support MSDM ACPI table type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The MSDM ACPI table is a replacement for the SLIC table type, now
sometimes used by Microsoft for Windows Licensing checks:
https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653305(v=vs.85)
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/748
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 288f90feb32e38dfd246cbfb68f38caca43cef70)
Resolves: https://issues.redhat.com/browse/RHEL-81041
---
docs/formatdomain.rst | 2 +-
src/qemu/qemu_command.c | 2 +-
src/qemu/qemu_validate.c | 2 +-
tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args | 1 +
tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml | 1 +
tests/qemuxmlconfdata/acpi-table-many.xml | 1 +
6 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index c144851b62..961d20a41d 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -500,7 +500,7 @@ These options apply to any form of booting of the guest OS.
* ``msdm``: a single ACPI table with header and data, providing
Microsoft Data Management information. The ACPI table signature
in the header will be forced to ``MSDM``
- (:since:`Since 11.2.0`).
+ (:since:`Since 11.2.0 (QEMU)`).
Each type may be used only once, except for ``raw`` which can
appear multiple times.
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 9fe191d3b9..b7d61edd19 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -133,7 +133,7 @@ VIR_ENUM_IMPL(qemuACPITableSIG,
"", /* raw */
"", /* rawset */
"SLIC",
- "");
+ "MSDM");
const char *
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 378f502ea7..f814ee8c0d 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -731,10 +731,10 @@ qemuValidateDomainDefBoot(const virDomainDef *def,
switch (def->os.acpiTables[i]->type) {
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC:
+ case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
break;
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
- case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("ACPI table type '%1$s' is not supported"),
virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));
diff --git a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
index 4d5d02cb3c..2b0b433258 100644
--- a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
@@ -30,6 +30,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-acpitable file=/var/lib/libvirt/acpi/exm2.dat \
-acpitable file=/var/lib/libvirt/acpi/exm3.dat \
-acpitable sig=SLIC,file=/var/lib/libvirt/acpi/slic.dat \
+-acpitable sig=MSDM,file=/var/lib/libvirt/acpi/msdm.dat \
-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
-audiodev '{"id":"audio1","driver":"none"}' \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
index b7f7e18d28..084bb4cda3 100644
--- a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
@@ -11,6 +11,7 @@
<table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
<table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
<table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
+ <table type='msdm'>/var/lib/libvirt/acpi/msdm.dat</table>
</acpi>
<boot dev='hd'/>
</os>
diff --git a/tests/qemuxmlconfdata/acpi-table-many.xml b/tests/qemuxmlconfdata/acpi-table-many.xml
index cc75011990..890078d4c3 100644
--- a/tests/qemuxmlconfdata/acpi-table-many.xml
+++ b/tests/qemuxmlconfdata/acpi-table-many.xml
@@ -12,6 +12,7 @@
<table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
<table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
<table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
+ <table type='msdm'>/var/lib/libvirt/acpi/msdm.dat</table>
</acpi>
</os>
<features>
--
2.49.0

View File

@ -1,218 +0,0 @@
From b83e3e1644dc33a41fa4ccd62407aeca218bbd4c Mon Sep 17 00:00:00 2001
Message-ID: <b83e3e1644dc33a41fa4ccd62407aeca218bbd4c.1742990721.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Wed, 26 Feb 2025 19:10:42 +0000
Subject: [PATCH] qemu: support 'raw' ACPI table type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This allows passing a single ACPI table of any type through to QEMU with
the signture autodetected from the header.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit fe0cf62e0f8a6c4bbc2f297f46761f41691e3193)
Resolves: https://issues.redhat.com/browse/RHEL-81041
---
docs/formatdomain.rst | 2 +-
src/qemu/qemu_command.c | 6 ++-
src/qemu/qemu_validate.c | 2 +-
.../acpi-table-many.x86_64-latest.args | 36 ++++++++++++++++
.../acpi-table-many.x86_64-latest.xml | 41 +++++++++++++++++++
tests/qemuxmlconfdata/acpi-table-many.xml | 33 +++++++++++++++
tests/qemuxmlconftest.c | 1 +
7 files changed, 117 insertions(+), 4 deletions(-)
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.xml
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index b6e162235c..ff06efb69f 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -489,7 +489,7 @@ These options apply to any form of booting of the guest OS.
file:
* ``raw``: a single ACPI table with header and data, with ACPI
- signature auto-detected from header (:since:`Since 11.2.0`).
+ signature auto-detected from header (:since:`Since 11.2.0 (QEMU)`).
* ``rawset``: concatenation of multiple ACPI tables with header
and data, each with any ACPI signature, auto-detected from header
(:since:`Since 11.2.0`).
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 94fb7fc4c2..adf7b21b14 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6011,9 +6011,11 @@ qemuBuildBootCommandLine(virCommand *cmd,
virCommandAddArgList(cmd, "-dtb", def->os.dtb, NULL);
for (i = 0; i < def->os.nacpiTables; i++) {
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
+ const char *sig = qemuACPITableSIGTypeToString(def->os.acpiTables[i]->type);
virCommandAddArg(cmd, "-acpitable");
- virBufferAsprintf(&buf, "sig=%s,file=",
- qemuACPITableSIGTypeToString(def->os.acpiTables[i]->type));
+ if (*sig != '\0')
+ virBufferAsprintf(&buf, "sig=%s,", sig);
+ virBufferAddLit(&buf, "file=");
virQEMUBuildBufferEscapeComma(&buf, def->os.acpiTables[i]->path);
virCommandAddArgBuffer(cmd, &buf);
}
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 8ef0257d73..b088e54dd0 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -729,10 +729,10 @@ qemuValidateDomainDefBoot(const virDomainDef *def,
for (i = 0; i < def->os.nacpiTables; i++) {
switch (def->os.acpiTables[i]->type) {
+ case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC:
break;
- case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("ACPI table type '%1$s' is not supported"),
diff --git a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
new file mode 100644
index 0000000000..4d5d02cb3c
--- /dev/null
+++ b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
@@ -0,0 +1,36 @@
+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=on \
+-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 \
+-acpitable file=/var/lib/libvirt/acpi/exm1.dat \
+-acpitable file=/var/lib/libvirt/acpi/exm2.dat \
+-acpitable file=/var/lib/libvirt/acpi/exm3.dat \
+-acpitable sig=SLIC,file=/var/lib/libvirt/acpi/slic.dat \
+-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
new file mode 100644
index 0000000000..b7f7e18d28
--- /dev/null
+++ b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
@@ -0,0 +1,41 @@
+<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>
+ <acpi>
+ <table type='raw'>/var/lib/libvirt/acpi/exm1.dat</table>
+ <table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
+ <table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
+ <table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
+ </acpi>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <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='usb' index='0' model='piix3-uhci'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <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'/>
+ <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/acpi-table-many.xml b/tests/qemuxmlconfdata/acpi-table-many.xml
new file mode 100644
index 0000000000..cc75011990
--- /dev/null
+++ b/tests/qemuxmlconfdata/acpi-table-many.xml
@@ -0,0 +1,33 @@
+<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'/>
+ <acpi>
+ <table type='raw'>/var/lib/libvirt/acpi/exm1.dat</table>
+ <table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
+ <table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
+ <table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
+ </acpi>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <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='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 3947f508a2..2007944c29 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -2767,6 +2767,7 @@ mymain(void)
DO_TEST_CAPS_LATEST_PARSE_ERROR("usb-too-long-port-path-invalid");
DO_TEST_CAPS_LATEST("acpi-table");
+ DO_TEST_CAPS_LATEST("acpi-table-many");
DO_TEST_CAPS_LATEST("intel-iommu");
DO_TEST_CAPS_LATEST("intel-iommu-caching-mode");
--
2.49.0

View File

@ -1,73 +0,0 @@
From c184ba489a432d5748c3de3ff5719ccd8194c1e5 Mon Sep 17 00:00:00 2001
Message-ID: <c184ba489a432d5748c3de3ff5719ccd8194c1e5.1734433245.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Tue, 3 Dec 2024 12:00:08 +0100
Subject: [PATCH] qemu: tpm: do not update profile name for transient domains
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If we do not have a persistent definition, there's no point in
looking for it since we cannot store it.
Also skip the update if the tpm device(s) in the persistent
definition are different.
This fixes the crash when starting a transient domain.
https://issues.redhat.com/browse/RHEL-69774
https://gitlab.com/libvirt/libvirt/-/issues/715
Fixes: d79542eec669eb9c449bb8228179e7a87e768017
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
(cherry picked from commit 81da7a2c2a2d490cddaaa77d3e3b36e210b38bd7)
https://issues.redhat.com/browse/RHEL-71072
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_extdevice.c | 13 ++++++++++++-
src/qemu/qemu_tpm.c | 2 +-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c
index a6f31f9773..954cb323a4 100644
--- a/src/qemu/qemu_extdevice.c
+++ b/src/qemu/qemu_extdevice.c
@@ -190,7 +190,18 @@ qemuExtDevicesStart(virQEMUDriver *driver,
for (i = 0; i < def->ntpms; i++) {
virDomainTPMDef *tpm = def->tpms[i];
- virDomainTPMDef *persistentTPMDef = persistentDef->tpms[i];
+ virDomainTPMDef *persistentTPMDef = NULL;
+
+ if (persistentDef) {
+ /* do not try to update the profile in the persistent definition
+ * if the device does not match */
+ if (persistentDef->ntpms == def->ntpms)
+ persistentTPMDef = persistentDef->tpms[i];
+ if (persistentTPMDef &&
+ (persistentTPMDef->type != tpm->type ||
+ persistentTPMDef->model != tpm->model))
+ persistentTPMDef = NULL;
+ }
if (tpm->type == VIR_DOMAIN_TPM_TYPE_EMULATOR &&
qemuExtTPMStart(driver, vm, tpm, persistentTPMDef,
diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c
index f223dcb9ae..f5e0184e54 100644
--- a/src/qemu/qemu_tpm.c
+++ b/src/qemu/qemu_tpm.c
@@ -773,7 +773,7 @@ qemuTPMEmulatorBuildCommand(virDomainTPMDef *tpm,
incomingMigration) < 0)
goto error;
- if (run_setup && !incomingMigration &&
+ if (run_setup && !incomingMigration && persistentTPMDef &&
qemuTPMEmulatorUpdateProfileName(&tpm->data.emulator, persistentTPMDef,
cfg, saveDef) < 0)
goto error;
--
2.47.1

View File

@ -1,132 +0,0 @@
From cf77e1956a7d128b379f3608d38ec93c424c3ca2 Mon Sep 17 00:00:00 2001
Message-ID: <cf77e1956a7d128b379f3608d38ec93c424c3ca2.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Tue, 11 Feb 2025 16:30:11 -0500
Subject: [PATCH] qemu: use switch instead of if in
qemuProcessPrepareDomainNetwork()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
qemuProcessPrepareDomain()'s comments say that it should be the only
place to change the "live XML" of a domain (i.e. the public parts of
the virDomainDef object that is shown in the domain's status
XML), and that seems like a reasonable idea (although there aren't
many users of it to date).
qemuProcessPrepareDomainNetwork() is called by the aforementioned
qemuProcessPrepareDomain() - this patch changes the "if (type ==
HOSTDEV)" in that function to a "switch(type)" so it's simpler to add
DomainDef modifications for various other types of virDomainNetDef,
and also so that anyone who adds a new interface type is forced to
look at the code and decide if anything needs to be done here for the
new type.
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 6fe3d765e506b2954931e228ecd233f1200dce1a)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/qemu/qemu_process.c | 75 ++++++++++++++++++++++++++---------------
1 file changed, 47 insertions(+), 28 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index a45f1b5b7d..26ca943dfc 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5888,7 +5888,6 @@ qemuProcessPrepareDomainNetwork(virDomainObj *vm)
for (i = 0; i < def->nnets; i++) {
virDomainNetDef *net = def->nets[i];
- virDomainNetType actualType;
/* If appropriate, grab a physical device from the configured
* network's pool of devices, or resolve bridge device name
@@ -5901,36 +5900,56 @@ qemuProcessPrepareDomainNetwork(virDomainObj *vm)
return -1;
}
- actualType = virDomainNetGetActualType(net);
- if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV &&
- net->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
- /* Each type='hostdev' network device must also have a
- * corresponding entry in the hostdevs array. For netdevs
- * that are hardcoded as type='hostdev', this is already
- * done by the parser, but for those allocated from a
- * network / determined at runtime, we need to do it
- * separately.
- */
- virDomainHostdevDef *hostdev = virDomainNetGetActualHostdev(net);
- virDomainHostdevSubsysPCI *pcisrc = &hostdev->source.subsys.u.pci;
-
- if (virDomainHostdevFind(def, hostdev, NULL) >= 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("PCI device %1$04x:%2$02x:%3$02x.%4$x allocated from network %5$s is already in use by domain %6$s"),
- pcisrc->addr.domain, pcisrc->addr.bus,
- pcisrc->addr.slot, pcisrc->addr.function,
- net->data.network.name, def->name);
- return -1;
- }
+ switch (virDomainNetGetActualType(net)) {
+ case VIR_DOMAIN_NET_TYPE_HOSTDEV:
+ if (net->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
+ /* Each type='hostdev' network device must also have a
+ * corresponding entry in the hostdevs array. For netdevs
+ * that are hardcoded as type='hostdev', this is already
+ * done by the parser, but for those allocated from a
+ * network / determined at runtime, we need to do it
+ * separately.
+ */
+ virDomainHostdevDef *hostdev = virDomainNetGetActualHostdev(net);
+ virDomainHostdevSubsysPCI *pcisrc = &hostdev->source.subsys.u.pci;
+
+ if (virDomainHostdevFind(def, hostdev, NULL) >= 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("PCI device %1$04x:%2$02x:%3$02x.%4$x allocated from network %5$s is already in use by domain %6$s"),
+ pcisrc->addr.domain, pcisrc->addr.bus,
+ pcisrc->addr.slot, pcisrc->addr.function,
+ net->data.network.name, def->name);
+ return -1;
+ }
- /* For hostdev present in qemuProcessPrepareDomain() phase this was
- * done already, but this code runs after that, so we have to call
- * it ourselves. */
- if (qemuDomainPrepareHostdev(hostdev, priv) < 0)
- return -1;
+ /* For hostdev present in qemuProcessPrepareDomain() phase this was
+ * done already, but this code runs after that, so we have to call
+ * it ourselves. */
+ if (qemuDomainPrepareHostdev(hostdev, priv) < 0)
+ return -1;
- virDomainHostdevInsert(def, hostdev);
+ virDomainHostdevInsert(def, hostdev);
+ }
+ 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:
+ case VIR_DOMAIN_NET_TYPE_INTERNAL:
+ case VIR_DOMAIN_NET_TYPE_UDP:
+ case VIR_DOMAIN_NET_TYPE_VDPA:
+ case VIR_DOMAIN_NET_TYPE_NULL:
+ case VIR_DOMAIN_NET_TYPE_VDS:
+ case VIR_DOMAIN_NET_TYPE_LAST:
+ break;
}
+
}
return 0;
}
--
2.48.1

View File

@ -1,82 +0,0 @@
From 64f9ffd6ba6384c3ce11312e645dac6cb3cab27e Mon Sep 17 00:00:00 2001
Message-ID: <64f9ffd6ba6384c3ce11312e645dac6cb3cab27e.1739824249.git.jdenemar@redhat.com>
From: Laine Stump <laine@redhat.com>
Date: Sun, 9 Feb 2025 18:46:00 -0500
Subject: [PATCH] qemu: validate that model is virtio for vhostuser and vdpa
interfaces in the same place
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Both vhostuser and vdpa interface types must use the virtio model in
the guest (because part of the functionality is implemented in the
guest virtio driver). Due to ["because that's the way it happened"]
this has been validated for vhostuser in the hypervisor-agnostic
validate function, but for vdpa it has been done in the QEMU-specific
validate. Since these interface models are only supported by QEMU
anyway, validate for both of them in the QEMU validation function.
Take advantage of this change to switch to using
virDomainNetIsVirtioModel(net) instead of "net->model ==
VIR_DOMAIN_NET_MODEL_VIRTIO" (the former also matches
...VIRTIO_TRANSITIONAL and ...VIRTIO_NON_TRANSITIONAL, so is more
correct).
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 154d44a585c40d0b6cf3bae674da2a8ca11ddb95)
https://issues.redhat.com/browse/RHEL-69455
Signed-off-by: Laine Stump <laine@redhat.com>
---
src/conf/domain_validate.c | 6 ------
src/qemu/qemu_validate.c | 11 ++++++-----
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 1034bb57f5..f56ff5b7bb 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2180,12 +2180,6 @@ virDomainNetDefValidate(const virDomainNetDef *net)
switch (net->type) {
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
- if (!virDomainNetIsVirtioModel(net)) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("Wrong or no <model> 'type' attribute specified with <interface type='vhostuser'/>. vhostuser requires the virtio-net* frontend"));
- 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",
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 9310457cb1..841d320541 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1808,17 +1808,18 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
_("vDPA devices are not supported with this QEMU binary"));
return -1;
}
+ }
- if (net->model != VIR_DOMAIN_NET_MODEL_VIRTIO) {
+ if (!virDomainNetIsVirtioModel(net)) {
+ if (net->type == VIR_DOMAIN_NET_TYPE_VDPA ||
+ net->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("invalid model for interface of type '%1$s': '%2$s'"),
+ _("invalid model for interface of type '%1$s': '%2$s' - must be 'virtio'"),
virDomainNetTypeToString(net->type),
virDomainNetModelTypeToString(net->model));
return -1;
}
- }
-
- if (virDomainNetIsVirtioModel(net)) {
+ } else {
if (net->driver.virtio.rx_queue_size) {
if (!VIR_IS_POW2(net->driver.virtio.rx_queue_size)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
--
2.48.1

View File

@ -1,44 +0,0 @@
From bedbe8dd400e242ad346910bc2bdbfb1e6969fdf Mon Sep 17 00:00:00 2001
Message-ID: <bedbe8dd400e242ad346910bc2bdbfb1e6969fdf.1744876588.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 10 Apr 2025 16:18:29 +0200
Subject: [PATCH] qemuDomainBlockCopyCommon: Don't revoke access to file twice
on failure
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If the copy job fails to start up when calling the 'blockdev-mirror'
command the code would call qemuDomainStorageSourceChainAccessRevoke()
twice; once right after the monitor call and the second time in the
'endjob' section.
Remove the one directly after the monitor call and let the common
cleanup handle it.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 68a83cac64b90b7069e6213d70a2faadb552cb80)
https://issues.redhat.com/browse/RHEL-7357
---
src/qemu/qemu_driver.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 4c6eff9286..8a354a606a 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -14413,10 +14413,8 @@ qemuDomainBlockCopyCommon(virDomainObj *vm,
virDomainAuditDisk(vm, NULL, mirror, "mirror", ret >= 0);
qemuDomainObjExitMonitor(vm);
- if (ret < 0) {
- qemuDomainStorageSourceChainAccessRevoke(driver, vm, mirror);
+ if (ret < 0)
goto endjob;
- }
/* Update vm in place to match changes. */
need_unlink = false;
--
2.49.0

View File

@ -1,100 +0,0 @@
From 19e552685d72cf3c8064c56ee9bce5859303da25 Mon Sep 17 00:00:00 2001
Message-ID: <19e552685d72cf3c8064c56ee9bce5859303da25.1749039441.git.jdenemar@redhat.com>
From: Collin Walling <walling@linux.ibm.com>
Date: Mon, 16 Dec 2024 18:03:52 -0500
Subject: [PATCH] qemuMonitorJSONGetCPUModelExpansion: refactor parsing
functions
Refactor the CPU Model parsing functions within
qemuMonitorJSONGetCPUModelExpansion. The new functions,
qemuMonitorJSONParseCPUModelExpansionData and
qemuMonitorJSONParseCPUModelExpansion invoke the functions they
replace and leave room for a subsequent patch to handle parsing the
(optional) deprecated_props field resulting from the command.
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 60e407deb5cd88e5f1564d1c9145e374001cf34f)
JIRA: https://issues.redhat.com/browse/RHEL-89415
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
src/qemu/qemu_monitor_json.c | 46 ++++++++++++++++++++++++++++++------
1 file changed, 39 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index be5d3be7e6..5df32922fb 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -5125,6 +5125,37 @@ qemuMonitorJSONParseCPUModel(const char *cpu_name,
}
+static int
+qemuMonitorJSONParseCPUModelExpansionData(virJSONValue *data,
+ bool fail_no_props,
+ virJSONValue **cpu_model,
+ virJSONValue **cpu_props,
+ const char **cpu_name)
+{
+ if (qemuMonitorJSONParseCPUModelData(data, "query-cpu-model-expansion",
+ fail_no_props, cpu_model, cpu_props,
+ cpu_name) < 0)
+ return -1;
+
+ return 0;
+}
+
+
+static int
+qemuMonitorJSONParseCPUModelExpansion(const char *cpu_name,
+ virJSONValue *cpu_props,
+ qemuMonitorCPUModelInfo **model_info)
+{
+ g_autoptr(qemuMonitorCPUModelInfo) expanded_model = NULL;
+
+ if (qemuMonitorJSONParseCPUModel(cpu_name, cpu_props, &expanded_model) < 0)
+ return -1;
+
+ *model_info = g_steal_pointer(&expanded_model);
+ return 0;
+}
+
+
static int
qemuMonitorJSONQueryCPUModelExpansionOne(qemuMonitor *mon,
qemuMonitorCPUModelExpansionType type,
@@ -5195,9 +5226,9 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitor *mon,
if ((rc = qemuMonitorJSONQueryCPUModelExpansionOne(mon, type, &model, &data)) <= 0)
return rc;
- if (qemuMonitorJSONParseCPUModelData(data, "query-cpu-model-expansion",
- fail_no_props, &cpu_model, &cpu_props,
- &cpu_name) < 0)
+ if (qemuMonitorJSONParseCPUModelExpansionData(data, fail_no_props,
+ &cpu_model, &cpu_props,
+ &cpu_name) < 0)
return -1;
/* QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC_FULL requests "full" expansion
@@ -5213,13 +5244,14 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitor *mon,
if ((rc = qemuMonitorJSONQueryCPUModelExpansionOne(mon, type, &fullModel, &fullData)) <= 0)
return rc;
- if (qemuMonitorJSONParseCPUModelData(fullData, "query-cpu-model-expansion",
- fail_no_props, &cpu_model, &cpu_props,
- &cpu_name) < 0)
+ if (qemuMonitorJSONParseCPUModelExpansionData(fullData, fail_no_props,
+ &cpu_model, &cpu_props,
+ &cpu_name) < 0)
return -1;
}
- return qemuMonitorJSONParseCPUModel(cpu_name, cpu_props, model_info);
+ return qemuMonitorJSONParseCPUModelExpansion(cpu_name, cpu_props,
+ model_info);
}
--
2.49.0

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