import CS libvirt-10.10.0-7.el9

This commit is contained in:
eabdullin 2025-03-11 07:41:08 +00:00
parent 57f367762c
commit 89c3f5c24c
100 changed files with 91667 additions and 1700 deletions

2
.gitignore vendored
View File

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

View File

@ -1 +1 @@
345a0557aeca3b74afb7f048ff4e281782503a16 SOURCES/libvirt-10.5.0.tar.xz
7e76874bdcd1b220d90619c1ce7a876b6c9a8d78 SOURCES/libvirt-10.10.0.tar.xz

View File

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

View File

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

View File

@ -0,0 +1,158 @@
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

@ -0,0 +1,213 @@
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

@ -0,0 +1,170 @@
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

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

View File

@ -0,0 +1,658 @@
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

@ -0,0 +1,684 @@
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

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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,658 @@
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

@ -0,0 +1,658 @@
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

@ -0,0 +1,768 @@
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

@ -0,0 +1,684 @@
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

@ -0,0 +1,879 @@
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

@ -0,0 +1,827 @@
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

@ -0,0 +1,814 @@
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

@ -0,0 +1,658 @@
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

@ -0,0 +1,658 @@
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

@ -0,0 +1,840 @@
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

@ -0,0 +1,658 @@
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

@ -0,0 +1,658 @@
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

@ -0,0 +1,658 @@
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

@ -0,0 +1,950 @@
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

@ -0,0 +1,658 @@
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

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

View File

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

View File

@ -0,0 +1,139 @@
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

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

View File

@ -0,0 +1,69 @@
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

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

View File

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

View File

@ -0,0 +1,108 @@
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,124 +0,0 @@
From 53b691e4d85f8a442f14ecf4b3bf0b17d607fb2b Mon Sep 17 00:00:00 2001
Message-ID: <53b691e4d85f8a442f14ecf4b3bf0b17d607fb2b.1720800605.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 11 Jul 2024 13:49:09 +0200
Subject: [PATCH] qemu: Don't leave beingDestroyed=true on inactive domain
Recent commit v10.4.0-87-gd9935a5c4f made a reasonable change to only
reset beingDestroyed back to false when vm->def->id is reset to make
sure other code can detect a domain is (about to become) inactive. It
even added a comment saying any caller of qemuProcessBeginStopJob is
supposed to call qemuProcessStop to clear beingDestroyed. But not every
caller really does so because they first call qemuProcessBeginStopJob
and then check whether a domain is still running. If not the
qemuProcessStop call is skipped leaving beingDestroyed=true. In case of
a persistent domain this may block incoming migrations of such domain as
the migration code would think the domain died unexpectedly (even though
it's still running).
The qemuProcessBeginStopJob function is a wrapper around
virDomainObjBeginJob, but virDomainObjEndJob was used directly for
cleanup. This patch introduces a new qemuProcessEndStopJob wrapper
around virDomainObjEndJob to properly undo everything
qemuProcessBeginStopJob did.
https://issues.redhat.com/browse/RHEL-43309
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit bec903cae84c21850d47a1b4d3ab57ca81189519)
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_driver.c | 4 ++--
src/qemu/qemu_process.c | 20 ++++++++++++++++----
src/qemu/qemu_process.h | 1 +
3 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index fc1704f4fc..d9073b2154 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2115,7 +2115,7 @@ qemuDomainDestroyFlags(virDomainPtr dom,
endjob:
if (ret == 0)
qemuDomainRemoveInactive(driver, vm, 0, false);
- virDomainObjEndJob(vm);
+ qemuProcessEndStopJob(vm);
cleanup:
virDomainObjEndAPI(&vm);
@@ -3901,7 +3901,7 @@ processMonitorEOFEvent(virQEMUDriver *driver,
endjob:
qemuDomainRemoveInactive(driver, vm, 0, false);
- virDomainObjEndJob(vm);
+ qemuProcessEndStopJob(vm);
}
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index b9b6ccf1de..bea42d38c6 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -8422,7 +8422,8 @@ qemuProcessKill(virDomainObj *vm, unsigned int flags)
* qemuProcessBeginStopJob:
*
* Stop all current jobs by killing the domain and start a new one for
- * qemuProcessStop.
+ * qemuProcessStop. The caller has to make sure qemuProcessEndStopJob is
+ * called to properly cleanup the job.
*/
int
qemuProcessBeginStopJob(virDomainObj *vm,
@@ -8449,8 +8450,9 @@ qemuProcessBeginStopJob(virDomainObj *vm,
goto error;
/* priv->beingDestroyed is deliberately left set to 'true' here. Caller
- * is supposed to call qemuProcessStop, which will reset it after
- * 'vm->def->id' is set to -1 */
+ * is supposed to call qemuProcessStop (which will reset it after
+ * 'vm->def->id' is set to -1) and/or qemuProcessEndStopJob to do proper
+ * cleanup. */
return 0;
error:
@@ -8459,6 +8461,16 @@ qemuProcessBeginStopJob(virDomainObj *vm,
}
+void
+qemuProcessEndStopJob(virDomainObj *vm)
+{
+ if (!virDomainObjIsActive(vm))
+ QEMU_DOMAIN_PRIVATE(vm)->beingDestroyed = false;
+
+ virDomainObjEndJob(vm);
+}
+
+
void qemuProcessStop(virQEMUDriver *driver,
virDomainObj *vm,
virDomainShutoffReason reason,
@@ -8801,7 +8813,7 @@ qemuProcessAutoDestroy(virDomainObj *dom,
qemuDomainRemoveInactive(driver, dom, 0, false);
- virDomainObjEndJob(dom);
+ qemuProcessEndStopJob(dom);
virObjectEventStateQueue(driver->domainEventState, event);
}
diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h
index c1ea949215..cb67bfcd2d 100644
--- a/src/qemu/qemu_process.h
+++ b/src/qemu/qemu_process.h
@@ -169,6 +169,7 @@ typedef enum {
int qemuProcessBeginStopJob(virDomainObj *vm,
virDomainJob job,
bool forceKill);
+void qemuProcessEndStopJob(virDomainObj *vm);
void qemuProcessStop(virQEMUDriver *driver,
virDomainObj *vm,
virDomainShutoffReason reason,
--
2.45.2

View File

@ -0,0 +1,154 @@
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

@ -0,0 +1,61 @@
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

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

View File

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

View File

@ -0,0 +1,76 @@
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

@ -0,0 +1,41 @@
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

@ -0,0 +1,76 @@
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

@ -0,0 +1,663 @@
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

@ -0,0 +1,75 @@
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,128 +0,0 @@
From c30b3dd904c094c478c5b362de6b3580379edd8b Mon Sep 17 00:00:00 2001
Message-ID: <c30b3dd904c094c478c5b362de6b3580379edd8b.1720800605.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 4 Jul 2024 15:54:29 +0200
Subject: [PATCH] qemu: do not use deprecated options for new virtiofsd
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Use the to-be-introduced virtiofsd capability to mark whether
new options are safe to use.
Depends on:
https://gitlab.com/virtio-fs/virtiofsd/-/merge_requests/231
https://issues.redhat.com/browse/RHEL-7108
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 8dc04cafecd2432c071c73366e4c6eb3b7bff495)
https://issues.redhat.com/browse/RHEL-7108
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_virtiofs.c | 83 +++++++++++++++++++++++++++-------------
1 file changed, 57 insertions(+), 26 deletions(-)
diff --git a/src/qemu/qemu_virtiofs.c b/src/qemu/qemu_virtiofs.c
index 0df8d67b1b..0e3c7dbb58 100644
--- a/src/qemu/qemu_virtiofs.c
+++ b/src/qemu/qemu_virtiofs.c
@@ -139,36 +139,67 @@ qemuVirtioFSBuildCommandLine(virQEMUDriverConfig *cfg,
virCommandPassFD(cmd, *fd, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
*fd = -1;
- virCommandAddArg(cmd, "-o");
- virBufferAddLit(&opts, "source=");
- virQEMUBuildBufferEscapeComma(&opts, fs->src->path);
- if (fs->cache)
- virBufferAsprintf(&opts, ",cache=%s", virDomainFSCacheModeTypeToString(fs->cache));
- if (fs->sandbox)
- virBufferAsprintf(&opts, ",sandbox=%s", virDomainFSSandboxModeTypeToString(fs->sandbox));
-
- if (fs->xattr == VIR_TRISTATE_SWITCH_ON)
- virBufferAddLit(&opts, ",xattr");
- else if (fs->xattr == VIR_TRISTATE_SWITCH_OFF)
- virBufferAddLit(&opts, ",no_xattr");
-
- if (fs->flock == VIR_TRISTATE_SWITCH_ON)
- virBufferAddLit(&opts, ",flock");
- else if (fs->flock == VIR_TRISTATE_SWITCH_OFF)
- virBufferAddLit(&opts, ",no_flock");
-
- if (fs->posix_lock == VIR_TRISTATE_SWITCH_ON)
- virBufferAddLit(&opts, ",posix_lock");
- else if (fs->posix_lock == VIR_TRISTATE_SWITCH_OFF)
- virBufferAddLit(&opts, ",no_posix_lock");
-
- virCommandAddArgBuffer(cmd, &opts);
+ if (virBitmapIsBitSet(fs->caps, QEMU_VHOST_USER_FS_FEATURE_SEPARATE_OPTIONS)) {
+ /* Note that this option format is used by the Rust version of the daemon
+ * since v1.0.0, which is way longer than the capability existed.
+ * The -o style of options can be removed once we bump the minimal
+ * QEMU version to 8.0.0, which dropped the C virtiofsd daemon */
+ virCommandAddArg(cmd, "--shared-dir");
+ virCommandAddArg(cmd, fs->src->path);
+
+ if (fs->cache) {
+ virCommandAddArg(cmd, "--cache");
+ virCommandAddArg(cmd, virDomainFSCacheModeTypeToString(fs->cache));
+ }
+ if (fs->sandbox) {
+ virCommandAddArg(cmd, "--sandbox");
+ virCommandAddArg(cmd, virDomainFSSandboxModeTypeToString(fs->sandbox));
+ }
+
+ if (fs->xattr == VIR_TRISTATE_SWITCH_ON)
+ virCommandAddArg(cmd, "--xattr");
+
+ if (fs->posix_lock != VIR_TRISTATE_SWITCH_ABSENT ||
+ fs->flock != VIR_TRISTATE_SWITCH_ABSENT) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("locking options are not supported by this virtiofsd"));
+ return NULL;
+ }
+ } else {
+ virCommandAddArg(cmd, "-o");
+ virBufferAddLit(&opts, "source=");
+ virQEMUBuildBufferEscapeComma(&opts, fs->src->path);
+ if (fs->cache)
+ virBufferAsprintf(&opts, ",cache=%s", virDomainFSCacheModeTypeToString(fs->cache));
+ if (fs->sandbox)
+ virBufferAsprintf(&opts, ",sandbox=%s", virDomainFSSandboxModeTypeToString(fs->sandbox));
+
+ if (fs->xattr == VIR_TRISTATE_SWITCH_ON)
+ virBufferAddLit(&opts, ",xattr");
+ else if (fs->xattr == VIR_TRISTATE_SWITCH_OFF)
+ virBufferAddLit(&opts, ",no_xattr");
+
+ if (fs->flock == VIR_TRISTATE_SWITCH_ON)
+ virBufferAddLit(&opts, ",flock");
+ else if (fs->flock == VIR_TRISTATE_SWITCH_OFF)
+ virBufferAddLit(&opts, ",no_flock");
+
+ if (fs->posix_lock == VIR_TRISTATE_SWITCH_ON)
+ virBufferAddLit(&opts, ",posix_lock");
+ else if (fs->posix_lock == VIR_TRISTATE_SWITCH_OFF)
+ virBufferAddLit(&opts, ",no_posix_lock");
+
+ virCommandAddArgBuffer(cmd, &opts);
+ }
if (fs->thread_pool_size >= 0)
virCommandAddArgFormat(cmd, "--thread-pool-size=%i", fs->thread_pool_size);
- if (cfg->virtiofsdDebug)
- virCommandAddArg(cmd, "-d");
+ if (cfg->virtiofsdDebug) {
+ if (virBitmapIsBitSet(fs->caps, QEMU_VHOST_USER_FS_FEATURE_SEPARATE_OPTIONS))
+ virCommandAddArgList(cmd, "--log-level", "debug", NULL);
+ else
+ virCommandAddArg(cmd, "-d");
+ }
for (i = 0; i < fs->idmap.nuidmap; i++) {
virCommandAddArgFormat(cmd, "--uid-map=:%u:%u:%u:",
--
2.45.2

View File

@ -0,0 +1,85 @@
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

@ -0,0 +1,203 @@
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,208 +0,0 @@
From 26c0a729f2ae6dcd932a42bd437fc76da9e6b2cc Mon Sep 17 00:00:00 2001
Message-ID: <26c0a729f2ae6dcd932a42bd437fc76da9e6b2cc.1720800605.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 4 Jul 2024 15:54:28 +0200
Subject: [PATCH] qemu: fill capabilities for virtiofsd
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Run the daemon with --print-capabilities first, to see what it supports.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 730eaafaace6b9202f9f694b732196299a0baec2)
https://issues.redhat.com/browse/RHEL-7108
https://issues.redhat.com/browse/RHEL-40135
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
src/conf/domain_conf.c | 1 +
src/conf/domain_conf.h | 1 +
src/qemu/qemu_vhost_user.c | 58 +++++++++++++++++++
src/qemu/qemu_vhost_user.h | 11 ++++
src/qemu/qemu_virtiofs.c | 9 ++-
.../qemu/vhost-user/50-qemu-virtiofsd.json | 2 +-
tests/qemuxmlconftest.c | 2 +
7 files changed, 81 insertions(+), 3 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 8a3c63b1fc..1523341b34 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2600,6 +2600,7 @@ void virDomainFSDefFree(virDomainFSDef *def)
g_free(def->sock);
g_free(def->idmap.uidmap);
g_free(def->idmap.gidmap);
+ virBitmapFree(def->caps);
g_free(def);
}
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 2818a9f1f5..b3a0d26cde 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -899,6 +899,7 @@ struct _virDomainFSDef {
virDomainIdMapDef idmap;
virDomainVirtioOptions *virtio;
virObject *privateData;
+ virBitmap *caps;
};
diff --git a/src/qemu/qemu_vhost_user.c b/src/qemu/qemu_vhost_user.c
index 0294daab80..de3ef640a3 100644
--- a/src/qemu/qemu_vhost_user.c
+++ b/src/qemu/qemu_vhost_user.c
@@ -22,6 +22,7 @@
#include "qemu_vhost_user.h"
#include "qemu_interop_config.h"
+#include "virbitmap.h"
#include "virjson.h"
#include "virlog.h"
#include "viralloc.h"
@@ -90,6 +91,12 @@ VIR_ENUM_IMPL(qemuVhostUserGPUFeature,
"render-node",
);
+VIR_ENUM_IMPL(qemuVhostUserFSFeature,
+ QEMU_VHOST_USER_FS_FEATURE_LAST,
+ "migrate-precopy",
+ "separate-options",
+);
+
typedef struct _qemuVhostUserGPU qemuVhostUserGPU;
struct _qemuVhostUserGPU {
size_t nfeatures;
@@ -414,6 +421,52 @@ qemuVhostUserFillDomainGPU(virQEMUDriver *driver,
return ret;
}
+int
+qemuVhostUserFillFSCapabilities(virBitmap **caps,
+ const char *binary)
+{
+ g_autoptr(virJSONValue) doc = NULL;
+ g_autofree char *output = NULL;
+ g_autoptr(virCommand) cmd = NULL;
+ virJSONValue *featuresJSON;
+ size_t nfeatures;
+ size_t i;
+ g_autoptr(virBitmap) features = NULL;
+
+ cmd = virCommandNewArgList(binary, "--print-capabilities", NULL);
+ virCommandSetOutputBuffer(cmd, &output);
+ if (virCommandRun(cmd, NULL) < 0)
+ return -2;
+
+ if (!(doc = virJSONValueFromString(output))) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("unable to parse json capabilities '%1$s'"),
+ binary);
+ return -1;
+ }
+
+ /* Older virtiofsd did not print any features */
+ if (!(featuresJSON = virJSONValueObjectGetArray(doc, "features")))
+ return 0;
+
+ features = virBitmapNew(0);
+ nfeatures = virJSONValueArraySize(featuresJSON);
+
+ for (i = 0; i < nfeatures; i++) {
+ virJSONValue *item = virJSONValueArrayGet(featuresJSON, i);
+ const char *tmpStr = virJSONValueGetString(item);
+ int tmp;
+
+ if ((tmp = qemuVhostUserFSFeatureTypeFromString(tmpStr)) < 0) {
+ VIR_DEBUG("ignoring unknown virtiofs feature '%s'", tmpStr);
+ continue;
+ }
+ virBitmapSetBitExpand(features, tmp);
+ }
+
+ *caps = g_steal_pointer(&features);
+ return 0;
+}
int
qemuVhostUserFillDomainFS(virQEMUDriver *driver,
@@ -435,6 +488,11 @@ qemuVhostUserFillDomainFS(virQEMUDriver *driver,
continue;
fs->binary = g_strdup(vu->binary);
+
+ /* skip binaries that can't report their capabilities */
+ if (qemuVhostUserFillFSCapabilities(&fs->caps,
+ vu->binary) == -1)
+ continue;
break;
}
diff --git a/src/qemu/qemu_vhost_user.h b/src/qemu/qemu_vhost_user.h
index d1aa6ca189..c39fbfebe8 100644
--- a/src/qemu/qemu_vhost_user.h
+++ b/src/qemu/qemu_vhost_user.h
@@ -46,3 +46,14 @@ qemuVhostUserFillDomainGPU(virQEMUDriver *driver,
int
qemuVhostUserFillDomainFS(virQEMUDriver *driver,
virDomainFSDef *fs);
+
+int
+qemuVhostUserFillFSCapabilities(virBitmap **caps,
+ const char *binary);
+typedef enum {
+ QEMU_VHOST_USER_FS_FEATURE_MIGRATE_PRECOPY = 0,
+ QEMU_VHOST_USER_FS_FEATURE_SEPARATE_OPTIONS,
+ QEMU_VHOST_USER_FS_FEATURE_LAST
+} qemuVhostUserFSFeature;
+
+VIR_ENUM_DECL(qemuVhostUserFSFeature);
diff --git a/src/qemu/qemu_virtiofs.c b/src/qemu/qemu_virtiofs.c
index 78897d8177..0df8d67b1b 100644
--- a/src/qemu/qemu_virtiofs.c
+++ b/src/qemu/qemu_virtiofs.c
@@ -446,8 +446,13 @@ qemuVirtioFSPrepareDomain(virQEMUDriver *driver,
if (fs->sock)
return 0;
- if (!fs->binary && qemuVhostUserFillDomainFS(driver, fs) < 0)
- return -1;
+ if (fs->binary) {
+ if (qemuVhostUserFillFSCapabilities(&fs->caps, fs->binary) < 0)
+ return -1;
+ } else {
+ if (qemuVhostUserFillDomainFS(driver, fs) < 0)
+ return -1;
+ }
if (!driver->privileged && !fs->idmap.uidmap) {
if (qemuVirtioFSPrepareIdMap(fs) < 0)
diff --git a/tests/qemuvhostuserdata/usr/share/qemu/vhost-user/50-qemu-virtiofsd.json b/tests/qemuvhostuserdata/usr/share/qemu/vhost-user/50-qemu-virtiofsd.json
index b908bc6b30..5cf2c986f8 100644
--- a/tests/qemuvhostuserdata/usr/share/qemu/vhost-user/50-qemu-virtiofsd.json
+++ b/tests/qemuvhostuserdata/usr/share/qemu/vhost-user/50-qemu-virtiofsd.json
@@ -1,5 +1,5 @@
{
"description": "virtiofsd vhost-user-fs",
"type": "fs",
- "binary": "/usr/libexec/qemu/vhost-user/test-vhost-user-gpu"
+ "binary": "/usr/libexec/qemu/vhost-user/test-virtiofsd"
}
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 8e0d47c6fd..a3a399e16c 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1079,6 +1079,8 @@ mymain(void)
virFileWrapperAddPrefix("/usr/libexec/qemu/vhost-user",
abs_srcdir "/qemuvhostuserdata/usr/libexec/qemu/vhost-user");
+ virFileWrapperAddPrefix("/usr/libexec/virtiofsd",
+ abs_srcdir "/qemuvhostuserdata/usr/libexec/qemu/vhost-user/test-virtiofsd");
if (!(conn = virGetConnect()))
return EXIT_FAILURE;
--
2.45.2

View File

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

View File

@ -0,0 +1,51 @@
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

@ -0,0 +1,139 @@
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,52 +0,0 @@
From 5f73e98cc870b13a053fd99d4d2707fed50e57d0 Mon Sep 17 00:00:00 2001
Message-ID: <5f73e98cc870b13a053fd99d4d2707fed50e57d0.1720800605.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 4 Jul 2024 15:54:30 +0200
Subject: [PATCH] qemu: migration: allow migration for virtiofs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Allow migration if the "migrate-precopy" capability is present or
libvirt is not the one running the virtiofs daemon.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit d94b31a68ab94f27f8a1d6d216817b49881c38ae)
https://issues.redhat.com/browse/RHEL-40135
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_migration.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 26c082fc08..4fd7a0aafb 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -39,6 +39,7 @@
#include "qemu_slirp.h"
#include "qemu_block.h"
#include "qemu_tpm.h"
+#include "qemu_vhost_user.h"
#include "domain_audit.h"
#include "virlog.h"
@@ -1576,8 +1577,12 @@ qemuMigrationSrcIsAllowed(virDomainObj *vm,
virDomainFSDef *fs = vm->def->fss[i];
if (fs->fsdriver == VIR_DOMAIN_FS_DRIVER_TYPE_VIRTIOFS) {
- virReportError(VIR_ERR_OPERATION_INVALID, "%s",
- _("migration with virtiofs device is not supported"));
+ if (fs->sock ||
+ virBitmapIsBitSet(fs->caps, QEMU_VHOST_USER_FS_FEATURE_MIGRATE_PRECOPY))
+ continue;
+
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+ _("migration with this virtiofs device is not supported"));
return false;
}
}
--
2.45.2

View File

@ -0,0 +1,160 @@
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

@ -0,0 +1,109 @@
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

@ -0,0 +1,106 @@
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

@ -0,0 +1,94 @@
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

@ -0,0 +1,71 @@
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

@ -0,0 +1,73 @@
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

@ -0,0 +1,132 @@
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

@ -0,0 +1,82 @@
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,49 +0,0 @@
From bbe550bf0b916cfd71bb0accfe818fc3a18ed569 Mon Sep 17 00:00:00 2001
Message-ID: <bbe550bf0b916cfd71bb0accfe818fc3a18ed569.1723196972.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Tue, 23 Jul 2024 14:14:13 +0200
Subject: [PATCH] qemu: virtiofs: cache: use 'never' instead of 'none'
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The new option style renamed one of the cache modes.
https://issues.redhat.com/browse/RHEL-50329
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 8d3b2397372111d15d6b79138c5c5a80203f85f5)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_virtiofs.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_virtiofs.c b/src/qemu/qemu_virtiofs.c
index 0e3c7dbb58..c7be2766a2 100644
--- a/src/qemu/qemu_virtiofs.c
+++ b/src/qemu/qemu_virtiofs.c
@@ -147,10 +147,20 @@ qemuVirtioFSBuildCommandLine(virQEMUDriverConfig *cfg,
virCommandAddArg(cmd, "--shared-dir");
virCommandAddArg(cmd, fs->src->path);
- if (fs->cache) {
+ switch (fs->cache) {
+ case VIR_DOMAIN_FS_CACHE_MODE_DEFAULT:
+ case VIR_DOMAIN_FS_CACHE_MODE_LAST:
+ break;
+ case VIR_DOMAIN_FS_CACHE_MODE_NONE:
+ virCommandAddArg(cmd, "--cache");
+ virCommandAddArg(cmd, "never");
+ break;
+ case VIR_DOMAIN_FS_CACHE_MODE_ALWAYS:
virCommandAddArg(cmd, "--cache");
virCommandAddArg(cmd, virDomainFSCacheModeTypeToString(fs->cache));
+ break;
}
+
if (fs->sandbox) {
virCommandAddArg(cmd, "--sandbox");
virCommandAddArg(cmd, virDomainFSSandboxModeTypeToString(fs->sandbox));
--
2.46.0

View File

@ -0,0 +1,139 @@
From 321a694cb6e4c401f9b2ea130ebae046a3f0c88b Mon Sep 17 00:00:00 2001
Message-ID: <321a694cb6e4c401f9b2ea130ebae046a3f0c88b.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 13:53:36 +0100
Subject: [PATCH] qemuMonitorJSONHandleIOError: Do not munge 'reason' field of
IO error event
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Leave the interpretation of the event to 'qemuProcessHandleIOError()'
which will create it's own variant of the messages for the user-facing
libvirt events. qemuMonitorJSONHandleIOError() will pass through the raw
data it got from qemu.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit f8f8d5a253633aaae93b04d92bdcbed5b954149f)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_monitor.c | 3 ++-
src/qemu/qemu_monitor.h | 2 ++
src/qemu/qemu_monitor_json.c | 12 ++++++------
src/qemu/qemu_process.c | 9 +++++++--
4 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index e98da5fbff..e0161b8e23 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -1130,12 +1130,13 @@ qemuMonitorEmitIOError(qemuMonitor *mon,
const char *device,
const char *nodename,
int action,
+ bool nospace,
const char *reason)
{
VIR_DEBUG("mon=%p", mon);
QEMU_MONITOR_CALLBACK(mon, domainIOError, mon->vm,
- device, nodename, action, reason);
+ device, nodename, action, nospace, reason);
}
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 0ab60f286d..0655802dcc 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -209,6 +209,7 @@ typedef void (*qemuMonitorDomainIOErrorCallback)(qemuMonitor *mon,
const char *device,
const char *nodename,
int action,
+ bool nospace,
const char *reason);
typedef void (*qemuMonitorDomainGraphicsCallback)(qemuMonitor *mon,
virDomainObj *vm,
@@ -453,6 +454,7 @@ void qemuMonitorEmitIOError(qemuMonitor *mon,
const char *device,
const char *nodename,
int action,
+ bool nospace,
const char *reason);
void qemuMonitorEmitGraphics(qemuMonitor *mon,
int phase,
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 345e9383e3..7d202133f7 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -695,8 +695,8 @@ qemuMonitorJSONHandleIOError(qemuMonitor *mon, virJSONValue *data)
const char *device;
const char *nodename;
const char *action;
- const char *reason = "";
- bool nospc = false;
+ const char *reason;
+ bool nospace = false;
int actionID;
/* Throughout here we try our best to carry on upon errors,
@@ -719,16 +719,16 @@ qemuMonitorJSONHandleIOError(qemuMonitor *mon, virJSONValue *data)
}
nodename = virJSONValueObjectGetString(data, "node-name");
-
- if (virJSONValueObjectGetBoolean(data, "nospace", &nospc) == 0 && nospc)
- reason = "enospc";
+ reason = virJSONValueObjectGetString(data, "reason");
+ /* 'nospace' flag is relevant only when true */
+ ignore_value(virJSONValueObjectGetBoolean(data, "nospace", &nospace));
if ((actionID = qemuMonitorIOErrorActionTypeFromString(action)) < 0) {
VIR_WARN("unknown disk io error action '%s'", action);
actionID = VIR_DOMAIN_EVENT_IO_ERROR_NONE;
}
- qemuMonitorEmitIOError(mon, device, nodename, actionID, reason);
+ qemuMonitorEmitIOError(mon, device, nodename, actionID, nospace, reason);
}
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 4083188af4..9ae39c0379 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -827,7 +827,8 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
const char *device,
const char *nodename,
int action,
- const char *reason)
+ bool nospace,
+ const char *reason G_GNUC_UNUSED)
{
qemuDomainObjPrivate *priv;
virObjectEvent *ioErrorEvent = NULL;
@@ -835,6 +836,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
virObjectEvent *lifecycleEvent = NULL;
const char *eventPath = "";
const char *eventAlias = "";
+ const char *eventReason = "";
virDomainDiskDef *disk;
virObjectLock(vm);
@@ -852,8 +854,11 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
eventAlias = disk->info.alias;
}
+ if (nospace)
+ eventReason = "enospc";
+
ioErrorEvent = virDomainEventIOErrorNewFromObj(vm, eventPath, eventAlias, action);
- ioErrorEvent2 = virDomainEventIOErrorReasonNewFromObj(vm, eventPath, eventAlias, action, reason);
+ ioErrorEvent2 = virDomainEventIOErrorReasonNewFromObj(vm, eventPath, eventAlias, action, eventReason);
if (action == VIR_DOMAIN_EVENT_IO_ERROR_PAUSE &&
virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
--
2.48.1

View File

@ -0,0 +1,118 @@
From c987c88930aa84b0b96d06bbd84287a7e62cc812 Mon Sep 17 00:00:00 2001
Message-ID: <c987c88930aa84b0b96d06bbd84287a7e62cc812.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Tue, 28 Jan 2025 10:39:52 +0100
Subject: [PATCH] qemuMonitorJSONHandleIOError: Propagate new 'qom-path' field
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
QEMU commit v9.1.0-1065-ge67b7aef7c added 'qom-path' as an optional
field for the BLOCK_IO_ERROR event. Extract and propagate it as an
alternative to lookup via 'node-name' and 'device' (alias).
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 0525323175253b1fe1a161181e58bd348d9c605b)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_monitor.c | 3 ++-
src/qemu/qemu_monitor.h | 2 ++
src/qemu/qemu_monitor_json.c | 4 +++-
src/qemu/qemu_process.c | 3 ++-
4 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index e0161b8e23..79ff4e2e87 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -1128,6 +1128,7 @@ qemuMonitorEmitWatchdog(qemuMonitor *mon, int action)
void
qemuMonitorEmitIOError(qemuMonitor *mon,
const char *device,
+ const char *qompath,
const char *nodename,
int action,
bool nospace,
@@ -1136,7 +1137,7 @@ qemuMonitorEmitIOError(qemuMonitor *mon,
VIR_DEBUG("mon=%p", mon);
QEMU_MONITOR_CALLBACK(mon, domainIOError, mon->vm,
- device, nodename, action, nospace, reason);
+ device, qompath, nodename, action, nospace, reason);
}
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 0655802dcc..a4818a6aa1 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -207,6 +207,7 @@ typedef void (*qemuMonitorDomainWatchdogCallback)(qemuMonitor *mon,
typedef void (*qemuMonitorDomainIOErrorCallback)(qemuMonitor *mon,
virDomainObj *vm,
const char *device,
+ const char *qompath,
const char *nodename,
int action,
bool nospace,
@@ -452,6 +453,7 @@ void qemuMonitorEmitRTCChange(qemuMonitor *mon, long long offset);
void qemuMonitorEmitWatchdog(qemuMonitor *mon, int action);
void qemuMonitorEmitIOError(qemuMonitor *mon,
const char *device,
+ const char *qompath,
const char *nodename,
int action,
bool nospace,
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 7d202133f7..53648dea8b 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -693,6 +693,7 @@ static void
qemuMonitorJSONHandleIOError(qemuMonitor *mon, virJSONValue *data)
{
const char *device;
+ const char *qompath;
const char *nodename;
const char *action;
const char *reason;
@@ -718,6 +719,7 @@ qemuMonitorJSONHandleIOError(qemuMonitor *mon, virJSONValue *data)
device = NULL;
}
+ qompath = virJSONValueObjectGetString(data, "qom-path");
nodename = virJSONValueObjectGetString(data, "node-name");
reason = virJSONValueObjectGetString(data, "reason");
/* 'nospace' flag is relevant only when true */
@@ -728,7 +730,7 @@ qemuMonitorJSONHandleIOError(qemuMonitor *mon, virJSONValue *data)
actionID = VIR_DOMAIN_EVENT_IO_ERROR_NONE;
}
- qemuMonitorEmitIOError(mon, device, nodename, actionID, nospace, reason);
+ qemuMonitorEmitIOError(mon, device, qompath, nodename, actionID, nospace, reason);
}
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index b0a20328d4..c95b1ecd82 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -825,6 +825,7 @@ static void
qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
virDomainObj *vm,
const char *device,
+ const char *qompath,
const char *nodename,
int action,
bool nospace,
@@ -847,7 +848,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
disk = qemuDomainDiskLookupByNodename(vm->def, priv->backup, nodename, &src);
if (!disk)
- disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, device, NULL);
+ disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, device, qompath);
if (!src && disk)
src = disk->src;
--
2.48.1

View File

@ -0,0 +1,48 @@
From 0ad096e3448a2b6e366995220f4266af34dd9010 Mon Sep 17 00:00:00 2001
Message-ID: <0ad096e3448a2b6e366995220f4266af34dd9010.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Fri, 24 Jan 2025 17:01:34 +0100
Subject: [PATCH] qemuProcessHandleIOError: Log IO errors in the VM log file
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add a log entry to the VM log file for every time we receive an IO error
event from qemu. The log entry is as follows:
2025-01-24 16:03:28.928+0000: IO error device='virtio-disk0' node-name='libvirt-1-storage' reason='other: Input/output error'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 18f8d572be4caaa0c55a8d68a4048ef2360a03c5)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_process.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 6b8a2af4ed..409734d948 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -829,7 +829,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
const char *nodename,
int action,
bool nospace,
- const char *reason G_GNUC_UNUSED)
+ const char *reason)
{
qemuDomainObjPrivate *priv;
virObjectEvent *ioErrorEvent = NULL;
@@ -867,6 +867,9 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
ioErrorEvent2 = virDomainEventIOErrorReasonNewFromObj(vm, eventPath, eventAlias, action, eventReason);
if ((timestamp = virTimeStringNow()) != NULL) {
+ qemuDomainLogAppendMessage(priv->driver, vm, "%s: IO error device='%s' node-name='%s' reason='%s'\n",
+ timestamp, NULLSTR(eventAlias), NULLSTR(nodename), NULLSTR(reason));
+
if (src) {
g_free(src->ioerror_timestamp);
g_free(src->ioerror_message);
--
2.48.1

View File

@ -0,0 +1,55 @@
From d67189b0a37a76b60bab7d9e1f527bf4d984be16 Mon Sep 17 00:00:00 2001
Message-ID: <d67189b0a37a76b60bab7d9e1f527bf4d984be16.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 19:17:16 +0100
Subject: [PATCH] qemuProcessHandleIOError: Populate I/O error reason to
virStorageSource
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Record the last I/O error reason and timestamp which happened with the
corresponding virStorageSource struct.
This will later allow querying the last error e.g. via the
virDomainGetMessages() API.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 300f7e9bd4ee4e043cac1a84059fe4a60b101cf1)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_process.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index c95b1ecd82..6b8a2af4ed 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -840,6 +840,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
const char *eventReason = "";
virDomainDiskDef *disk = NULL;
virStorageSource *src = NULL;
+ g_autofree char *timestamp = NULL;
virObjectLock(vm);
priv = QEMU_DOMAIN_PRIVATE(vm);
@@ -865,6 +866,15 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
ioErrorEvent = virDomainEventIOErrorNewFromObj(vm, eventPath, eventAlias, action);
ioErrorEvent2 = virDomainEventIOErrorReasonNewFromObj(vm, eventPath, eventAlias, action, eventReason);
+ if ((timestamp = virTimeStringNow()) != NULL) {
+ if (src) {
+ g_free(src->ioerror_timestamp);
+ g_free(src->ioerror_message);
+ src->ioerror_timestamp = g_steal_pointer(&timestamp);
+ src->ioerror_message = g_strdup(reason);
+ }
+ }
+
if (action == VIR_DOMAIN_EVENT_IO_ERROR_PAUSE &&
virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
VIR_WARN("Transitioned guest %s to paused state due to IO error", vm->def->name);
--
2.48.1

View File

@ -0,0 +1,64 @@
From 56a472de55c45c97fd5f201073327c2d7c6d43c3 Mon Sep 17 00:00:00 2001
Message-ID: <56a472de55c45c97fd5f201073327c2d7c6d43c3.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Fri, 24 Jan 2025 17:17:51 +0100
Subject: [PATCH] qemuProcessHandleIOError: Prefer lookup by node name
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When qemu reports a node name for an I/O error we should prefer the
lookup by node name instead as it gives us the path to the specific
image which caused the error instead of the top level image path.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 784538a470fe346cb1ab85786b8ece85cbe7ff9f)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_process.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 9ae39c0379..b0a20328d4 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -837,22 +837,26 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
const char *eventPath = "";
const char *eventAlias = "";
const char *eventReason = "";
- virDomainDiskDef *disk;
+ virDomainDiskDef *disk = NULL;
+ virStorageSource *src = NULL;
virObjectLock(vm);
priv = QEMU_DOMAIN_PRIVATE(vm);
- if (device)
+ if (nodename)
+ disk = qemuDomainDiskLookupByNodename(vm->def, priv->backup, nodename, &src);
+
+ if (!disk)
disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, device, NULL);
- else if (nodename)
- disk = qemuDomainDiskLookupByNodename(vm->def, NULL, nodename, NULL);
- else
- disk = NULL;
- if (disk) {
- eventPath = virDomainDiskGetSource(disk);
+ if (!src && disk)
+ src = disk->src;
+
+ if (disk)
eventAlias = disk->info.alias;
- }
+
+ if (src && src->path)
+ eventPath = src->path;
if (nospace)
eventReason = "enospc";
--
2.48.1

View File

@ -0,0 +1,76 @@
From 8ae4a9c8e3f66dd7a94cfa4f12614c7ba3e3b1c3 Mon Sep 17 00:00:00 2001
Message-ID: <8ae4a9c8e3f66dd7a94cfa4f12614c7ba3e3b1c3.1738940190.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Fri, 24 Jan 2025 17:16:35 +0100
Subject: [PATCH] qemuProcessHandleIOError: Refactor to extract 'priv' instead
of 'driver'
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The VM private data will be used in a sub-sequent patch. To minimize
churn, refactor the function before changing the logic.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 72142dcde34dd7e1dfb3ea0d841f567badd80539)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_process.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 7297263d33..c618fbf69c 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -829,7 +829,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
int action,
const char *reason)
{
- virQEMUDriver *driver;
+ qemuDomainObjPrivate *priv;
virObjectEvent *ioErrorEvent = NULL;
virObjectEvent *ioErrorEvent2 = NULL;
virObjectEvent *lifecycleEvent = NULL;
@@ -838,7 +838,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
virDomainDiskDef *disk;
virObjectLock(vm);
- driver = QEMU_DOMAIN_PRIVATE(vm)->driver;
+ priv = QEMU_DOMAIN_PRIVATE(vm);
if (*diskAlias == '\0')
diskAlias = NULL;
@@ -863,7 +863,6 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
if (action == VIR_DOMAIN_EVENT_IO_ERROR_PAUSE &&
virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
- qemuDomainObjPrivate *priv = vm->privateData;
VIR_WARN("Transitioned guest %s to paused state due to IO error", vm->def->name);
if (priv->signalIOError)
@@ -875,7 +874,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
VIR_DOMAIN_EVENT_SUSPENDED_IOERROR);
VIR_FREE(priv->lockState);
- if (virDomainLockProcessPause(driver->lockManager, vm, &priv->lockState) < 0)
+ if (virDomainLockProcessPause(priv->driver->lockManager, vm, &priv->lockState) < 0)
VIR_WARN("Unable to release lease on %s", vm->def->name);
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
@@ -883,9 +882,9 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
}
virObjectUnlock(vm);
- virObjectEventStateQueue(driver->domainEventState, ioErrorEvent);
- virObjectEventStateQueue(driver->domainEventState, ioErrorEvent2);
- virObjectEventStateQueue(driver->domainEventState, lifecycleEvent);
+ virObjectEventStateQueue(priv->driver->domainEventState, ioErrorEvent);
+ virObjectEventStateQueue(priv->driver->domainEventState, ioErrorEvent2);
+ virObjectEventStateQueue(priv->driver->domainEventState, lifecycleEvent);
}
--
2.48.1

View File

@ -0,0 +1,59 @@
From 8a4acd4ce68b416a9de21b3ad7ca976cfc3b01ee Mon Sep 17 00:00:00 2001
Message-ID: <8a4acd4ce68b416a9de21b3ad7ca976cfc3b01ee.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 13:07:24 +0100
Subject: [PATCH] qemuProcessHandleIOError: Rename local variables
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Prefix the helper variables used to supply data to the event by
'event'. Declare them with the default value of an empty string rather
than doing it later.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 590a5765c190230ab3df87e7eda42f621766347b)
https://issues.redhat.com/browse/RHEL-77884
---
src/qemu/qemu_process.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 3861d91228..4083188af4 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -833,8 +833,8 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
virObjectEvent *ioErrorEvent = NULL;
virObjectEvent *ioErrorEvent2 = NULL;
virObjectEvent *lifecycleEvent = NULL;
- const char *srcPath;
- const char *devAlias;
+ const char *eventPath = "";
+ const char *eventAlias = "";
virDomainDiskDef *disk;
virObjectLock(vm);
@@ -848,15 +848,12 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED,
disk = NULL;
if (disk) {
- srcPath = virDomainDiskGetSource(disk);
- devAlias = disk->info.alias;
- } else {
- srcPath = "";
- devAlias = "";
+ eventPath = virDomainDiskGetSource(disk);
+ eventAlias = disk->info.alias;
}
- ioErrorEvent = virDomainEventIOErrorNewFromObj(vm, srcPath, devAlias, action);
- ioErrorEvent2 = virDomainEventIOErrorReasonNewFromObj(vm, srcPath, devAlias, action, reason);
+ ioErrorEvent = virDomainEventIOErrorNewFromObj(vm, eventPath, eventAlias, action);
+ ioErrorEvent2 = virDomainEventIOErrorReasonNewFromObj(vm, eventPath, eventAlias, action, reason);
if (action == VIR_DOMAIN_EVENT_IO_ERROR_PAUSE &&
virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
--
2.48.1

View File

@ -0,0 +1,36 @@
From b6efc51ef60d5aa4ee94a85ad7211ab51034407e Mon Sep 17 00:00:00 2001
Message-ID: <b6efc51ef60d5aa4ee94a85ad7211ab51034407e.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 3 Feb 2025 18:23:29 +0100
Subject: [PATCH] qemuSnapshotForEachQcow2: Don't initialize 'nrollback'
The variable holds the amount of disks to roll back the snapshot for.
The value must be set before the code jumps to the 'rollback:' label so
the best situation is to not initialize it and let the compiler catch
errors rather than initialize the unsigned variable to -1 and let it
crash.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit d15eff63041ace067fa0ea9687c482a0f1dd140f)
https://issues.redhat.com/browse/RHEL-73315
---
src/qemu/qemu_snapshot.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index 80cd54bf33..7c998afe6f 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -290,7 +290,7 @@ qemuSnapshotForEachQcow2(virDomainDef *def,
size_t i;
bool skipped = false;
bool create = STREQ(op, "-c");
- size_t nrollback = -1;
+ size_t nrollback;
virErrorPtr orig_err;
/* pre-checks */
--
2.48.1

View File

@ -1,105 +0,0 @@
From a653c588361672057647d63847421c4c52d33939 Mon Sep 17 00:00:00 2001
Message-ID: <a653c588361672057647d63847421c4c52d33939.1723196972.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 31 Jul 2024 11:34:59 +0200
Subject: [PATCH] qemu_domain: Strip <acpi/> from s390(x) definitions
The s390(x) machines never supported ACPI. That didn't stop users
enabling ACPI in their config. As of libvirt-9.2 (98c4e3d073) with new
enough qemu we reject configs which require ACPI, but qemu can't satisfy
it.
This breaks migration of existing VMs with the old wrong configs to new
libvirt installations.
To address this introduce a post-parse fixup removing the ACPI flag
specifically for s390 machines which do enable it in the definition.
The advantage of doing it in post-parse, rather than simply relaxing the
ABI stability check to allow users providing an fixed XML when migrating
(allowing change of the ACPI flag for s390 in ABI stability check, as it
doesn't impact ABI), is that only the destination installation needs to
be patched in order to preserve migration.
To mitigate the disadvantage of simply stripping it from all s390(x)
configs the hack is not applied when defining or starting a new domain
from the XML, to preserve the error about unsupported configuration.
Resolves: https://issues.redhat.com/browse/RHEL-49516
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
(cherry picked from commit 4ba4f659e42a30c3fa8ece414616a23a992acfaa)
---
src/qemu/qemu_domain.c | 49 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 1a90311ca5..1bafe3708a 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5013,6 +5013,53 @@ qemuDomainDefPostParseBasic(virDomainDef *def,
}
+/**
+ * qemuDomainDefACPIPostParse:
+ * @def: domain definition
+ * @qemuCaps: qemu capabilities object
+ *
+ * Fixup the use of ACPI flag on certain architectures that never supported it
+ * and users for some reason used it, which would break migration to newer
+ * libvirt versions which check whether given machine type supports ACPI.
+ *
+ * The fixup is done in post-parse as it's hard to update the ABI stability
+ * check on source of the migration.
+ */
+static void
+qemuDomainDefACPIPostParse(virDomainDef *def,
+ virQEMUCaps *qemuCaps,
+ unsigned int parseFlags)
+{
+ /* Only cases when ACPI is enabled need to be fixed up */
+ if (def->features[VIR_DOMAIN_FEATURE_ACPI] != VIR_TRISTATE_SWITCH_ON)
+ return;
+
+ /* Strip the <acpi/> feature only for non-fresh configs, in order to still
+ * produce an error if the feature is present in a newly defined one.
+ *
+ * The use of the VIR_DOMAIN_DEF_PARSE_ABI_UPDATE looks counter-intuitive,
+ * but it's used only in qemuDomainCreateXML/qemuDomainDefineXMLFlags APIs
+ * */
+ if (parseFlags & VIR_DOMAIN_DEF_PARSE_ABI_UPDATE)
+ return;
+
+ /* This fixup is applicable _only_ on architectures which were present as of
+ * libvirt-9.2 and *never* supported ACPI. The fixup is currently done only
+ * for existing users of s390(x) to fix migration for configs which had
+ * <acpi/> despite being ignored.
+ */
+ if (def->os.arch != VIR_ARCH_S390 &&
+ def->os.arch != VIR_ARCH_S390X)
+ return;
+
+ /* To be sure, we only strip ACPI if given machine type doesn't support it */
+ if (virQEMUCapsMachineSupportsACPI(qemuCaps, def->virtType, def->os.machine) != VIR_TRISTATE_BOOL_NO)
+ return;
+
+ def->features[VIR_DOMAIN_FEATURE_ACPI] = VIR_TRISTATE_SWITCH_ABSENT;
+}
+
+
static int
qemuDomainDefPostParse(virDomainDef *def,
unsigned int parseFlags,
@@ -5033,6 +5080,8 @@ qemuDomainDefPostParse(virDomainDef *def,
if (qemuDomainDefMachinePostParse(def, qemuCaps) < 0)
return -1;
+ qemuDomainDefACPIPostParse(def, qemuCaps, parseFlags);
+
if (qemuDomainDefBootPostParse(def, driver, parseFlags) < 0)
return -1;
--
2.46.0

View File

@ -0,0 +1,38 @@
From cfb90039fe0972c316fc28ca1d6bcc6343431fc3 Mon Sep 17 00:00:00 2001
Message-ID: <cfb90039fe0972c316fc28ca1d6bcc6343431fc3.1739824249.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 15 Jan 2025 16:02:00 +0100
Subject: [PATCH] qemu_migration: Do not automatically resume domain after I/O
error
When an I/O error happens (causing a domain to be paused) during live
migration which is later cancelled by a user, trying to resume the
domain doesn't make sense.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 3766891c5954c53370d7eb9c7a0a8e6ba3854ca4)
https://issues.redhat.com/browse/RHEL-79168
---
src/qemu/qemu_migration.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index fe0b9fc672..4112e95a1e 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -241,6 +241,11 @@ qemuMigrationSrcRestoreDomainState(virQEMUDriver *driver, virDomainObj *vm)
reason == VIR_DOMAIN_PAUSED_POSTCOPY_FAILED)
return;
+ if (reason == VIR_DOMAIN_PAUSED_IOERROR) {
+ VIR_DEBUG("Domain is paused due to I/O error, skipping resume");
+ return;
+ }
+
VIR_DEBUG("Restoring pre-migration state due to migration error");
/* we got here through some sort of failure; start the domain again */
--
2.48.1

View File

@ -0,0 +1,57 @@
From 50925d10476e7a61d25de6e501a4954bb427c327 Mon Sep 17 00:00:00 2001
Message-ID: <50925d10476e7a61d25de6e501a4954bb427c327.1737030652.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Fri, 10 Jan 2025 18:25:20 +0100
Subject: [PATCH] qemu_migration: Do not consider post-copy active in
postcopy-recover
The postcopy-recover migration state in QEMU means a connection for the
migration stream was established. Depending on the schedulers on both
hosts a relative timing of the corresponding MIGRATION event on the
source host and the destination host may differ. Specifically it's
possible that the source sees postcopy-recover while the destination is
still in postcopy-paused.
Currently the Perform phase on the source host ends when we get
postcopy-recover event and the Finish phase on the destination host is
called. If this is fast enough we can still see postcopy-paused state
when the Finish phase starts waiting for migration to complete. This is
interpreted as a failure and reported back to the caller. Even though
the recovery may actually start just a few moments later.
To avoid this race we now don't consider post-copy migration active in
postcopy-recover state and keep waiting for postcopy-active event (in
the success path). Thus the Finish phase is entered only after the
migration switches to postcopy-active. In this state QEMU guarantees the
destination already switched at least to postcopy-recover and we won't
be confused be seeing an old postcopy-failed state.
https://issues.redhat.com/browse/RHEL-73085
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com
(cherry picked from commit a71985f6f3fec52e2a6f4e3991ed9bf6280bdb4b)
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_migration.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 26a92d8ee2..b2b172a26c 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1872,11 +1872,11 @@ qemuMigrationUpdateJobType(virDomainJobData *jobData)
switch ((qemuMonitorMigrationStatus) priv->stats.mig.status) {
case QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY:
- case QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY_RECOVER:
jobData->status = VIR_DOMAIN_JOB_STATUS_POSTCOPY;
break;
case QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY_RECOVER_SETUP:
+ case QEMU_MONITOR_MIGRATION_STATUS_POSTCOPY_RECOVER:
jobData->status = VIR_DOMAIN_JOB_STATUS_POSTCOPY_RECOVER;
break;
--
2.47.1

View File

@ -0,0 +1,110 @@
From 68d485113af90e52dfa52c40f2192b524f31de4f Mon Sep 17 00:00:00 2001
Message-ID: <68d485113af90e52dfa52c40f2192b524f31de4f.1739824249.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 15 Jan 2025 15:59:22 +0100
Subject: [PATCH] qemu_migration: Refactor qemuMigrationSrcRestoreDomainState
None of the callers really care about the return value so we can drop it
and simplify the code a bit.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit e46e64be501cd670a3f224fabd97705fb01c6f85)
https://issues.redhat.com/browse/RHEL-79168
---
src/qemu/qemu_migration.c | 64 +++++++++++++++++----------------------
1 file changed, 28 insertions(+), 36 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index b2b172a26c..fe0b9fc672 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -219,57 +219,49 @@ qemuMigrationSrcStoreDomainState(virDomainObj *vm)
priv->preMigrationState, vm);
}
-/* Returns true if the domain was resumed, false otherwise */
-static bool
+
+static void
qemuMigrationSrcRestoreDomainState(virQEMUDriver *driver, virDomainObj *vm)
{
qemuDomainObjPrivate *priv = vm->privateData;
+ virDomainState preMigrationState = priv->preMigrationState;
int reason;
virDomainState state = virDomainObjGetState(vm, &reason);
- bool ret = false;
+
+ priv->preMigrationState = VIR_DOMAIN_NOSTATE;
VIR_DEBUG("driver=%p, vm=%p, pre-mig-state=%s, state=%s, reason=%s",
driver, vm,
- virDomainStateTypeToString(priv->preMigrationState),
+ virDomainStateTypeToString(preMigrationState),
virDomainStateTypeToString(state),
virDomainStateReasonToString(state, reason));
- if (state != VIR_DOMAIN_PAUSED ||
+ if (preMigrationState != VIR_DOMAIN_RUNNING ||
+ state != VIR_DOMAIN_PAUSED ||
reason == VIR_DOMAIN_PAUSED_POSTCOPY_FAILED)
- goto cleanup;
+ return;
- if (priv->preMigrationState == VIR_DOMAIN_RUNNING) {
- /* This is basically the only restore possibility that's safe
- * and we should attempt to do */
-
- VIR_DEBUG("Restoring pre-migration state due to migration error");
-
- /* we got here through some sort of failure; start the domain again */
- if (qemuProcessStartCPUs(driver, vm,
- VIR_DOMAIN_RUNNING_MIGRATION_CANCELED,
- VIR_ASYNC_JOB_MIGRATION_OUT) < 0) {
- /* Hm, we already know we are in error here. We don't want to
- * overwrite the previous error, though, so we just throw something
- * to the logs and hope for the best */
- VIR_ERROR(_("Failed to resume guest %1$s after failure"), vm->def->name);
- if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_PAUSED) {
- virObjectEvent *event;
-
- virDomainObjSetState(vm, VIR_DOMAIN_PAUSED,
- VIR_DOMAIN_PAUSED_API_ERROR);
- event = virDomainEventLifecycleNewFromObj(vm,
- VIR_DOMAIN_EVENT_SUSPENDED,
- VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR);
- virObjectEventStateQueue(driver->domainEventState, event);
- }
- goto cleanup;
+ VIR_DEBUG("Restoring pre-migration state due to migration error");
+
+ /* we got here through some sort of failure; start the domain again */
+ if (qemuProcessStartCPUs(driver, vm,
+ VIR_DOMAIN_RUNNING_MIGRATION_CANCELED,
+ VIR_ASYNC_JOB_MIGRATION_OUT) < 0) {
+ /* Hm, we already know we are in error here. We don't want to
+ * overwrite the previous error, though, so we just throw something
+ * to the logs and hope for the best */
+ VIR_ERROR(_("Failed to resume guest %1$s after failure"), vm->def->name);
+ if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_PAUSED) {
+ virObjectEvent *event;
+
+ virDomainObjSetState(vm, VIR_DOMAIN_PAUSED,
+ VIR_DOMAIN_PAUSED_API_ERROR);
+ event = virDomainEventLifecycleNewFromObj(vm,
+ VIR_DOMAIN_EVENT_SUSPENDED,
+ VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR);
+ virObjectEventStateQueue(driver->domainEventState, event);
}
- ret = true;
}
-
- cleanup:
- priv->preMigrationState = VIR_DOMAIN_NOSTATE;
- return ret;
}
--
2.48.1

View File

@ -0,0 +1,164 @@
From 12e160e847dac7ef71a0eb09f862b544cb49f76f Mon Sep 17 00:00:00 2001
Message-ID: <12e160e847dac7ef71a0eb09f862b544cb49f76f.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 6 Feb 2025 15:55:37 +0100
Subject: [PATCH] qemuxmlconftest: Add testing of FDs with 'writable' flag in
'disk-source-fd'
Add few examples of fd groups with the 'writable' flag set, when passing
a single FD. Notably as a top level image of a readonly disk (even when
that doesn't make much sense) and also as a base image of a chain.
Note that this documents a status quo of a bug fixed in upcoming patch.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 7a119483a361a3ab814e4e07ccac7b13b0cbfbf7)
https://issues.redhat.com/browse/RHEL-37519
---
.../disk-source-fd.x86_64-latest.args | 36 +++++++++++--------
.../disk-source-fd.x86_64-latest.xml | 21 +++++++++--
tests/qemuxmlconfdata/disk-source-fd.xml | 16 +++++++--
tests/qemuxmlconftest.c | 3 ++
4 files changed, 57 insertions(+), 19 deletions(-)
diff --git a/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.args b/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.args
index 1341b7d032..d77b3ca505 100644
--- a/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.args
@@ -27,21 +27,27 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-no-shutdown \
-boot strict=on \
-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
--add-fd set=2,fd=200,opaque=libvirt-4-storage0 \
--add-fd set=2,fd=205,opaque=libvirt-4-storage1 \
--blockdev '{"driver":"file","filename":"/dev/fdset/2","node-name":"libvirt-4-storage","auto-read-only":true,"discard":"unmap"}' \
--blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"qcow2","file":"libvirt-4-storage"}' \
--device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x2","drive":"libvirt-4-format","id":"virtio-disk4","bootindex":1}' \
--blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/rhel7.1484071876","node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}' \
--blockdev '{"node-name":"libvirt-3-format","read-only":true,"driver":"qcow2","file":"libvirt-3-storage","backing":null}' \
--add-fd set=1,fd=247,opaque=libvirt-2-storage0 \
--add-fd set=1,fd=248,opaque=libvirt-2-storage1 \
--blockdev '{"driver":"file","filename":"/dev/fdset/1","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
--blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"qcow2","file":"libvirt-2-storage","backing":"libvirt-3-format"}' \
--add-fd set=0,fd=204,opaque=libvirt-1-storage0 \
--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":false,"driver":"qcow2","file":"libvirt-1-storage","backing":"libvirt-2-format"}' \
--device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x3","drive":"libvirt-1-format","id":"virtio-disk5"}' \
+-add-fd set=5,fd=200,opaque=libvirt-6-storage0 \
+-add-fd set=5,fd=205,opaque=libvirt-6-storage1 \
+-blockdev '{"driver":"file","filename":"/dev/fdset/5","node-name":"libvirt-6-storage","auto-read-only":true,"discard":"unmap"}' \
+-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}' \
+-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"}' \
+-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"}' \
+-device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x3","drive":"libvirt-3-format","id":"virtio-disk5"}' \
+-add-fd set=1,fd=207,opaque=libvirt-2-storage0 \
+-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"}' \
-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 \
diff --git a/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.xml b/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.xml
index 9ab5e9443f..d9917c7d53 100644
--- a/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/disk-source-fd.x86_64-latest.xml
@@ -30,18 +30,35 @@
<format type='qcow2'/>
<source file='/var/lib/libvirt/images/rhel7.1484071877' fdgroup='testgroup6'/>
<backingStore type='file'>
- <format type='qcow2'/>
- <source file='/var/lib/libvirt/images/rhel7.1484071876'/>
+ <format type='raw'/>
+ <source file='/var/lib/libvirt/images/rhel7.1484071876' fdgroup='raw-rw-base'/>
<backingStore/>
</backingStore>
</backingStore>
<target dev='vdf' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</disk>
+ <disk type='file' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source file='/path/to/cdimage-ro' fdgroup='cdimage-ro'/>
+ <target dev='hda' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='file' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source file='/path/to/cdimage-rw' fdgroup='cdimage-rw'/>
+ <target dev='hdb' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='0' target='0' unit='1'/>
+ </disk>
<controller type='usb' index='0' model='piix3-uhci'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'/>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<audio id='1' type='none'/>
diff --git a/tests/qemuxmlconfdata/disk-source-fd.xml b/tests/qemuxmlconfdata/disk-source-fd.xml
index d8c47fa364..93a3fcfbf7 100644
--- a/tests/qemuxmlconfdata/disk-source-fd.xml
+++ b/tests/qemuxmlconfdata/disk-source-fd.xml
@@ -19,6 +19,18 @@
<source file='/path/to/blah' fdgroup='testgroup2'/>
<target dev='vde' bus='virtio'/>
</disk>
+ <disk type='file' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source file='/path/to/cdimage-ro' fdgroup='cdimage-ro'/>
+ <readonly/>
+ <target dev='hda' bus='ide'/>
+ </disk>
+ <disk type='file' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source file='/path/to/cdimage-rw' fdgroup='cdimage-rw'/>
+ <readonly/>
+ <target dev='hdb' bus='ide'/>
+ </disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/rhel7.1484071880' fdgroup='testgroup5'/>
@@ -26,8 +38,8 @@
<format type='qcow2'/>
<source file='/var/lib/libvirt/images/rhel7.1484071877' fdgroup='testgroup6'/>
<backingStore type='file'>
- <format type='qcow2'/>
- <source file='/var/lib/libvirt/images/rhel7.1484071876'/>
+ <format type='raw'/>
+ <source file='/var/lib/libvirt/images/rhel7.1484071876' fdgroup='raw-rw-base'/>
<backingStore/>
</backingStore>
</backingStore>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 7da622e9be..821d9b1048 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1655,6 +1655,9 @@ mymain(void)
DO_TEST_CAPS_ARCH_LATEST_FULL("disk-source-fd", "x86_64",
ARG_FD_GROUP, "testgroup2", false, 2, 200, 205,
ARG_FD_GROUP, "testgroup5", false, 1, 204,
+ ARG_FD_GROUP, "cdimage-ro", false, 1, 207,
+ ARG_FD_GROUP, "cdimage-rw", true, 1, 208,
+ ARG_FD_GROUP, "raw-rw-base", true, 1, 209,
ARG_FD_GROUP, "testgroup6", false, 2, 247, 248);
DO_TEST_CAPS_LATEST("disk-slices");
--
2.48.1

View File

@ -1,435 +0,0 @@
From 374d2bbe544224e7e31ac8ce92e1d42e60bdb44e Mon Sep 17 00:00:00 2001
Message-ID: <374d2bbe544224e7e31ac8ce92e1d42e60bdb44e.1723196972.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 31 Jul 2024 12:38:23 +0200
Subject: [PATCH] qemuxmlconftest: Add tests for the ACPI stripping hack on
s390
Replace the 'misc-acpi' case by testing a bunch of architectures for how
ACPI is handled including a test for the s390 ACPI strip hack added in
previous commit.
The input files are adapted from the corresponding '-minimal.xml' files.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
(cherry picked from commit 432e442ca8eeb4ed8c0dcc3a3c7d723f85b38c40)
https://issues.redhat.com/browse/RHEL-49516
---
.../aarch64-noacpi-acpi.aarch64-latest.err | 1 +
tests/qemuxmlconfdata/aarch64-noacpi-acpi.xml | 18 ++++++++
.../misc-acpi.x86_64-latest.args | 34 ---------------
.../misc-acpi.x86_64-latest.xml | 41 -------------------
tests/qemuxmlconfdata/misc-acpi.xml | 33 ---------------
.../riscv64-virt-acpi.riscv64-latest.args | 33 +++++++++++++++
.../riscv64-virt-acpi.riscv64-latest.xml | 36 ++++++++++++++++
tests/qemuxmlconfdata/riscv64-virt-acpi.xml | 15 +++++++
...s390x-ccw-acpi.s390x-latest.abi-update.err | 1 +
.../s390x-ccw-acpi.s390x-latest.args | 32 +++++++++++++++
.../s390x-ccw-acpi.s390x-latest.xml | 27 ++++++++++++
tests/qemuxmlconfdata/s390x-ccw-acpi.xml | 15 +++++++
tests/qemuxmlconftest.c | 18 +++++++-
13 files changed, 195 insertions(+), 109 deletions(-)
create mode 100644 tests/qemuxmlconfdata/aarch64-noacpi-acpi.aarch64-latest.err
create mode 100644 tests/qemuxmlconfdata/aarch64-noacpi-acpi.xml
delete mode 100644 tests/qemuxmlconfdata/misc-acpi.x86_64-latest.args
delete mode 100644 tests/qemuxmlconfdata/misc-acpi.x86_64-latest.xml
delete mode 100644 tests/qemuxmlconfdata/misc-acpi.xml
create mode 100644 tests/qemuxmlconfdata/riscv64-virt-acpi.riscv64-latest.args
create mode 100644 tests/qemuxmlconfdata/riscv64-virt-acpi.riscv64-latest.xml
create mode 100644 tests/qemuxmlconfdata/riscv64-virt-acpi.xml
create mode 100644 tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.abi-update.err
create mode 100644 tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.args
create mode 100644 tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.xml
create mode 100644 tests/qemuxmlconfdata/s390x-ccw-acpi.xml
diff --git a/tests/qemuxmlconfdata/aarch64-noacpi-acpi.aarch64-latest.err b/tests/qemuxmlconfdata/aarch64-noacpi-acpi.aarch64-latest.err
new file mode 100644
index 0000000000..5f379d56ce
--- /dev/null
+++ b/tests/qemuxmlconfdata/aarch64-noacpi-acpi.aarch64-latest.err
@@ -0,0 +1 @@
+unsupported configuration: machine type 'borzoi' does not support ACPI
diff --git a/tests/qemuxmlconfdata/aarch64-noacpi-acpi.xml b/tests/qemuxmlconfdata/aarch64-noacpi-acpi.xml
new file mode 100644
index 0000000000..10dbeabd6d
--- /dev/null
+++ b/tests/qemuxmlconfdata/aarch64-noacpi-acpi.xml
@@ -0,0 +1,18 @@
+<domain type='kvm'>
+ <name>aarch64test</name>
+ <uuid>6ba410c5-1e5c-4d57-bee7-2228e7ffa32f</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <!-- machine type doesn't matter as long as it has no ACPI -->
+ <type arch='aarch64' machine='borzoi'>hvm</type>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <cpu mode='host-passthrough'/>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/misc-acpi.x86_64-latest.args b/tests/qemuxmlconfdata/misc-acpi.x86_64-latest.args
deleted file mode 100644
index c4e09c0af2..0000000000
--- a/tests/qemuxmlconfdata/misc-acpi.x86_64-latest.args
+++ /dev/null
@@ -1,34 +0,0 @@
-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 \
--device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
--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}' \
--audiodev '{"id":"audio1","driver":"none"}' \
--sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
--msg timestamp=on
diff --git a/tests/qemuxmlconfdata/misc-acpi.x86_64-latest.xml b/tests/qemuxmlconfdata/misc-acpi.x86_64-latest.xml
deleted file mode 100644
index 176926bb60..0000000000
--- a/tests/qemuxmlconfdata/misc-acpi.x86_64-latest.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<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>
- <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>
- <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='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/misc-acpi.xml b/tests/qemuxmlconfdata/misc-acpi.xml
deleted file mode 100644
index 59fbe471ff..0000000000
--- a/tests/qemuxmlconfdata/misc-acpi.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<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>
- <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>
- <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'/>
- <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/qemuxmlconfdata/riscv64-virt-acpi.riscv64-latest.args b/tests/qemuxmlconfdata/riscv64-virt-acpi.riscv64-latest.args
new file mode 100644
index 0000000000..fcb80b009e
--- /dev/null
+++ b/tests/qemuxmlconfdata/riscv64-virt-acpi.riscv64-latest.args
@@ -0,0 +1,33 @@
+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-riscv64 \
+-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 virt,usb=off,dump-guest-core=off,memory-backend=riscv_virt_board.ram \
+-accel tcg \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"riscv_virt_board.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-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":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x1"}' \
+-device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x1.0x1"}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.1","addr":"0x0"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/riscv64-virt-acpi.riscv64-latest.xml b/tests/qemuxmlconfdata/riscv64-virt-acpi.riscv64-latest.xml
new file mode 100644
index 0000000000..075708df9c
--- /dev/null
+++ b/tests/qemuxmlconfdata/riscv64-virt-acpi.riscv64-latest.xml
@@ -0,0 +1,36 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='riscv64' machine='virt'>hvm</type>
+ <boot dev='hd'/>
+ </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-riscv64</emulator>
+ <controller type='pci' index='0' model='pcie-root'/>
+ <controller type='pci' index='1' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='1' port='0x8'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
+ </controller>
+ <controller type='pci' index='2' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='2' port='0x9'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <audio id='1' type='none'/>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
+ </memballoon>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/riscv64-virt-acpi.xml b/tests/qemuxmlconfdata/riscv64-virt-acpi.xml
new file mode 100644
index 0000000000..72fc0d8e1c
--- /dev/null
+++ b/tests/qemuxmlconfdata/riscv64-virt-acpi.xml
@@ -0,0 +1,15 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory>4194304</memory>
+ <vcpu>4</vcpu>
+ <os>
+ <type arch='riscv64' machine='virt'>hvm</type>
+ </os>
+ <features>
+ <acpi/>
+ </features>
+ <devices>
+ <emulator>/usr/bin/qemu-system-riscv64</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.abi-update.err b/tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.abi-update.err
new file mode 100644
index 0000000000..4ca9af1de0
--- /dev/null
+++ b/tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.abi-update.err
@@ -0,0 +1 @@
+unsupported configuration: machine type 's390-ccw-virtio' does not support ACPI
diff --git a/tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.args b/tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.args
new file mode 100644
index 0000000000..84098e580e
--- /dev/null
+++ b/tests/qemuxmlconfdata/s390x-ccw-acpi.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 tcg \
+-cpu qemu \
+-m size=4194304k \
+-object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":4294967296}' \
+-overcommit mem-lock=off \
+-smp 4,sockets=4,cores=1,threads=1 \
+-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
+-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/s390x-ccw-acpi.s390x-latest.xml b/tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.xml
new file mode 100644
index 0000000000..df8e578212
--- /dev/null
+++ b/tests/qemuxmlconfdata/s390x-ccw-acpi.s390x-latest.xml
@@ -0,0 +1,27 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu</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-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/s390x-ccw-acpi.xml b/tests/qemuxmlconfdata/s390x-ccw-acpi.xml
new file mode 100644
index 0000000000..b7be060c66
--- /dev/null
+++ b/tests/qemuxmlconfdata/s390x-ccw-acpi.xml
@@ -0,0 +1,15 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid>
+ <memory>4194304</memory>
+ <vcpu>4</vcpu>
+ <features>
+ <acpi/>
+ </features>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ </devices>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index a3a399e16c..0f2afad6c4 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1740,7 +1740,23 @@ mymain(void)
DO_TEST_CAPS_LATEST("input-usbmouse");
DO_TEST_CAPS_LATEST("input-usbtablet");
- DO_TEST_CAPS_LATEST("misc-acpi");
+
+ /* tests for ACPI support handling:
+ * - existing positive test cases enabling ACPI for aarch64/x86_64/loongarch:
+ * - firmware-manual-efi-acpi-q35
+ * - firmware-manual-efi-acpi-aarch64
+ * - firmware-auto-efi-loongarch64
+ *
+ * - negative case for aarch64 with 'borzoi' machine not supporting ACPI
+ *
+ * - s390x has hack to strip ACPI to preserve migration of old configs,
+ * but should produce error when ABI_UPDATE is requested
+ */
+ DO_TEST_CAPS_ARCH_LATEST_PARSE_ERROR("aarch64-noacpi-acpi", "aarch64");
+ DO_TEST_CAPS_ARCH_LATEST("riscv64-virt-acpi", "riscv64");
+ DO_TEST_CAPS_ARCH_LATEST("s390x-ccw-acpi", "s390x");
+ DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE_PARSE_ERROR("s390x-ccw-acpi", "s390x");
+
DO_TEST_CAPS_LATEST("misc-disable-s3");
DO_TEST_CAPS_LATEST("misc-disable-suspends");
DO_TEST_CAPS_LATEST("misc-enable-s4");
--
2.46.0

View File

@ -0,0 +1,71 @@
From 81ccb43343bfd63358b610ef5a44082e2c5081f4 Mon Sep 17 00:00:00 2001
Message-ID: <81ccb43343bfd63358b610ef5a44082e2c5081f4.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 6 Feb 2025 15:50:35 +0100
Subject: [PATCH] qemuxmlconftest: Allow testing of the 'writable' flag for
passed FDs for disks
Pass also the 'writable' state to the fake passed FDs so that we can
test it.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 500d985a130ff7910ca6cdeac42046d7301da43f)
https://issues.redhat.com/browse/RHEL-37519
---
tests/qemuxmlconftest.c | 6 +++---
tests/testutilsqemu.c | 2 ++
tests/testutilsqemu.h | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 53a0237a42..7da622e9be 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -1653,9 +1653,9 @@ mymain(void)
DO_TEST_CAPS_LATEST("disk-backing-chains-noindex");
DO_TEST_CAPS_LATEST("disk-qcow2-datafile-store");
DO_TEST_CAPS_ARCH_LATEST_FULL("disk-source-fd", "x86_64",
- ARG_FD_GROUP, "testgroup2", 2, 200, 205,
- ARG_FD_GROUP, "testgroup5", 1, 204,
- ARG_FD_GROUP, "testgroup6", 2, 247, 248);
+ ARG_FD_GROUP, "testgroup2", false, 2, 200, 205,
+ ARG_FD_GROUP, "testgroup5", false, 1, 204,
+ ARG_FD_GROUP, "testgroup6", false, 2, 247, 248);
DO_TEST_CAPS_LATEST("disk-slices");
DO_TEST_CAPS_LATEST("disk-rotation");
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index 5caccbc6b4..d395a1e61b 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -705,11 +705,13 @@ testQemuInfoSetArgs(testQemuInfo *info,
virStorageSourceFDTuple *new = virStorageSourceFDTupleNew();
const char *fdname = va_arg(argptr, char *);
VIR_AUTOCLOSE fakefd = open("/dev/zero", O_RDWR);
+ bool writable = va_arg(argptr, int);
size_t i;
new->nfds = va_arg(argptr, unsigned int);
new->fds = g_new0(int, new->nfds);
new->testfds = g_new0(int, new->nfds);
+ new->writable = writable;
for (i = 0; i < new->nfds; i++) {
new->testfds[i] = va_arg(argptr, unsigned int);
diff --git a/tests/testutilsqemu.h b/tests/testutilsqemu.h
index 74e307d653..20135b8390 100644
--- a/tests/testutilsqemu.h
+++ b/tests/testutilsqemu.h
@@ -49,7 +49,7 @@ typedef enum {
ARG_CAPS_VER,
ARG_CAPS_VARIANT,
ARG_CAPS_HOST_CPU_MODEL,
- ARG_FD_GROUP, /* name, nfds, fd[0], ... fd[n-1] */
+ ARG_FD_GROUP, /* name, writable, nfds, fd[0], ... fd[n-1] */
ARG_VDPA_FD, /* vdpadev, fd */
ARG_NBDKIT_CAPS,
ARG_END,
--
2.48.1

View File

@ -0,0 +1,56 @@
From 45c5f48cef27f4233a4964337d33db78ab51740b Mon Sep 17 00:00:00 2001
Message-ID: <45c5f48cef27f4233a4964337d33db78ab51740b.1737731143.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 9 Jan 2025 14:53:49 +0100
Subject: [PATCH] storage_file: Refuse qcow2 images with empty string as
'data_file'
In certain buggy conditions qemu can create an image which has empty
string stored as 'data_file'. While probing libvirt would consider the
empty string as a relative file name and construct the path using the
path of the parent image stripping the last component and appending the
empty string. This results into attempting to using a directory as an
image and thus the following error when attempting to start VM with such
an image:
error: unsupported configuration: storage type 'dir' requires use of storage format 'fat'
Reject empty strings passed in as 'data_file'.
Note that we do not have the same problem with 'backing store' as an
empty string there is interpreted as no backing file both by qemu and
libvirt.
Resolves: https://issues.redhat.com/browse/RHEL-70627
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 87a4fe2906b712d3a6ea3e9c8d9faa98b9ec5632)
https://issues.redhat.com/browse/RHEL-73504
---
src/storage_file/storage_source.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/storage_file/storage_source.c b/src/storage_file/storage_source.c
index 4612e710b0..fa59949cf2 100644
--- a/src/storage_file/storage_source.c
+++ b/src/storage_file/storage_source.c
@@ -557,6 +557,16 @@ virStorageSourceNewFromDataFile(virStorageSource *parent)
g_autoptr(virStorageSource) dataFile = NULL;
int rc;
+ /* 'qemu-img' records an empty string as 'data_file' field in certain buggy
+ * cases. Note that it can't happen for 'backing store' as absence of the
+ * string equals to no backing store. */
+ if (STREQ(parent->dataFileRaw, "")) {
+ virReportError(VIR_ERR_OPERATION_FAILED,
+ _("invalid empty data-file definition in '%1$s'"),
+ NULLSTR(parent->path));
+ return NULL;
+ }
+
if ((rc = virStorageSourceNewFromChild(parent,
parent->dataFileRaw,
&dataFile)) < 0)
--
2.48.1

View File

@ -0,0 +1,117 @@
From 8baa9e689e641fca914b59e5d27966a1cd925991 Mon Sep 17 00:00:00 2001
Message-ID: <8baa9e689e641fca914b59e5d27966a1cd925991.1737731143.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 9 Jan 2025 09:52:36 +0100
Subject: [PATCH] storage_file: de-modularize the local file backend
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The 'storage_file' infrastructure serves as an abstraction on top of
file-looking storage technologies. Apart from local file it currently
implements also a backend for 'gluster'.
Historically it was all modularized and the local file module was
usually packaged with the 'core' part of the storage driver. Now with
split daemons one can install e.g. 'virqemud' without the storage driver
core which contains the 'fs' backend module. Since the qemu driver uses
the storage file backends to e.g. create storage for snapshots and
backups this allows users to create a deployment where some things will
not work properly.
As the 'fs' backend doesn't use any code that wouldn't be linked
directly anyways there's no point in actually shipping it as a module.
Let's compile it in so that all deployments can use it.
To achieve that, compile the source directly into the
'virt_storage_file_lib' static library and remove the loading code. Also
adjust the spec file.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit f8558a87ac8525b16f4cbba4f24e0885fde2b79e)
https://issues.redhat.com/browse/RHEL-73507
---
libvirt.spec.in | 1 -
src/storage_file/meson.build | 16 ----------------
src/storage_file/storage_file_backend.c | 11 ++++++-----
3 files changed, 6 insertions(+), 22 deletions(-)
diff --git a/src/storage_file/meson.build b/src/storage_file/meson.build
index d40e98befa..27c4e5a432 100644
--- a/src/storage_file/meson.build
+++ b/src/storage_file/meson.build
@@ -3,9 +3,6 @@ storage_file_sources = [
'storage_source_backingstore.c',
'storage_file_backend.c',
'storage_file_probe.c',
-]
-
-stoarge_file_fs_sources = [
'storage_file_backend_fs.c',
]
@@ -30,19 +27,6 @@ virt_storage_file_lib = static_library(
libvirt_libs += virt_storage_file_lib
-if conf.has('WITH_STORAGE')
- virt_modules += {
- 'name': 'virt_storage_file_fs',
- 'sources': [
- files(stoarge_file_fs_sources),
- ],
- 'include': [
- storage_inc_dir,
- ],
- 'install_dir': storage_file_install_dir,
- }
-endif
-
if conf.has('WITH_STORAGE_GLUSTER')
virt_modules += {
'name': 'virt_storage_file_gluster',
diff --git a/src/storage_file/storage_file_backend.c b/src/storage_file/storage_file_backend.c
index 03583803de..1eeec5fb43 100644
--- a/src/storage_file/storage_file_backend.c
+++ b/src/storage_file/storage_file_backend.c
@@ -26,6 +26,7 @@
#include "virerror.h"
#include "internal.h"
#include "storage_file_backend.h"
+#include "storage_file_backend_fs.h"
#include "virlog.h"
#include "virmodule.h"
#include "virfile.h"
@@ -40,7 +41,7 @@ VIR_LOG_INIT("storage.storage_source_backend");
static virStorageFileBackend *virStorageFileBackends[VIR_STORAGE_BACKENDS_MAX];
static size_t virStorageFileBackendsCount;
-#if WITH_STORAGE_DIR || WITH_STORAGE_FS || WITH_STORAGE_GLUSTER
+#if WITH_STORAGE_GLUSTER
# define STORAGE_FILE_MODULE_DIR LIBDIR "/libvirt/storage-file"
@@ -64,14 +65,14 @@ virStorageFileLoadBackendModule(const char *name,
return ret;
}
-#endif /* WITH_STORAGE_DIR || WITH_STORAGE_FS || WITH_STORAGE_GLUSTER */
+#endif /* WITH_STORAGE_GLUSTER */
static int virStorageFileBackendOnceInit(void)
{
-#if WITH_STORAGE_DIR || WITH_STORAGE_FS
- if (virStorageFileLoadBackendModule("fs", "virStorageFileFsRegister", false) < 0)
+ /* The backend for local files is compiled in */
+ if (virStorageFileFsRegister() < 0)
return -1;
-#endif /* WITH_STORAGE_DIR || WITH_STORAGE_FS */
+
#if WITH_STORAGE_GLUSTER
if (virStorageFileLoadBackendModule("gluster", "virStorageFileGlusterRegister", false) < 0)
return -1;
--
2.48.1

View File

@ -0,0 +1,37 @@
From 0f6f879e8070aca4f61305c7b9099ba8039d6f6d Mon Sep 17 00:00:00 2001
Message-ID: <0f6f879e8070aca4f61305c7b9099ba8039d6f6d.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 28 Nov 2024 13:40:16 +0100
Subject: [PATCH] sync_qemu_models_i386: Generate missing -v1 variants
QEMU supports -v1 variant of any CPU model even though the list of
versions is not defined (i.e., even if { .version = 1 } item is
missing).
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 8bc6ebb495f82ce8edb206eb4d5133e206fd8f2e)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/sync_qemu_models_i386.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/cpu_map/sync_qemu_models_i386.py b/src/cpu_map/sync_qemu_models_i386.py
index 11fe1f7435..3e14136e07 100755
--- a/src/cpu_map/sync_qemu_models_i386.py
+++ b/src/cpu_map/sync_qemu_models_i386.py
@@ -484,6 +484,9 @@ def expand_model(outdir, model):
print(result['name'])
yield result
+ if len(versions) == 0:
+ versions.append({".version": "1"})
+
name = result["name"]
for version in versions:
result = copy.deepcopy(result)
--
2.47.1

View File

@ -0,0 +1,68 @@
From 001ca4b5e5405dec8e755d3ab932402552821fb4 Mon Sep 17 00:00:00 2001
Message-ID: <001ca4b5e5405dec8e755d3ab932402552821fb4.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Thu, 28 Nov 2024 13:39:29 +0100
Subject: [PATCH] sync_qemu_models_i386: Update meson.build
When adding new CPU models to CPU map it's easy (and very common) to
forget to add the new files to meson.build. We already update index.xml
with the new models so updating meson.build too makes sense.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 19b56603c4d961fc21bfb7516b6ba011dd49f9b2)
https://issues.redhat.com/browse/RHEL-70052
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/sync_qemu_models_i386.py | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/src/cpu_map/sync_qemu_models_i386.py b/src/cpu_map/sync_qemu_models_i386.py
index 798d767f4d..11fe1f7435 100755
--- a/src/cpu_map/sync_qemu_models_i386.py
+++ b/src/cpu_map/sync_qemu_models_i386.py
@@ -596,6 +596,32 @@ def update_index(outdir, models):
f.write("\n")
+def update_meson(outdir, models):
+ meson = os.path.join(outdir, "meson.build")
+
+ with open(meson, "r") as f:
+ lines = f.readlines()
+
+ start = None
+ end = None
+ for i in range(len(lines)):
+ if start is None and lines[i].startswith("cpumap_data ="):
+ start = i + 1
+
+ if start is not None and lines[i] == "]\n":
+ end = i
+ break
+
+ xmls = lines[start:end]
+ for files in models.values():
+ xmls.extend([f" '{file}',\n" for file in files])
+
+ with open(meson, "w") as f:
+ f.writelines(lines[:start])
+ f.writelines(sorted(xmls, key=str.lower))
+ f.writelines(lines[end:])
+
+
def main():
parser = argparse.ArgumentParser(
description="Synchronize x86 cpu models from QEMU i386 target.")
@@ -658,6 +684,7 @@ def main():
output_model(f, extra, model)
update_index(args.outdir, files)
+ update_meson(args.outdir, files)
features = set()
for model in models:
--
2.47.1

View File

@ -1,46 +0,0 @@
From fa4a66a178829bcd66ae91732204540111fa9e7b Mon Sep 17 00:00:00 2001
Message-ID: <fa4a66a178829bcd66ae91732204540111fa9e7b.1720800605.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 4 Jul 2024 15:54:27 +0200
Subject: [PATCH] tests: qemuxmlconf: adjust test case to new virtiofsd
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Now that we have a fake virtiofsd json descriptor in our vhost-user
test data, we can remove the explicitly specified binary and our
mocking will ensure this test won't be affected by the host state.
Also remove the locking options, since they were never supported
by the Rust version of virtiofsd.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 132bf6d89b0eb744db6255e18494b493bd998d1d)
https://issues.redhat.com/browse/RHEL-7108
https://issues.redhat.com/browse/RHEL-40135
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
tests/qemuxmlconfdata/vhost-user-fs-fd-memory.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tests/qemuxmlconfdata/vhost-user-fs-fd-memory.xml b/tests/qemuxmlconfdata/vhost-user-fs-fd-memory.xml
index 1d0bc26c46..b0b1b44081 100644
--- a/tests/qemuxmlconfdata/vhost-user-fs-fd-memory.xml
+++ b/tests/qemuxmlconfdata/vhost-user-fs-fd-memory.xml
@@ -28,10 +28,9 @@
<controller type='pci' index='0' model='pci-root'/>
<filesystem type='mount' accessmode='passthrough'>
<driver type='virtiofs' queue='1024'/>
- <binary path='/usr/libexec/virtiofsd' xattr='on'>
+ <binary xattr='on'>
<cache mode='always'/>
<sandbox mode='chroot'/>
- <lock posix='off' flock='off'/>
<thread_pool size='16'/>
</binary>
<idmap>
--
2.45.2

View File

@ -1,69 +0,0 @@
From d0bdafd019e0071149e5bc294389386c789a66bd Mon Sep 17 00:00:00 2001
Message-ID: <d0bdafd019e0071149e5bc294389386c789a66bd.1720800605.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 4 Jul 2024 15:54:26 +0200
Subject: [PATCH] tests: vhostuser: add virtiofsd json descriptor
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add the capabilities from the latest virtiofsd main branch and adjust
the order in the priority test accordingly.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit f64e658df04e9cf5b99fbe5c846ba3478e13d826)
https://issues.redhat.com/browse/RHEL-7108
https://issues.redhat.com/browse/RHEL-40135
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
.../usr/libexec/qemu/vhost-user/test-virtiofsd | 10 ++++++++++
.../usr/share/qemu/vhost-user/50-qemu-virtiofsd.json | 5 +++++
tests/qemuvhostusertest.c | 1 +
3 files changed, 16 insertions(+)
create mode 100755 tests/qemuvhostuserdata/usr/libexec/qemu/vhost-user/test-virtiofsd
create mode 100644 tests/qemuvhostuserdata/usr/share/qemu/vhost-user/50-qemu-virtiofsd.json
diff --git a/tests/qemuvhostuserdata/usr/libexec/qemu/vhost-user/test-virtiofsd b/tests/qemuvhostuserdata/usr/libexec/qemu/vhost-user/test-virtiofsd
new file mode 100755
index 0000000000..90b38187c9
--- /dev/null
+++ b/tests/qemuvhostuserdata/usr/libexec/qemu/vhost-user/test-virtiofsd
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cat <<EOF
+{
+ "type": "fs",
+ "features": [
+ "migrate-precopy"
+ ]
+}
+EOF
diff --git a/tests/qemuvhostuserdata/usr/share/qemu/vhost-user/50-qemu-virtiofsd.json b/tests/qemuvhostuserdata/usr/share/qemu/vhost-user/50-qemu-virtiofsd.json
new file mode 100644
index 0000000000..b908bc6b30
--- /dev/null
+++ b/tests/qemuvhostuserdata/usr/share/qemu/vhost-user/50-qemu-virtiofsd.json
@@ -0,0 +1,5 @@
+{
+ "description": "virtiofsd vhost-user-fs",
+ "type": "fs",
+ "binary": "/usr/libexec/qemu/vhost-user/test-vhost-user-gpu"
+}
diff --git a/tests/qemuvhostusertest.c b/tests/qemuvhostusertest.c
index 4bbad94f74..1f8553fc2d 100644
--- a/tests/qemuvhostusertest.c
+++ b/tests/qemuvhostusertest.c
@@ -60,6 +60,7 @@ testVUPrecedence(const void *opaque G_GNUC_UNUSED)
const char *expected[] = {
PREFIX "/share/qemu/vhost-user/30-gpu.json",
SYSCONFDIR "/qemu/vhost-user/40-gpu.json",
+ PREFIX "/share/qemu/vhost-user/50-qemu-virtiofsd.json",
PREFIX "/share/qemu/vhost-user/60-gpu.json",
NULL
};
--
2.45.2

View File

@ -0,0 +1,43 @@
From 2eab8ef9338a884b491d198bf2c6a51e271f2170 Mon Sep 17 00:00:00 2001
Message-ID: <2eab8ef9338a884b491d198bf2c6a51e271f2170.1737731143.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Tue, 21 Jan 2025 12:36:48 +0100
Subject: [PATCH] tools: ssh-proxy: Check for domain status before parsing its
CID
Inactive domain XML can be wildly different to the live XML. For
instance, it can have VSOCK CID of that from another (running)
domain. Since domain status is not checked for, attempting to ssh
into an inactive domain may in fact result in opening a
connection to a different live domain that listens on said CID
currently.
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/737
Resolves: https://issues.redhat.com/browse/RHEL-75577
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit ab10c0695d142c78d1ea078b553e1c035e7abc8a)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
tools/ssh-proxy/ssh-proxy.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/ssh-proxy/ssh-proxy.c b/tools/ssh-proxy/ssh-proxy.c
index e60c58d57f..22daffeb63 100644
--- a/tools/ssh-proxy/ssh-proxy.c
+++ b/tools/ssh-proxy/ssh-proxy.c
@@ -194,7 +194,10 @@ lookupDomainAndFetchCID(const char *uri,
if (virStrToLong_i(domname, NULL, 10, &id) >= 0)
dom = virDomainLookupByID(conn, id);
}
- if (!dom)
+
+ /* If no domain is found, return an error. Similarly, inactive domain may
+ * contain CID of another (running) domain, yielding misleading results. */
+ if (!dom || virDomainIsActive(dom) <= 0)
return -1;
return extractCID(dom, cid);
--
2.48.1

View File

@ -0,0 +1,41 @@
From f58977a1475e6222e40e0cb93e9eef76da48012e Mon Sep 17 00:00:00 2001
Message-ID: <f58977a1475e6222e40e0cb93e9eef76da48012e.1734433245.git.jdenemar@redhat.com>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Wed, 4 Dec 2024 11:53:47 +0100
Subject: [PATCH] util: Fix typo in virNetDevOpenvswitchInterfaceSetQos
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The typo is causing virtqemud to crash when starting a domain with ovs
bridge interface and QOS.
https://issues.redhat.com/browse/RHEL-69840
Fixes: a3b8753db975d8b92b122ccc7daee986974f8b18
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit dba710374d92688f797bf64642cc0d640c301239)
https://issues.redhat.com/browse/RHEL-69938
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/util/virnetdevopenvswitch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virnetdevopenvswitch.c b/src/util/virnetdevopenvswitch.c
index a1bd9f3d5b..0f5d23b794 100644
--- a/src/util/virnetdevopenvswitch.c
+++ b/src/util/virnetdevopenvswitch.c
@@ -958,7 +958,7 @@ virNetDevOpenvswitchInterfaceSetQos(const char *ifname,
}
if (rx) {
- if (rx->peak && tx->peak != rx->average) {
+ if (rx->peak && rx->peak != rx->average) {
VIR_WARN("Setting different 'peak' value than 'average' for QoS for OVS interface %s might have unexpected results",
ifname);
}
--
2.47.1

View File

@ -0,0 +1,55 @@
From 4eacc6c63a2935cd25bb404639ce8c8bd0747866 Mon Sep 17 00:00:00 2001
Message-ID: <4eacc6c63a2935cd25bb404639ce8c8bd0747866.1739824250.git.jdenemar@redhat.com>
From: Andrea Bolognani <abologna@redhat.com>
Date: Thu, 13 Feb 2025 09:54:05 +0100
Subject: [PATCH] utils: Canonicalize paths before comparing them
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In virFileIsSharedFSOverride() we compare a path against a list
of overrides looking for a match.
All overrides are canonicalized ahead of time though, so e.g.
/var/run/foo will be turned into /run/foo due to /var/run being
a symlink on modern Linux systems. But the path we're trying to
match with the overrides doesn't get the same treatment, so in
this scenario the comparison will always fail.
Canonicalizing the path as well solves the issue.
Resolves: https://issues.redhat.com/browse/RHEL-79165
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit f2023e8018fe18550ad6aec66fe72bd1376f8522)
https://issues.redhat.com/browse/RHEL-79166
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
src/util/virfile.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/util/virfile.c b/src/util/virfile.c
index 6ac0f4efb3..7cab3d0cd6 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -3823,10 +3823,13 @@ virFileIsSharedFSOverride(const char *path,
if (!path || path[0] != '/' || !overrides)
return false;
- if (g_strv_contains((const char *const *) overrides, path))
- return true;
+ /* Overrides have been canonicalized ahead of time, so we need to
+ * do the same for the provided path or we'll never be able to
+ * find a match if symlinks are involved */
+ dirpath = virFileCanonicalizePath(path);
- dirpath = g_strdup(path);
+ if (g_strv_contains((const char *const *) overrides, dirpath))
+ return true;
/* Continue until we've scanned the entire path */
while (p != dirpath) {
--
2.48.1

View File

@ -0,0 +1,210 @@
From b4154f389e688beafc9cbfae7e868fa406c8448d Mon Sep 17 00:00:00 2001
Message-ID: <b4154f389e688beafc9cbfae7e868fa406c8448d.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 19:13:43 +0100
Subject: [PATCH] virDomainGetMessages: Introduce VIR_DOMAIN_MESSAGE_IOERRORS
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Report any stored I/O error messages reported by the hypervisor when
reporting messages of a domain. As the I/O error may be already stale we
report also the timestamp when it was recorded.
Example message:
I/O error: disk='vda', index='1', path='/dev/mapper/errdev0', timestamp='2025-01-28 15:47:52.776+0000', message='Input/output error'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 666219f5f166ac3cebe4854bcefddd449a98ad04)
https://issues.redhat.com/browse/RHEL-77884
---
include/libvirt/libvirt-domain.h | 3 ++
src/conf/domain_conf.c | 50 ++++++++++++++++++++++++++++++++
src/conf/domain_conf.h | 5 ++++
src/libvirt_private.syms | 1 +
src/libxl/libxl_driver.c | 3 +-
src/qemu/qemu_driver.c | 16 +++++++++-
src/test/test_driver.c | 3 +-
7 files changed, 78 insertions(+), 3 deletions(-)
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index d4f1573954..92a32f1cde 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -6490,6 +6490,9 @@ int virDomainAuthorizedSSHKeysSet(virDomainPtr domain,
typedef enum {
VIR_DOMAIN_MESSAGE_DEPRECATION = (1 << 0), /* (Since: 7.1.0) */
VIR_DOMAIN_MESSAGE_TAINTING = (1 << 1), /* (Since: 7.1.0) */
+ VIR_DOMAIN_MESSAGE_IOERRORS = (1 << 2), /* Report available stored I/O
+ errors messages for disk images
+ (Since: 11.1.0) */
} virDomainMessageType;
int virDomainGetMessages(virDomainPtr domain,
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 8cd0fb83b6..d83f1ba240 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -31643,6 +31643,47 @@ virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
}
+static void
+virDomainObjGetMessagesIOErrorsSrc(virStorageSource *src,
+ const char *diskdst,
+ GPtrArray *m)
+{
+ if (!src ||
+ !src->ioerror_message)
+ return;
+
+ g_ptr_array_add(m, g_strdup_printf(_("I/O error: disk='%1$s', index='%2$d', path='%3$s', timestamp='%4$s', message='%5$s'"),
+ NULLSTR_MINUS(diskdst),
+ src->id,
+ NULLSTR_MINUS(src->path),
+ src->ioerror_timestamp,
+ src->ioerror_message));
+}
+
+
+void
+virDomainObjGetMessagesIOErrorsChain(virStorageSource *src,
+ const char *diskdst,
+ GPtrArray *m)
+{
+ virStorageSource *n;
+
+ for (n = src; n; n = n->backingStore) {
+ virDomainObjGetMessagesIOErrorsSrc(n, diskdst, m);
+ virDomainObjGetMessagesIOErrorsSrc(n->dataFileStore, diskdst, m);
+ }
+}
+
+
+static void
+virDomainObjGetMessagesIOErrorsDisk(virDomainDiskDef *disk,
+ GPtrArray *m)
+{
+ virDomainObjGetMessagesIOErrorsChain(disk->src, disk->dst, m);
+ virDomainObjGetMessagesIOErrorsChain(disk->mirror, disk->dst, m);
+}
+
+
/**
* virDomainObjGetMessages:
* @vm: domain object
@@ -31671,6 +31712,15 @@ virDomainObjGetMessages(virDomainObj *vm,
vm->deprecations[i]));
}
}
+
+ if (!flags || (flags & VIR_DOMAIN_MESSAGE_IOERRORS)) {
+ if (vm->def->os.loader)
+ virDomainObjGetMessagesIOErrorsChain(vm->def->os.loader->nvram, NULL, m);
+
+ for (i = 0; i < vm->def->ndisks; i++)
+ virDomainObjGetMessagesIOErrorsDisk(vm->def->disks[i], m);
+ }
+
}
bool
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 7058203e67..5237046196 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -4576,6 +4576,11 @@ bool
virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
ATTRIBUTE_NONNULL(1);
+void
+virDomainObjGetMessagesIOErrorsChain(virStorageSource *src,
+ const char *diskdst,
+ GPtrArray *m);
+
void
virDomainObjGetMessages(virDomainObj *vm,
GPtrArray *m,
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 43e2dfb9cd..7d404fdbf5 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -590,6 +590,7 @@ virDomainObjEndAPI;
virDomainObjFormat;
virDomainObjGetDefs;
virDomainObjGetMessages;
+virDomainObjGetMessagesIOErrorsChain;
virDomainObjGetMetadata;
virDomainObjGetOneDef;
virDomainObjGetOneDefState;
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 545d67de52..29dcee3cfc 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -6577,7 +6577,8 @@ libxlDomainGetMessages(virDomainPtr dom,
int ret = -1;
virCheckFlags(VIR_DOMAIN_MESSAGE_DEPRECATION |
- VIR_DOMAIN_MESSAGE_TAINTING, -1);
+ VIR_DOMAIN_MESSAGE_TAINTING |
+ VIR_DOMAIN_MESSAGE_IOERRORS, -1);
if (!(vm = libxlDomObjFromDomain(dom)))
return -1;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 276a7caded..9a69574f31 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -19814,9 +19814,11 @@ qemuDomainGetMessages(virDomainPtr dom,
g_autoptr(GPtrArray) m = g_ptr_array_new_with_free_func(g_free);
virDomainObj *vm = NULL;
int rv = -1;
+ qemuDomainObjPrivate *priv;
virCheckFlags(VIR_DOMAIN_MESSAGE_DEPRECATION |
- VIR_DOMAIN_MESSAGE_TAINTING, -1);
+ VIR_DOMAIN_MESSAGE_TAINTING |
+ VIR_DOMAIN_MESSAGE_IOERRORS, -1);
if (!(vm = qemuDomainObjFromDomain(dom)))
return -1;
@@ -19824,8 +19826,20 @@ qemuDomainGetMessages(virDomainPtr dom,
if (virDomainGetMessagesEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
+ priv = vm->privateData;
+
virDomainObjGetMessages(vm, m, flags);
+ if (priv->backup &&
+ (!flags || (flags & VIR_DOMAIN_MESSAGE_IOERRORS))) {
+ size_t i;
+
+ for (i = 0; i < priv->backup->ndisks; i++)
+ virDomainObjGetMessagesIOErrorsChain(priv->backup->disks[i].store,
+ priv->backup->disks[i].name,
+ m);
+ }
+
rv = m->len;
if (m->len > 0) {
g_ptr_array_add(m, NULL);
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index a10ec3bc41..6f18b2b2c8 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -9527,7 +9527,8 @@ testDomainGetMessages(virDomainPtr dom,
int rv = -1;
virCheckFlags(VIR_DOMAIN_MESSAGE_DEPRECATION |
- VIR_DOMAIN_MESSAGE_TAINTING, -1);
+ VIR_DOMAIN_MESSAGE_TAINTING |
+ VIR_DOMAIN_MESSAGE_IOERRORS, -1);
if (!(vm = testDomObjFromDomain(dom)))
return -1;
--
2.48.1

View File

@ -0,0 +1,191 @@
From d3ebbc9040b3f58dcf790a6d53f09c2eb5119bfd Mon Sep 17 00:00:00 2001
Message-ID: <d3ebbc9040b3f58dcf790a6d53f09c2eb5119bfd.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 17:38:51 +0100
Subject: [PATCH] virDomainObjGetMessages: Refactor using GPtrArray
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Simplify the function especially by rewriting it using GPtrArray to
construct the string list, especially for the upcoming case when the
number of added elements will not be known beforehand and when
hypervisor specific data will be added.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 1a02760cc6d79422dc4dd17b943915cd0ac15987)
https://issues.redhat.com/browse/RHEL-77884
---
src/conf/domain_conf.c | 36 +++++++-----------------------------
src/conf/domain_conf.h | 4 ++--
src/libxl/libxl_driver.c | 9 ++++++++-
src/qemu/qemu_driver.c | 9 ++++++++-
src/test/test_driver.c | 9 ++++++++-
5 files changed, 33 insertions(+), 34 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d3f30b08dc..8cd0fb83b6 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -31646,53 +31646,31 @@ virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
/**
* virDomainObjGetMessages:
* @vm: domain object
- * @msgs: pointer to a variable to store messages
+ * @m: GPtrArray to be filled with messages
* @flags: zero or more virDomainMessageType flags
- *
- * Returns number of messages stored in @msgs, -1 otherwise.
*/
-int
+void
virDomainObjGetMessages(virDomainObj *vm,
- char ***msgs,
+ GPtrArray *m,
unsigned int flags)
{
size_t i = 0;
- size_t n = 0;
- int nmsgs = 0;
- int rv = -1;
-
- *msgs = NULL;
if (!flags || (flags & VIR_DOMAIN_MESSAGE_TAINTING)) {
- nmsgs += __builtin_popcount(vm->taint);
- *msgs = g_renew(char *, *msgs, nmsgs+1);
-
for (i = 0; i < VIR_DOMAIN_TAINT_LAST; i++) {
if (vm->taint & (1 << i)) {
- (*msgs)[n++] = g_strdup_printf(
- _("tainted: %1$s"),
- _(virDomainTaintMessageTypeToString(i)));
+ g_ptr_array_add(m, g_strdup_printf(_("tainted: %1$s"),
+ _(virDomainTaintMessageTypeToString(i))));
}
}
}
if (!flags || (flags & VIR_DOMAIN_MESSAGE_DEPRECATION)) {
- nmsgs += vm->ndeprecations;
- *msgs = g_renew(char *, *msgs, nmsgs+1);
-
for (i = 0; i < vm->ndeprecations; i++) {
- (*msgs)[n++] = g_strdup_printf(
- _("deprecated configuration: %1$s"),
- vm->deprecations[i]);
+ g_ptr_array_add(m, g_strdup_printf(_("deprecated configuration: %1$s"),
+ vm->deprecations[i]));
}
}
-
- if (*msgs)
- (*msgs)[nmsgs] = NULL;
-
- rv = nmsgs;
-
- return rv;
}
bool
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 9f7c28343f..7058203e67 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -4576,9 +4576,9 @@ bool
virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
ATTRIBUTE_NONNULL(1);
-int
+void
virDomainObjGetMessages(virDomainObj *vm,
- char ***msgs,
+ GPtrArray *m,
unsigned int flags);
bool
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 26d22550ae..545d67de52 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -6572,6 +6572,7 @@ libxlDomainGetMessages(virDomainPtr dom,
char ***msgs,
unsigned int flags)
{
+ g_autoptr(GPtrArray) m = g_ptr_array_new_with_free_func(g_free);
virDomainObj *vm = NULL;
int ret = -1;
@@ -6584,7 +6585,13 @@ libxlDomainGetMessages(virDomainPtr dom,
if (virDomainGetMessagesEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- ret = virDomainObjGetMessages(vm, msgs, flags);
+ virDomainObjGetMessages(vm, m, flags);
+
+ ret = m->len;
+ if (m->len > 0) {
+ g_ptr_array_add(m, NULL);
+ *msgs = (char **) g_ptr_array_steal(m, NULL);
+ }
cleanup:
virDomainObjEndAPI(&vm);
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 09f7edda7d..276a7caded 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -19811,6 +19811,7 @@ qemuDomainGetMessages(virDomainPtr dom,
char ***msgs,
unsigned int flags)
{
+ g_autoptr(GPtrArray) m = g_ptr_array_new_with_free_func(g_free);
virDomainObj *vm = NULL;
int rv = -1;
@@ -19823,7 +19824,13 @@ qemuDomainGetMessages(virDomainPtr dom,
if (virDomainGetMessagesEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- rv = virDomainObjGetMessages(vm, msgs, flags);
+ virDomainObjGetMessages(vm, m, flags);
+
+ rv = m->len;
+ if (m->len > 0) {
+ g_ptr_array_add(m, NULL);
+ *msgs = (char **) g_ptr_array_steal(m, NULL);
+ }
cleanup:
virDomainObjEndAPI(&vm);
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index f1cefb5c50..a10ec3bc41 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -9522,6 +9522,7 @@ testDomainGetMessages(virDomainPtr dom,
char ***msgs,
unsigned int flags)
{
+ g_autoptr(GPtrArray) m = g_ptr_array_new_with_free_func(g_free);
virDomainObj *vm = NULL;
int rv = -1;
@@ -9531,7 +9532,13 @@ testDomainGetMessages(virDomainPtr dom,
if (!(vm = testDomObjFromDomain(dom)))
return -1;
- rv = virDomainObjGetMessages(vm, msgs, flags);
+ virDomainObjGetMessages(vm, m, flags);
+
+ rv = m->len;
+ if (m->len > 0) {
+ g_ptr_array_add(m, NULL);
+ *msgs = (char **) g_ptr_array_steal(m, NULL);
+ }
virDomainObjEndAPI(&vm);
return rv;
--
2.48.1

View File

@ -0,0 +1,72 @@
From 1e47a795e7a06152cfd8b6d7c80692875d2e00b9 Mon Sep 17 00:00:00 2001
Message-ID: <1e47a795e7a06152cfd8b6d7c80692875d2e00b9.1738940191.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 27 Jan 2025 16:20:43 +0100
Subject: [PATCH] virStorageSource: Add fields for storing last I/O error
message
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Hypervisors may report a I/O error message (unstable; for human use)
to libvirt. In order to store it with the appropriate virStorageSource
so that it can be later queried we need to add fields to
virStorageSource to store the timestamp and message.
The message is deliberately not copied via virStorageSourceCopy.
The messages are also not serialized to the status XML as losing them on
a daemon restart as they're likely to be stale anyways.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 2f6c9fa4f6f4c0a36ffc2b24892eee78e1e4cf53)
https://issues.redhat.com/browse/RHEL-77884
---
src/conf/storage_source_conf.c | 5 +++++
src/conf/storage_source_conf.h | 6 ++++++
2 files changed, 11 insertions(+)
diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c
index 2b658dd485..ca956a1b7c 100644
--- a/src/conf/storage_source_conf.c
+++ b/src/conf/storage_source_conf.c
@@ -917,6 +917,8 @@ virStorageSourceCopy(const virStorageSource *src,
def->nfs_uid = src->nfs_uid;
def->nfs_gid = src->nfs_gid;
+ /* 'ioerror_timestamp' and 'ioerror_message' are deliberately not copied */
+
return g_steal_pointer(&def);
}
@@ -1203,6 +1205,9 @@ virStorageSourceClear(virStorageSource *def)
g_clear_pointer(&def->fdtuple, g_object_unref);
+ VIR_FREE(def->ioerror_timestamp);
+ VIR_FREE(def->ioerror_message);
+
/* clear everything except the class header as the object APIs
* will break otherwise */
memset((char *) def + sizeof(def->parent), 0,
diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h
index 9463722518..e6cbb93c06 100644
--- a/src/conf/storage_source_conf.h
+++ b/src/conf/storage_source_conf.h
@@ -445,6 +445,12 @@ struct _virStorageSource {
* to do this decision.
*/
bool seclabelSkipRemember;
+
+ /* Last instance of hypervisor originated I/O error message and timestamp.
+ * The error stored here is not designed to be stable. The message
+ * is also not copied via virStorageSourceCopy */
+ char *ioerror_timestamp;
+ char *ioerror_message;
};
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virStorageSource, virObjectUnref);
--
2.48.1

View File

@ -0,0 +1,63 @@
From f8f48ce493edee78cd499c0aa3630d8d678b43a0 Mon Sep 17 00:00:00 2001
Message-ID: <f8f48ce493edee78cd499c0aa3630d8d678b43a0.1737731143.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 9 Jan 2025 15:18:58 +0100
Subject: [PATCH] virstoragetest: Add case for qcow2 image with empty string as
'data_file'
Add an example image formatted by:
qemu-img create -f qcow2 -o data_file=nbd+unix:///datafile?socket=/tmp/nbd,data_file_raw=true /tmp/nbddatastore.qcow2 10M -u
serving as an example when qemu records an empty string as the
'data_file' field.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit e6a4245d2a4db3857cfb38d4d3c4e3e0bcff6587)
https://issues.redhat.com/browse/RHEL-73504
---
tests/virstoragetest.c | 5 +++++
.../images/datafile-emptystr.qcow2 | Bin 0 -> 327680 bytes
2 files changed, 5 insertions(+)
create mode 100644 tests/virstoragetestdata/images/datafile-emptystr.qcow2
diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c
index 4ec837eefb..78dc644637 100644
--- a/tests/virstoragetest.c
+++ b/tests/virstoragetest.c
@@ -494,6 +494,11 @@ mymain(void)
abs_srcdir "/virstoragetestdata/images/qcow2datafile-datafile.qcow2",
VIR_STORAGE_FILE_QCOW2, EXP_PASS);
+ /* broken qcow2 with a 'data_file' which is an empty string */
+ TEST_CHAIN("qcow2-datafile-broken",
+ abs_srcdir "/virstoragetestdata/images/datafile-emptystr.qcow2",
+ VIR_STORAGE_FILE_QCOW2, EXP_FAIL);
+
/* Test various combinations of qcow2 images with missing 'backing_format' */
TEST_CHAIN("qcow2-qcow2_qcow2-qcow2_qcow2-auto",
abs_srcdir "/virstoragetestdata/images/qcow2_qcow2-qcow2_qcow2-auto.qcow2",
diff --git a/tests/virstoragetestdata/images/datafile-emptystr.qcow2 b/tests/virstoragetestdata/images/datafile-emptystr.qcow2
new file mode 100644
index 0000000000000000000000000000000000000000..18fae8740b4d650252d9a20629ca6e4d04653692
GIT binary patch
literal 327680
zcmeIuK}y3w6b9f)+5>omoWUCuL=fBvg6p(NG0>(VouYNsV+(F1sS&bCUEA*q4D;Un
znPKMX{^2WxFbiWh=Q16-Nk17<=juF;&BtZGLDy@B{@vnv(am3HpD!UKrx1#&jmK<R
z#UU~+S?${P(8Ry~k(TeVZ0mfJ6?x3Fb+suc516fX+omn|`)XHb@z_kKLzs8_*F{-m
zkGEM_$F?f>69*(=lYbnuwp_1vhdNG0dudo!aho?6gFn)w&EK-oorfg=0000000000
z00000000000000000000000000000000000000000000000000000000000000000
z0D#NV%Mkzo0000000000000000000000000000000000000000000000000000000
z000000000000000000000RFk;_X7X`00000000000000000000000000000000000
z0000000000000000000000000000000000000000;EJ8PyU(xq0RR910000000000
z00000000000000000000000000000000000000000000000000000000000000000
z=$*U+000000000000000000000000000000000000000000000000000000000000
V0000000000000000000Xgm1%)GK2sC
literal 0
HcmV?d00001
--
2.48.1

View File

@ -1,85 +0,0 @@
From f122faf68c4921d44b98700209766cae7507deec Mon Sep 17 00:00:00 2001
Message-ID: <f122faf68c4921d44b98700209766cae7507deec.1721740702.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Tue, 23 Jul 2024 10:31:27 +0200
Subject: [PATCH] virt-host-validate: Allow longer list of CPU flags
On various occasions, virt-host-validate parses /proc/cpuinfo to
learn about CPU flags (see virHostValidateGetCPUFlags()). It does
so, by reading the file line by line until the line with CPU
flags is reached. Then the line is split into individual flags
(using space as a delimiter) and the list of flags is then
iterated over.
This works, except for cases when the line with CPU flags is too
long. Problem is - the line is capped at 1024 bytes and on newer
CPUs (and newer kernels), the line can be significantly longer.
I've seen a line that's ~1200 characters long (with 164 flags
reported).
Switch to unbounded read from the file (getline()).
Resolves: https://issues.redhat.com/browse/RHEL-39969
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit e5232f6fd691668decd5be1b3a76cdbd3666d032)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
tools/virt-host-validate-common.c | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c
index 591143c24d..63cc3dbe7b 100644
--- a/tools/virt-host-validate-common.c
+++ b/tools/virt-host-validate-common.c
@@ -106,21 +106,19 @@ virBitmap *virHostValidateGetCPUFlags(void)
{
FILE *fp;
virBitmap *flags = NULL;
+ g_autofree char *line = NULL;
+ size_t linelen = 0;
if (!(fp = fopen("/proc/cpuinfo", "r")))
return NULL;
flags = virBitmapNew(VIR_HOST_VALIDATE_CPU_FLAG_LAST);
- do {
- char line[1024];
+ while (getline(&line, &linelen, fp) > 0) {
char *start;
g_auto(GStrv) tokens = NULL;
GStrv next;
- if (!fgets(line, sizeof(line), fp))
- break;
-
/* The line we're interested in is marked differently depending
* on the architecture, so check possible prefixes */
if (!STRPREFIX(line, "flags") &&
@@ -129,11 +127,9 @@ virBitmap *virHostValidateGetCPUFlags(void)
!STRPREFIX(line, "facilities"))
continue;
- /* fgets() includes the trailing newline in the output buffer,
- * so we need to clean that up ourselves. We can safely access
- * line[strlen(line) - 1] because the checks above would cause
- * us to skip empty strings */
- line[strlen(line) - 1] = '\0';
+ /* getline() may include the trailing newline in the output
+ * buffer, so we need to clean that up ourselves. */
+ virStringTrimOptionalNewline(line);
/* Skip to the separator */
if (!(start = strchr(line, ':')))
@@ -153,7 +149,7 @@ virBitmap *virHostValidateGetCPUFlags(void)
if ((value = virHostValidateCPUFlagTypeFromString(*next)) >= 0)
ignore_value(virBitmapSetBit(flags, value));
}
- } while (1);
+ }
VIR_FORCE_FCLOSE(fp);
--
2.45.2

View File

@ -1,46 +0,0 @@
From d1d455fe81027fee79666b3af2551e98b68b619b Mon Sep 17 00:00:00 2001
Message-ID: <d1d455fe81027fee79666b3af2551e98b68b619b.1720800605.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Thu, 11 Jul 2024 09:32:40 +0200
Subject: [PATCH] virt-host-validate: Drop extra "PASS"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If virt-host-validate is ran on a SEV-SNP capable machine, an
extra "PASS" is printed out. This is because
virHostValidateAMDSev() prints "PASS" and then returns 1
(indicating success) which in turn makes the caller
(virHostValidateSecureGuests()) print "PASS" again. Just drop the
extra printing in the caller and let virHostValidateAMDSev() do
all the printing.
Fixes: 1a8f646f291775d2423ce4e4df62ad69f06ab827
Resolves: https://issues.redhat.com/browse/RHEL-46868
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit c9fa43c48cdb1b8505929e3287975445f3004f32)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
tools/virt-host-validate-common.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c
index a29a5b6d5f..591143c24d 100644
--- a/tools/virt-host-validate-common.c
+++ b/tools/virt-host-validate-common.c
@@ -488,11 +488,7 @@ int virHostValidateSecureGuests(const char *hvname,
return VIR_VALIDATE_FAILURE(level);
}
} else if (hasAMDSev) {
- int rc = virHostValidateAMDSev(hvname, level);
-
- if (rc > 0)
- virValidatePass();
- return rc;
+ return virHostValidateAMDSev(hvname, level);
}
virValidateFail(level,
--
2.45.2

View File

@ -1,97 +0,0 @@
From b65fb6c87242f9bdb55821217da941c33ec245d5 Mon Sep 17 00:00:00 2001
Message-ID: <b65fb6c87242f9bdb55821217da941c33ec245d5.1721637067.git.jdenemar@redhat.com>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Fri, 12 Jul 2024 10:36:37 +0200
Subject: [PATCH] vmx: Be even more lax when trying to comprehend serial ports
So much can happen in the fileName field of the VMX that the easiest
thing is to silently report a serial type="null".
This effectively reverts commits de81bdb8d4cd and 62c53db0421a, but
keeps the test files to show the fix is still in place.
There is one instance where an error gets reset, but since that is a
rare case on its own and on top of that does not happen in any of our
long-running daemons with a logfile that might get monitored it should
be fine to leave it there.
Resolves: https://issues.redhat.com/browse/RHEL-32182
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 239669049d9904e5e8da2d8b2a38d4d927a167e9)
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
src/vmx/vmx.c | 30 +++++++++++++-----------------
1 file changed, 13 insertions(+), 17 deletions(-)
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index e5bc2d793c..227744d062 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -2975,9 +2975,6 @@ virVMXParseSerial(virVMXContext *ctx, virConf *conf, int port,
char fileName_name[48] = "";
g_autofree char *fileName = NULL;
- char vspc_name[48] = "";
- g_autofree char *vspc = NULL;
-
char network_endPoint_name[48] = "";
g_autofree char *network_endPoint = NULL;
@@ -3000,7 +2997,6 @@ virVMXParseSerial(virVMXContext *ctx, virConf *conf, int port,
VMX_BUILD_NAME(startConnected);
VMX_BUILD_NAME(fileType);
VMX_BUILD_NAME(fileName);
- VMX_BUILD_NAME(vspc);
VMX_BUILD_NAME_EXTRA(network_endPoint, "network.endPoint");
/* vmx:present */
@@ -3030,10 +3026,6 @@ virVMXParseSerial(virVMXContext *ctx, virConf *conf, int port,
if (virVMXGetConfigString(conf, fileName_name, &fileName, true) < 0)
goto cleanup;
- /* vmx:fileName -> def:data.file.path */
- if (virVMXGetConfigString(conf, vspc_name, &vspc, true) < 0)
- goto cleanup;
-
/* vmx:network.endPoint -> def:data.tcp.listen */
if (virVMXGetConfigString(conf, network_endPoint_name, &network_endPoint,
true) < 0) {
@@ -3065,21 +3057,25 @@ virVMXParseSerial(virVMXContext *ctx, virConf *conf, int port,
(*def)->target.port = port;
(*def)->source->type = VIR_DOMAIN_CHR_TYPE_PIPE;
(*def)->source->data.file.path = g_steal_pointer(&fileName);
- } else if (STRCASEEQ(fileType, "network") && (vspc || !fileName || STREQ(fileName, ""))) {
- (*def)->target.port = port;
- (*def)->source->type = VIR_DOMAIN_CHR_TYPE_NULL;
} else if (STRCASEEQ(fileType, "network")) {
(*def)->target.port = port;
(*def)->source->type = VIR_DOMAIN_CHR_TYPE_TCP;
- if (!(parsedUri = virURIParse(fileName)))
- goto cleanup;
+ if (!(parsedUri = virURIParse(fileName))) {
+ /*
+ * Ignore anything we cannot parse since there are many variations
+ * that could lead to unusable or non-representable serial ports
+ * which are very commonly seen and the main consumer of this driver
+ * (virt-v2v) ignores them anyway, so let's at least not error out.
+ */
+ virResetLastError();
+ (*def)->source->type = VIR_DOMAIN_CHR_TYPE_NULL;
+ return 0;
+ }
if (parsedUri->port == 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("VMX entry '%1$s' doesn't contain a port part"),
- fileName_name);
- goto cleanup;
+ (*def)->source->type = VIR_DOMAIN_CHR_TYPE_NULL;
+ return 0;
}
(*def)->source->data.tcp.host = g_strdup(parsedUri->server);
--
2.45.2

View File

@ -1,171 +0,0 @@
From 945895b9af739a93690b1771e0e604b3a23fb7e0 Mon Sep 17 00:00:00 2001
Message-ID: <945895b9af739a93690b1771e0e604b3a23fb7e0.1720800605.git.jdenemar@redhat.com>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Mon, 8 Jul 2024 13:04:13 +0200
Subject: [PATCH] vmx: Do not require all ID data for VMWare Distributed Switch
Similarly to commit 2482801608b8 we can safely ignore connectionId,
portId and portgroupId in both XML and VMX as they are only a blind
pass-through between XML and VMX and an ethernet without such parameters
was spotted in the wild. On top of that even our documentation says the
whole VMWare Distrubuted Switch configuration is a best-effort.
Resolves: https://issues.redhat.com/browse/RHEL-46099
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit db622081e0fa55b481da1fc7fb81279224a60f88)
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
src/conf/domain_conf.c | 11 ++++-----
src/conf/schemas/domaincommon.rng | 24 ++++++++++++-------
src/vmx/vmx.c | 24 ++++++++++++-------
...-portid.vmx => ethernet-vds-no-params.vmx} | 2 --
...-portid.xml => ethernet-vds-no-params.xml} | 2 +-
5 files changed, 37 insertions(+), 26 deletions(-)
rename tests/vmx2xmldata/{ethernet-vds-no-portid.vmx => ethernet-vds-no-params.vmx} (76%)
rename tests/vmx2xmldata/{ethernet-vds-no-portid.xml => ethernet-vds-no-params.xml} (82%)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index cb1154b23f..8a3c63b1fc 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9576,15 +9576,14 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
def->data.vds.switch_id) < 0)
return NULL;
- if (virXMLPropLongLong(source_node, "portid", 0, VIR_XML_PROP_REQUIRED,
- &def->data.vds.port_id, def->data.vds.port_id) < 0)
+ if (virXMLPropLongLong(source_node, "portid", 0, VIR_XML_PROP_NONE,
+ &def->data.vds.port_id, 0) < 0)
return NULL;
- if (!(def->data.vds.portgroup_id = virXMLPropStringRequired(source_node, "portgroupid")))
- return NULL;
+ def->data.vds.portgroup_id = virXMLPropString(source_node, "portgroupid");
- if (virXMLPropLongLong(source_node, "connectionid", 0, VIR_XML_PROP_REQUIRED,
- &def->data.vds.connection_id, def->data.vds.connection_id) < 0)
+ if (virXMLPropLongLong(source_node, "connectionid", 0, VIR_XML_PROP_NONE,
+ &def->data.vds.connection_id, 0) < 0)
return NULL;
break;
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index 844a931deb..51572f3e70 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -3684,15 +3684,21 @@
<attribute name="switchid">
<ref name="UUID"/>
</attribute>
- <attribute name="portid">
- <data type="long"/>
- </attribute>
- <attribute name="portgroupid">
- <data type="string"/>
- </attribute>
- <attribute name="connectionid">
- <data type="long"/>
- </attribute>
+ <optional>
+ <attribute name="portid">
+ <data type="long"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="portgroupid">
+ <data type="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="connectionid">
+ <data type="long"/>
+ </attribute>
+ </optional>
</element>
<ref name="interface-options"/>
</interleave>
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index d082a07660..e5bc2d793c 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -2896,7 +2896,7 @@ virVMXParseEthernet(virConf *conf, int controller, virDomainNetDef **def)
if (virVMXGetConfigString(conf,
portgroupId_name,
&(*def)->data.vds.portgroup_id,
- false) < 0 ||
+ true) < 0 ||
virVMXGetConfigLong(conf,
portId_name,
&(*def)->data.vds.port_id,
@@ -2906,7 +2906,7 @@ virVMXParseEthernet(virConf *conf, int controller, virDomainNetDef **def)
connectionId_name,
&(*def)->data.vds.connection_id,
0,
- false) < 0)
+ true) < 0)
goto cleanup;
} else if (connectionType == NULL && networkName == NULL) {
(*def)->type = VIR_DOMAIN_NET_TYPE_NULL;
@@ -4038,14 +4038,22 @@ virVMXFormatEthernet(virDomainNetDef *def, int controller,
uuid[5], uuid[6], uuid[7], uuid[8], uuid[9], uuid[10],
uuid[11], uuid[12], uuid[13], uuid[14], uuid[15]);
- virBufferAsprintf(buffer, "ethernet%d.dvs.portId = \"%lld\"\n",
- controller, def->data.vds.port_id);
+ if (def->data.vds.port_id) {
+ virBufferAsprintf(buffer, "ethernet%d.dvs.portId = \"%lld\"\n",
+ controller, def->data.vds.port_id);
+ }
+
+ if (def->data.vds.portgroup_id) {
+ virBufferAsprintf(buffer, "ethernet%d.dvs.", controller);
+ virBufferEscapeString(buffer, "portgroupId = \"%s\"\n",
+ def->data.vds.portgroup_id);
+ }
- virBufferAsprintf(buffer, "ethernet%d.dvs.", controller);
- virBufferEscapeString(buffer, "portgroupId = \"%s\"\n", def->data.vds.portgroup_id);
+ if (def->data.vds.connection_id) {
+ virBufferAsprintf(buffer, "ethernet%d.dvs.connectionId = \"%lld\"\n",
+ controller, def->data.vds.connection_id);
+ }
- virBufferAsprintf(buffer, "ethernet%d.dvs.connectionId = \"%lld\"\n",
- controller, def->data.vds.connection_id);
break;
}
diff --git a/tests/vmx2xmldata/ethernet-vds-no-portid.vmx b/tests/vmx2xmldata/ethernet-vds-no-params.vmx
similarity index 76%
rename from tests/vmx2xmldata/ethernet-vds-no-portid.vmx
rename to tests/vmx2xmldata/ethernet-vds-no-params.vmx
index 7761accb3a..90afbdac30 100644
--- a/tests/vmx2xmldata/ethernet-vds-no-portid.vmx
+++ b/tests/vmx2xmldata/ethernet-vds-no-params.vmx
@@ -5,6 +5,4 @@ ethernet0.virtualDev = "e1000e"
ethernet0.addressType = "vpx"
ethernet0.generatedAddress = "00:50:56:87:65:43"
ethernet0.dvs.switchId = "50 34 26 b2 94 e9 3b 16-1d 68 87 bf ff 4a 54 40"
-ethernet0.dvs.portgroupId = "dvportgroup-1285"
-ethernet0.dvs.connectionId = "408217997"
displayName = "test"
diff --git a/tests/vmx2xmldata/ethernet-vds-no-portid.xml b/tests/vmx2xmldata/ethernet-vds-no-params.xml
similarity index 82%
rename from tests/vmx2xmldata/ethernet-vds-no-portid.xml
rename to tests/vmx2xmldata/ethernet-vds-no-params.xml
index 60fd9c99fe..0011ba471a 100644
--- a/tests/vmx2xmldata/ethernet-vds-no-portid.xml
+++ b/tests/vmx2xmldata/ethernet-vds-no-params.xml
@@ -14,7 +14,7 @@
<devices>
<interface type='vds'>
<mac address='00:50:56:87:65:43' type='generated'/>
- <source switchid='503426b2-94e9-3b16-1d68-87bfff4a5440' portid='0' portgroupid='dvportgroup-1285' connectionid='408217997'/>
+ <source switchid='503426b2-94e9-3b16-1d68-87bfff4a5440'/>
<model type='e1000e'/>
</interface>
<video>
--
2.45.2

View File

@ -1,43 +0,0 @@
From 02fdc3510afcd542bd80bf3ceada6f116555c12b Mon Sep 17 00:00:00 2001
Message-ID: <02fdc3510afcd542bd80bf3ceada6f116555c12b.1723196972.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Thu, 8 Aug 2024 14:21:20 +0200
Subject: [PATCH] vsh: Allow vshReadlineInit() to be called multiple times
Thing about vshReadlineInit() is - it's called multiple times.
The first time from vshInit(), when @ctl was filled only
partially (most notably, before any argv parsing is done, hence
ctl->imode is set to false). The second time after argv parsing,
from virshInit() -> vshInitReload(). In here, ctl->imode might
have changed and thus vshReadlineInit() can't exit early - it
needs to set up stuff for interactive mode (history basically).
To allow vshReadlineInit() to be called again,
vshReadlineDeinit() must set @autoCompleteOpaque to NULL.
Fixes: cab1e71f0161fd24c5d6ff4c379d3a242ea8c2d9
Resolves: https://issues.redhat.com/browse/RHEL-53560
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 18fd4899f3ddd8873842ab24cf39bf51b1bf3a02)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
tools/vsh.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/vsh.c b/tools/vsh.c
index 9fbb1f9349..5f5e2f281d 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -3040,6 +3040,9 @@ vshReadlineDeinit(vshControl *ctl)
g_clear_pointer(&ctl->historydir, g_free);
g_clear_pointer(&ctl->historyfile, g_free);
+
+ /* Allow vshReadlineInit() to be called again. */
+ autoCompleteOpaque = NULL;
}
char *
--
2.46.0

View File

@ -6,7 +6,7 @@
%define min_rhel 8
%define min_fedora 37
%define arches_qemu_kvm %{ix86} x86_64 %{power64} %{arm} aarch64 s390x
%define arches_qemu_kvm %{ix86} x86_64 %{power64} %{arm} aarch64 s390x riscv64
%if 0%{?rhel}
%if 0%{?rhel} > 8
%define arches_qemu_kvm x86_64 aarch64 s390x
@ -19,7 +19,7 @@
%define arches_x86 %{ix86} x86_64
%define arches_systemtap_64bit %{arches_64bit}
%define arches_dmidecode %{arches_x86}
%define arches_dmidecode %{arches_x86} aarch64 riscv64
%define arches_xen %{arches_x86} aarch64
%if 0%{?fedora}
%define arches_xen x86_64 aarch64
@ -288,8 +288,8 @@
Summary: Library providing a simple virtualization API
Name: libvirt
Version: 10.5.0
Release: 5%{?dist}%{?extra_release}
Version: 10.10.0
Release: 7%{?dist}%{?extra_release}
License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
URL: https://libvirt.org/
@ -297,20 +297,89 @@ URL: https://libvirt.org/
%define mainturl stable_updates/
%endif
Source: https://download.libvirt.org/%{?mainturl}libvirt-%{version}.tar.xz
Patch1: libvirt-vmx-Do-not-require-all-ID-data-for-VMWare-Distributed-Switch.patch
Patch2: libvirt-tests-vhostuser-add-virtiofsd-json-descriptor.patch
Patch3: libvirt-tests-qemuxmlconf-adjust-test-case-to-new-virtiofsd.patch
Patch4: libvirt-qemu-fill-capabilities-for-virtiofsd.patch
Patch5: libvirt-qemu-do-not-use-deprecated-options-for-new-virtiofsd.patch
Patch6: libvirt-qemu-migration-allow-migration-for-virtiofs.patch
Patch7: libvirt-virt-host-validate-Drop-extra-PASS.patch
Patch8: libvirt-qemu-Don-t-leave-beingDestroyed-true-on-inactive-domain.patch
Patch9: libvirt-vmx-Be-even-more-lax-when-trying-to-comprehend-serial-ports.patch
Patch10: libvirt-virt-host-validate-Allow-longer-list-of-CPU-flags.patch
Patch11: libvirt-qemu-virtiofs-cache-use-never-instead-of-none.patch
Patch12: libvirt-qemu_domain-Strip-acpi-from-s390-x-definitions.patch
Patch13: libvirt-qemuxmlconftest-Add-tests-for-the-ACPI-stripping-hack-on-s390.patch
Patch14: libvirt-vsh-Allow-vshReadlineInit-to-be-called-multiple-times.patch
Patch1: libvirt-util-Fix-typo-in-virNetDevOpenvswitchInterfaceSetQos.patch
Patch2: libvirt-qemu-tpm-do-not-update-profile-name-for-transient-domains.patch
Patch3: libvirt-qemu-Enable-I-O-APIC-if-needed.patch
Patch4: libvirt-cpu_map-Sort-data-files-in-meson.build.patch
Patch5: libvirt-sync_qemu_models_i386-Update-meson.build.patch
Patch6: libvirt-sync_qemu_models_i386-Generate-missing-v1-variants.patch
Patch7: libvirt-cpu_map-Add-486-v1-CPU-model.patch
Patch8: libvirt-cpu_map-Add-pentium-v1-CPU-model.patch
Patch9: libvirt-cpu_map-Add-pentium2-v1-CPU-model.patch
Patch10: libvirt-cpu_map-Add-pentium3-v1-CPU-model.patch
Patch11: libvirt-cpu_map-Add-coreduo-v1-CPU-model.patch
Patch12: libvirt-cpu_map-Add-n270-v1-CPU-model.patch
Patch13: libvirt-cpu_map-Add-core2duo-v1-CPU-model.patch
Patch14: libvirt-cpu_map-Add-qemu32-v1-CPU-model.patch
Patch15: libvirt-cpu_map-Add-kvm32-v1-CPU-model.patch
Patch16: libvirt-cpu_map-Add-qemu64-v1-CPU-model.patch
Patch17: libvirt-cpu_map-Add-kvm64-v1-CPU-model.patch
Patch18: libvirt-cpu_map-Add-Conroe-v1-CPU-model.patch
Patch19: libvirt-cpu_map-Add-Penryn-v1-CPU-model.patch
Patch20: libvirt-cpu_map-Add-KnightsMill-v1-CPU-model.patch
Patch21: libvirt-cpu_map-Add-athlon-v1-CPU-model.patch
Patch22: libvirt-cpu_map-Add-phenom-v1-CPU-model.patch
Patch23: libvirt-cpu_map-Add-Opteron_G1-v1-CPU-model.patch
Patch24: libvirt-cpu_map-Add-Opteron_G2-v1-CPU-model.patch
Patch25: libvirt-cpu_map-Add-Opteron_G3-v1-CPU-model.patch
Patch26: libvirt-cpu_map-Add-Opteron_G4-v1-CPU-model.patch
Patch27: libvirt-cpu_map-Add-Opteron_G5-v1-CPU-model.patch
Patch28: libvirt-cpu_map-Add-EPYC-Genoa-v1-CPU-model.patch
Patch29: libvirt-qemu-Enable-I-O-APIC-even-more-frequently.patch
Patch30: libvirt-conf-docs-Add-support-for-direct-and-extended-tlbflush-features.patch
Patch31: libvirt-qemu-Add-support-for-direct-and-extended-tlbflush-features.patch
Patch32: libvirt-conf-refactor-hyperv-features-formatting.patch
Patch33: libvirt-conf-Adjust-hyperv-tlbflush-formatting.patch
Patch34: libvirt-qemu_migration-Do-not-consider-post-copy-active-in-postcopy-recover.patch
Patch35: libvirt-qemu-allow-migration-of-guest-with-mdev-vGPU-to-VF-vGPU.patch
Patch36: libvirt-storage_file-Refuse-qcow2-images-with-empty-string-as-data_file.patch
Patch37: libvirt-virstoragetest-Add-case-for-qcow2-image-with-empty-string-as-data_file.patch
Patch38: libvirt-qemu-snapshot-delete-disk-image-only-if-parent-snapshot-is-external.patch
Patch39: libvirt-storage_file-de-modularize-the-local-file-backend.patch
Patch40: libvirt-qemu-re-use-existing-ActualNetDef-for-more-interface-types-during-update-device.patch
Patch41: libvirt-tools-ssh-proxy-Check-for-domain-status-before-parsing-its-CID.patch
Patch42: libvirt-build-Bump-minimum-glib2-version-to-2.66.0.patch
Patch43: libvirt-qemuProcessHandleIOError-Refactor-to-extract-priv-instead-of-driver.patch
Patch44: libvirt-qemu-Handle-quirks-of-device-field-of-BLOCK_IO_ERROR-event-in-monitor-code.patch
Patch45: libvirt-qemu-Rename-diskAlias-to-device-in-qemu-IO-error-event-handling.patch
Patch46: libvirt-qemuProcessHandleIOError-Rename-local-variables.patch
Patch47: libvirt-qemuMonitorJSONHandleIOError-Do-not-munge-reason-field-of-IO-error-event.patch
Patch48: libvirt-qemuProcessHandleIOError-Prefer-lookup-by-node-name.patch
Patch49: libvirt-qemuMonitorJSONHandleIOError-Propagate-new-qom-path-field.patch
Patch50: libvirt-virStorageSource-Add-fields-for-storing-last-I-O-error-message.patch
Patch51: libvirt-qemuProcessHandleIOError-Populate-I-O-error-reason-to-virStorageSource.patch
Patch52: libvirt-qemuProcessHandleIOError-Log-IO-errors-in-the-VM-log-file.patch
Patch53: libvirt-libxlDomainGetMessages-Add-existing-flags-to-virCheckFlags.patch
Patch54: libvirt-virDomainObjGetMessages-Refactor-using-GPtrArray.patch
Patch55: libvirt-virDomainGetMessages-Introduce-VIR_DOMAIN_MESSAGE_IOERRORS.patch
Patch56: libvirt-include-libvirt-domain-Reword-documentation-for-reason-of-VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON.patch
Patch57: libvirt-include-libvirt-domain-Add-message-reason-of-VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON.patch
Patch58: libvirt-qemuSnapshotForEachQcow2-Don-t-initialize-nrollback.patch
Patch59: libvirt-qemu-process-Export-qemuPrepareNVRAM-for-use-in-snapshot-code.patch
Patch60: libvirt-qemu-snapshot-Ensure-that-NVRAM-image-exists-when-taking-inactive-internal-snapshot.patch
Patch61: libvirt-qemuxmlconftest-Allow-testing-of-the-writable-flag-for-passed-FDs-for-disks.patch
Patch62: libvirt-qemuxmlconftest-Add-testing-of-FDs-with-writable-flag-in-disk-source-fd.patch
Patch63: libvirt-qemu-domain-Initialize-FD-passthrough-for-a-virStorageSource-before-using-it.patch
Patch64: libvirt-qemu_migration-Refactor-qemuMigrationSrcRestoreDomainState.patch
Patch65: libvirt-qemu_migration-Do-not-automatically-resume-domain-after-I-O-error.patch
Patch66: libvirt-qemucapabilitiestest-Add-data-for-the-qemu-10.0-dev-cycle-on-x86_64.patch
Patch67: libvirt-qemucapabilitiestest-Update-caps_10.0.0_x86_64-to-v9.2.0-1636-gffaf7f0376.patch
Patch68: libvirt-qemu-capabilies-Introduce-QEMU_CAPS_BLOCKDEV_SET_ACTIVE.patch
Patch69: libvirt-qemu-monitor-Add-monitor-backend-for-blockdev-set-active.patch
Patch70: libvirt-qemu-migration-Reactivate-block-nodes-after-migration-if-VM-is-left-paused.patch
Patch71: libvirt-conf-change-virDomainHostdevInsert-to-return-void.patch
Patch72: libvirt-qemu-fix-qemu-validation-to-forbid-guest-side-IP-address-for-type-vdpa.patch
Patch73: libvirt-qemu-validate-that-model-is-virtio-for-vhostuser-and-vdpa-interfaces-in-the-same-place.patch
Patch74: libvirt-qemu-automatically-set-model-type-virtio-for-interface-type-vhostuser.patch
Patch75: libvirt-qemu-do-all-vhostuser-attribute-validation-in-qemu-driver.patch
Patch76: libvirt-conf-qemu-make-source-element-almost-optional-for-type-vhostuser.patch
Patch77: libvirt-qemu-use-switch-instead-of-if-in-qemuProcessPrepareDomainNetwork.patch
Patch78: libvirt-qemu-make-qemuPasstCreateSocketPath-public.patch
Patch79: libvirt-qemu-complete-vhostuser-passt-support.patch
Patch80: libvirt-qemu-fail-validation-if-a-domain-def-has-vhostuser-passt-but-no-shared-mem.patch
Patch81: libvirt-docs-improve-type-user-docs-to-higlight-differences-between-SLIRP-and-passt.patch
Patch82: libvirt-docs-document-using-passt-backend-with-interface-type-vhostuser.patch
Patch83: libvirt-utils-Canonicalize-paths-before-comparing-them.patch
Requires: libvirt-daemon = %{version}-%{release}
@ -363,7 +432,7 @@ BuildRequires: gcc
%if %{with_libxl}
BuildRequires: xen-devel
%endif
BuildRequires: glib2-devel >= 2.58
BuildRequires: glib2-devel >= 2.66
BuildRequires: libxml2-devel
BuildRequires: readline-devel
BuildRequires: pkgconfig(bash-completion) >= 2.0
@ -376,7 +445,7 @@ BuildRequires: libblkid-devel >= 2.17
BuildRequires: augeas
BuildRequires: systemd-devel >= 185
BuildRequires: libpciaccess-devel >= 0.10.9
BuildRequires: yajl-devel
BuildRequires: json-c-devel
%if %{with_sanlock}
BuildRequires: sanlock-devel >= 2.4
%endif
@ -440,12 +509,10 @@ BuildRequires: libcurl-devel
BuildRequires: libwsman-devel >= 2.6.3
%endif
BuildRequires: audit-libs-devel
# we need /usr/sbin/dtrace
BuildRequires: systemtap-sdt-devel
BuildRequires: /usr/bin/dtrace
# For mount/umount in FS driver
BuildRequires: util-linux
# For showmount in FS driver (netfs discovery)
BuildRequires: nfs-utils
%if %{with_numad}
BuildRequires: numad
%endif
@ -684,7 +751,7 @@ an implementation of the secret key APIs.
Summary: Storage driver plugin including base backends for the libvirtd daemon
Requires: libvirt-daemon-common = %{version}-%{release}
Requires: libvirt-libs = %{version}-%{release}
Requires: nfs-utils
Recommends: nfs-utils
# For mkfs
Requires: util-linux
# For storage wiping with different algorithms
@ -1010,7 +1077,6 @@ Requires: libvirt-daemon-driver-libxl = %{version}-%{release}
Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
Requires: xen
@ -1387,7 +1453,7 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
-Dapparmor_profiles=disabled \
-Dsecdriver_apparmor=disabled \
-Dudev=enabled \
-Dyajl=enabled \
-Djson_c=enabled \
%{?arg_sanlock} \
-Dlibpcap=enabled \
%{?arg_nbdkit} \
@ -1459,6 +1525,7 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
-Dfuse=disabled \
-Dglusterfs=disabled \
-Dhost_validate=disabled \
-Djson_c=disabled \
-Dlibiscsi=disabled \
-Dnbdkit=disabled \
-Dnbdkit_config_default=disabled \
@ -1501,7 +1568,6 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
-Dtests=disabled \
-Dudev=disabled \
-Dwireshark_dissector=disabled \
-Dyajl=disabled \
%{?enable_werror}
%mingw_ninja
%endif
@ -2059,7 +2125,7 @@ exit 0
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
%dir %{_datadir}/libvirt/
%ghost %dir %{_rundir}/libvirt/
%ghost %dir %{_rundir}/libvirt/common/
%ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/common/
%dir %attr(0755, root, root) %{_localstatedir}/lib/libvirt/
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/images/
%dir %attr(0711, root, root) %{_localstatedir}/lib/libvirt/filesystems/
@ -2068,7 +2134,6 @@ exit 0
%dir %attr(0755, root, root) %{_libdir}/libvirt/
%dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
%dir %attr(0755, root, root) %{_libdir}/libvirt/storage-backend/
%dir %attr(0755, root, root) %{_libdir}/libvirt/storage-file/
%{_datadir}/polkit-1/actions/org.libvirt.unix.policy
%{_datadir}/polkit-1/actions/org.libvirt.api.policy
%{_datadir}/polkit-1/rules.d/50-libvirt.rules
@ -2145,7 +2210,7 @@ exit 0
%{_unitdir}/virtinterfaced-ro.socket
%{_unitdir}/virtinterfaced-admin.socket
%attr(0755, root, root) %{_sbindir}/virtinterfaced
%ghost %dir %{_rundir}/libvirt/interface/
%ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/interface/
%{_libdir}/libvirt/connection-driver/libvirt_driver_interface.so
%{_mandir}/man8/virtinterfaced.8*
@ -2187,7 +2252,7 @@ exit 0
%{_unitdir}/virtnodedevd-ro.socket
%{_unitdir}/virtnodedevd-admin.socket
%attr(0755, root, root) %{_sbindir}/virtnodedevd
%ghost %dir %{_rundir}/libvirt/nodedev/
%ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/nodedev/
%{_libdir}/libvirt/connection-driver/libvirt_driver_nodedev.so
%{_mandir}/man8/virtnodedevd.8*
@ -2202,8 +2267,8 @@ exit 0
%attr(0755, root, root) %{_sbindir}/virtnwfilterd
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/nwfilter/
%ghost %dir %{_rundir}/libvirt/network/
%ghost %dir %{_rundir}/libvirt/nwfilter-binding/
%ghost %dir %{_rundir}/libvirt/nwfilter/
%ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/nwfilter-binding/
%ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/nwfilter/
%{_libdir}/libvirt/connection-driver/libvirt_driver_nwfilter.so
%{_mandir}/man8/virtnwfilterd.8*
@ -2217,7 +2282,7 @@ exit 0
%{_unitdir}/virtsecretd-admin.socket
%attr(0755, root, root) %{_sbindir}/virtsecretd
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/secrets/
%ghost %dir %{_rundir}/libvirt/secrets/
%ghost %dir %attr(0700, root, root) %{_rundir}/libvirt/secrets/
%{_libdir}/libvirt/connection-driver/libvirt_driver_secret.so
%{_mandir}/man8/virtsecretd.8*
@ -2238,7 +2303,6 @@ exit 0
%ghost %dir %{_rundir}/libvirt/storage/
%{_libdir}/libvirt/connection-driver/libvirt_driver_storage.so
%{_libdir}/libvirt/storage-backend/libvirt_storage_backend_fs.so
%{_libdir}/libvirt/storage-file/libvirt_storage_file_fs.so
%{_mandir}/man8/virtstoraged.8*
%files daemon-driver-storage-disk
@ -2264,6 +2328,7 @@ exit 0
%if %{with_storage_gluster}
%files daemon-driver-storage-gluster
%{_libdir}/libvirt/storage-backend/libvirt_storage_backend_gluster.so
%dir %attr(0755, root, root) %{_libdir}/libvirt/storage-file/
%{_libdir}/libvirt/storage-file/libvirt_storage_file_gluster.so
%endif
@ -2296,11 +2361,11 @@ exit 0
%config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
%config(noreplace) %{_sysconfdir}/libvirt/qemu-lockd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu
%ghost %dir %{_rundir}/libvirt/qemu/
%ghost %dir %{_rundir}/libvirt/qemu/dbus/
%ghost %dir %{_rundir}/libvirt/qemu/passt/
%ghost %dir %{_rundir}/libvirt/qemu/slirp/
%ghost %dir %{_rundir}/libvirt/qemu/swtpm/
%ghost %dir %attr(0755, %{qemu_user}, %{qemu_group}) %{_rundir}/libvirt/qemu/
%ghost %dir %attr(0770, %{qemu_user}, %{qemu_group}) %{_rundir}/libvirt/qemu/dbus/
%ghost %dir %attr(0755, %{qemu_user}, %{qemu_group}) %{_rundir}/libvirt/qemu/passt/
%ghost %dir %attr(0755, %{qemu_user}, %{qemu_group}) %{_rundir}/libvirt/qemu/slirp/
%ghost %dir %attr(0770, %{qemu_user}, %{qemu_group}) %{_rundir}/libvirt/qemu/swtpm/
%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/checkpoint/
%dir %attr(0751, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/dump/
@ -2639,6 +2704,130 @@ exit 0
%endif
%changelog
* Mon Feb 17 2025 Jiri Denemark <jdenemar@redhat.com> - 10.10.0-7
- qemu_migration: Refactor qemuMigrationSrcRestoreDomainState (RHEL-79168)
- qemu_migration: Do not automatically resume domain after I/O error (RHEL-79168)
- qemucapabilitiestest: Add data for the qemu-10.0 dev cycle on x86_64 (RHEL-79095)
- qemucapabilitiestest: Update 'caps_10.0.0_x86_64' to 'v9.2.0-1636-gffaf7f0376' (RHEL-79095)
- qemu: capabilies: Introduce QEMU_CAPS_BLOCKDEV_SET_ACTIVE (RHEL-79095)
- qemu: monitor: Add monitor backend for 'blockdev-set-active' (RHEL-79095)
- qemu: migration: Reactivate block nodes after migration if VM is left paused (RHEL-79095)
- conf: change virDomainHostdevInsert() to return void (RHEL-69455)
- qemu: fix qemu validation to forbid guest-side IP address for type='vdpa' (RHEL-69455)
- qemu: validate that model is virtio for vhostuser and vdpa interfaces in the same place (RHEL-69455)
- qemu: automatically set model type='virtio' for interface type='vhostuser' (RHEL-69455)
- qemu: do all vhostuser attribute validation in qemu driver (RHEL-69455)
- conf/qemu: make <source> element *almost* optional for type=vhostuser (RHEL-69455)
- qemu: use switch instead of if in qemuProcessPrepareDomainNetwork() (RHEL-69455)
- qemu: make qemuPasstCreateSocketPath() public (RHEL-69455)
- qemu: complete vhostuser + passt support (RHEL-69455)
- qemu: fail validation if a domain def has vhostuser/passt but no shared mem (RHEL-69455)
- docs: improve type='user' docs to higlight differences between SLIRP and passt (RHEL-69455)
- docs: document using passt backend with <interface type='vhostuser'> (RHEL-69455)
- utils: Canonicalize paths before comparing them (RHEL-79166)
* Fri Feb 7 2025 Jiri Denemark <jdenemar@redhat.com> - 10.10.0-6
- build: Bump minimum glib2 version to 2.66.0 (RHEL-77884)
- qemuProcessHandleIOError: Refactor to extract 'priv' instead of 'driver' (RHEL-77884)
- qemu: Handle quirks of 'device' field of BLOCK_IO_ERROR event in monitor code (RHEL-77884)
- qemu: Rename 'diskAlias' to 'device' in qemu IO error event handling (RHEL-77884)
- qemuProcessHandleIOError: Rename local variables (RHEL-77884)
- qemuMonitorJSONHandleIOError: Do not munge 'reason' field of IO error event (RHEL-77884)
- qemuProcessHandleIOError: Prefer lookup by node name (RHEL-77884)
- qemuMonitorJSONHandleIOError: Propagate new 'qom-path' field (RHEL-77884)
- virStorageSource: Add fields for storing last I/O error message (RHEL-77884)
- qemuProcessHandleIOError: Populate I/O error reason to virStorageSource (RHEL-77884)
- qemuProcessHandleIOError: Log IO errors in the VM log file (RHEL-77884)
- libxlDomainGetMessages: Add existing flags to 'virCheckFlags' (RHEL-77884)
- virDomainObjGetMessages: Refactor using GPtrArray (RHEL-77884)
- virDomainGetMessages: Introduce VIR_DOMAIN_MESSAGE_IOERRORS (RHEL-77884)
- include: libvirt-domain: Reword documentation for @reason of VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON (RHEL-77884)
- include: libvirt-domain: Add 'message' @reason of VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON (RHEL-77884)
- qemuSnapshotForEachQcow2: Don't initialize 'nrollback' (RHEL-73315)
- qemu: process: Export qemuPrepareNVRAM for use in snapshot code (RHEL-73315)
- qemu: snapshot: Ensure that NVRAM image exists when taking inactive internal snapshot (RHEL-73315)
- qemuxmlconftest: Allow testing of the 'writable' flag for passed FDs for disks (RHEL-37519)
- qemuxmlconftest: Add testing of FDs with 'writable' flag in 'disk-source-fd' (RHEL-37519)
- qemu: domain: Initialize FD passthrough for a virStorageSource before using it (RHEL-37519)
* Fri Jan 24 2025 Jiri Denemark <jdenemar@redhat.com> - 10.10.0-5
- qemu: allow migration of guest with mdev vGPU to VF vGPU (RHEL-68064)
- storage_file: Refuse qcow2 images with empty string as 'data_file' (RHEL-73504)
- virstoragetest: Add case for qcow2 image with empty string as 'data_file' (RHEL-73504)
- qemu: snapshot: delete disk image only if parent snapshot is external (RHEL-74041)
- storage_file: de-modularize the local file backend (RHEL-73507)
- libvirt.spec: Move ownership of 'storage-file' backends directory to gluster (RHEL-73507)
- qemu: re-use existing ActualNetDef for more interface types during update-device (RHEL-7036)
- tools: ssh-proxy: Check for domain status before parsing its CID (RHEL-75577)
* Thu Jan 16 2025 Jiri Denemark <jdenemar@redhat.com> - 10.10.0-4
- conf, docs: Add support for direct and extended tlbflush features (RHEL-7122)
- qemu: Add support for direct and extended tlbflush features (RHEL-7122)
- conf: refactor hyperv features formatting (RHEL-7122)
- conf: Adjust hyperv tlbflush formatting (RHEL-7122)
- qemu_migration: Do not consider post-copy active in postcopy-recover (RHEL-73085)
* Fri Dec 20 2024 Jiri Denemark <jdenemar@redhat.com> - 10.10.0-3
- qemu: Enable I/O APIC even more frequently (RHEL-65844)
* Tue Dec 17 2024 Jiri Denemark <jdenemar@redhat.com> - 10.10.0-2
- util: Fix typo in virNetDevOpenvswitchInterfaceSetQos (RHEL-69938)
- qemu: tpm: do not update profile name for transient domains (RHEL-71072)
- qemu: Enable I/O APIC if needed (RHEL-65844)
- cpu_map: Sort data files in meson.build (RHEL-70052)
- sync_qemu_models_i386: Update meson.build (RHEL-70052)
- sync_qemu_models_i386: Generate missing -v1 variants (RHEL-70052)
- cpu_map: Add 486-v1 CPU model (RHEL-70052)
- cpu_map: Add pentium-v1 CPU model (RHEL-70052)
- cpu_map: Add pentium2-v1 CPU model (RHEL-70052)
- cpu_map: Add pentium3-v1 CPU model (RHEL-70052)
- cpu_map: Add coreduo-v1 CPU model (RHEL-70052)
- cpu_map: Add n270-v1 CPU model (RHEL-70052)
- cpu_map: Add core2duo-v1 CPU model (RHEL-70052)
- cpu_map: Add qemu32-v1 CPU model (RHEL-70052)
- cpu_map: Add kvm32-v1 CPU model (RHEL-70052)
- cpu_map: Add qemu64-v1 CPU model (RHEL-70052)
- cpu_map: Add kvm64-v1 CPU model (RHEL-70052)
- cpu_map: Add Conroe-v1 CPU model (RHEL-70052)
- cpu_map: Add Penryn-v1 CPU model (RHEL-70052)
- cpu_map: Add KnightsMill-v1 CPU model (RHEL-70052)
- cpu_map: Add athlon-v1 CPU model (RHEL-70052)
- cpu_map: Add phenom-v1 CPU model (RHEL-70052)
- cpu_map: Add Opteron_G1-v1 CPU model (RHEL-70052)
- cpu_map: Add Opteron_G2-v1 CPU model (RHEL-70052)
- cpu_map: Add Opteron_G3-v1 CPU model (RHEL-70052)
- cpu_map: Add Opteron_G4-v1 CPU model (RHEL-70052)
- cpu_map: Add Opteron_G5-v1 CPU model (RHEL-70052)
- cpu_map: Add EPYC-Genoa-v1 CPU model (RHEL-70052)
* Mon Dec 2 2024 Jiri Denemark <jdenemar@redhat.com> - 10.10.0-1
- Rebased to libvirt-10.10.0 (RHEL-50574)
- The rebase also fixes the following bugs:
RHEL-23607, RHEL-24850, RHEL-29267, RHEL-30842, RHEL-53963
RHEL-54325, RHEL-54326, RHEL-55240, RHEL-64341, RHEL-65372
RHEL-65780, RHEL-65844, RHEL-67702, RHEL-67836, RHEL-68614
RHEL-69417
* Fri Nov 1 2024 Jiri Denemark <jdenemar@redhat.com> - 10.9.0-1
- Rebased to libvirt-10.9.0 (RHEL-50574)
- The rebase also fixes the following bugs:
RHEL-7036, RHEL-7122, RHEL-35752, RHEL-46870, RHEL-52314
RHEL-60030, RHEL-60033, RHEL-64341
* Thu Oct 10 2024 Jiri Denemark <jdenemar@redhat.com> - 10.8.0-2
- Revert "network: *un*set the firewalld zone while shutting down a network" (RHEL-61576)
- Revert "network: support setting firewalld zone for bridge device of open networks" (RHEL-61576)
- network: call network(Add|Remove)FirewallRules() for forward mode='open' (RHEL-61576)
- network: a different way of supporting firewalld zone for mode='open' networks (RHEL-61576)
- network: a different implementation of *un*setting firewalld zone when network is destroyed (RHEL-61576)
* Wed Oct 2 2024 Jiri Denemark <jdenemar@redhat.com> - 10.8.0-1
- Rebased to libvirt-10.8.0 (RHEL-50574)
- The rebase also fixes the following bugs:
RHEL-688, RHEL-7122, RHEL-19379, RHEL-22166, RHEL-24746
RHEL-28827, RHEL-45200, RHEL-45952, RHEL-53964, RHEL-54550
RHEL-56611, RHEL-58446
* Fri Aug 9 2024 Jiri Denemark <jdenemar@redhat.com> - 10.5.0-5
- qemu: virtiofs: cache: use 'never' instead of 'none' (RHEL-50329)
- qemu_domain: Strip <acpi/> from s390(x) definitions (RHEL-49516)