import CS libvirt-11.10.0-12.el9

This commit is contained in:
AlmaLinux RelEng Bot 2026-03-30 10:01:18 -04:00
parent 2d208de5b8
commit 365ef81350
234 changed files with 18944 additions and 150122 deletions

2
.gitignore vendored
View File

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

View File

@ -1 +1 @@
7e76874bdcd1b220d90619c1ce7a876b6c9a8d78 SOURCES/libvirt-10.10.0.tar.xz
f36316de87378f52ae9c237d936c28b0f3210253 SOURCES/libvirt-11.10.0.tar.xz

View File

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

View File

@ -0,0 +1,248 @@
From d3031b230cc8300541a3ec39bf80b78d11ac15d6 Mon Sep 17 00:00:00 2001
Message-ID: <d3031b230cc8300541a3ec39bf80b78d11ac15d6.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 29 Jan 2026 18:10:26 +0100
Subject: [PATCH] Expose latency histograms via 'virConnectGetAllDomainStats'
Add documentation and constants for constructing the stats field names
for latency histograms and expose them in the qemu driver:
Example:
block.1.latency_histogram.read.bin.count=9
block.1.latency_histogram.read.bin.0.start=0
block.1.latency_histogram.read.bin.0.value=0
block.1.latency_histogram.read.bin.1.start=10
block.1.latency_histogram.read.bin.1.value=0
block.1.latency_histogram.read.bin.2.start=100
block.1.latency_histogram.read.bin.2.value=0
block.1.latency_histogram.read.bin.3.start=1000
block.1.latency_histogram.read.bin.3.value=1047
block.1.latency_histogram.read.bin.4.start=10000
block.1.latency_histogram.read.bin.4.value=2131
block.1.latency_histogram.read.bin.5.start=100000
block.1.latency_histogram.read.bin.5.value=0
block.1.latency_histogram.read.bin.6.start=1000000
block.1.latency_histogram.read.bin.6.value=0
block.1.latency_histogram.read.bin.7.start=10000000
block.1.latency_histogram.read.bin.7.value=0
block.1.latency_histogram.read.bin.8.start=100000000
block.1.latency_histogram.read.bin.8.value=0
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 237e49127a9390f054e33e689ba9db1587cdc9f1)
https://issues.redhat.com/browse/RHEL-147866 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-131335 [rhel-10.2]
---
docs/manpages/virsh.rst | 7 ++
include/libvirt/libvirt-domain.h | 113 +++++++++++++++++++++++++++++++
src/qemu/qemu_driver.c | 43 ++++++++++++
3 files changed, 163 insertions(+)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index a9d691824e..ff0cf1a715 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -2811,6 +2811,13 @@ Information listed includes:
pending write operations in the defined interval
* ``block.<num>.timed_group.<num>.zone_append_queue_depth_avg`` - average number
of pending zone append operations in the defined interval
+* ``block.<num>.latency_histogram.<type>.bin.count`` - number of bins in
+ latency histogram. <type> is one of ``read``, ``write``, ``zone_append``, or
+ ``flush``
+* ``block.<num>.latency_histogram.<type>.bin.<num>.start`` start boundary of
+ a latency histogram bin in nanoseconds of given operation duration
+* ``block.<num>.latency_histogram.<type>.bin.<num>.value`` current number of
+ events corresponding to the given bin and type
*--iothread* returns information about IOThreads on the running guest
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index 16fac6b085..8e62bd23d4 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -3815,6 +3815,119 @@ struct _virDomainStatsRecord {
*/
# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_TIMED_GROUP_SUFFIX_ZONE_APPEND_QUEUE_DEPTH_AVG ".zone_append_queue_depth_avg"
+/**
+ * VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_READ_PREFIX:
+ *
+ * The parameter name prefix to access 'read' latency histograms. Concatenate
+ * the prefix with either:
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_COUNT
+ * to get the number of bins in given histogram
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_PREFIX and
+ * entry number formatted as an unsigned integer and one of the latency
+ * histogram suffix parameters to compelte a full bin parameter name
+ *
+ * Since: 12.1.0
+ */
+# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_READ_PREFIX ".latency_histogram.read."
+
+/**
+ * VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_WRITE_PREFIX:
+ *
+ * The parameter name prefix to access 'write' latency histograms. Concatenate
+ * the prefix with either:
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_COUNT
+ * to get the number of bins in given histogram
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_PREFIX and
+ * entry number formatted as an unsigned integer and one of the latency
+ * histogram suffix parameters to compelte a full bin parameter name
+ *
+ * Since: 12.1.0
+ */
+# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_WRITE_PREFIX ".latency_histogram.write."
+
+/**
+ * VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_ZONE_APPEND_PREFIX:
+ *
+ * The parameter name prefix to access 'zone_append' latency histograms. Concatenate
+ * the prefix with either:
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_COUNT
+ * to get the number of bins in given histogram
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_PREFIX and
+ * entry number formatted as an unsigned integer and one of the latency
+ * histogram suffix parameters to compelte a full bin parameter name
+ *
+ * Since: 12.1.0
+ */
+# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_ZONE_APPEND_PREFIX ".latency_histogram.zone_append."
+
+/**
+ * VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_FLUSH_PREFIX:
+ *
+ * The parameter name prefix to access 'flush' latency histograms. Concatenate
+ * the prefix with either:
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_COUNT
+ * to get the number of bins in given histogram
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_PREFIX and
+ * entry number formatted as an unsigned integer and one of the latency
+ * histogram suffix parameters to compelte a full bin parameter name
+ *
+ * Since: 12.1.0
+ */
+# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_FLUSH_PREFIX ".latency_histogram.flush."
+
+/**
+ * VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_COUNT:
+ *
+ * The parameter name suffix to access number of bins in one of the following
+ * latency histogram types:
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_READ_PREFIX
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_WRITE_PREFIX
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_ZONE_APPEND_PREFIX
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_FLUSH_PREFIX
+ *
+ * Number of bins in latency histogram as unsigned long long.
+ *
+ * Since: 12.1.0
+ */
+# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_COUNT "bin.count"
+
+/**
+ * VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_PREFIX:
+ *
+ * The parameter name suffix to access a latency histogram bin in one of the
+ * following latency histogram types:
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_READ_PREFIX
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_WRITE_PREFIX
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_ZONE_APPEND_PREFIX
+ * - VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_FLUSH_PREFIX
+ *
+ * Concatenate with a bin number as unsigned int and one of the other field
+ * suffixes to access bin parameters.
+ *
+ * Since: 12.1.0
+ */
+# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_PREFIX "bin."
+
+/**
+ * VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_SUFFIX_START:
+ *
+ * Start of the current latency histogram bin in nanoseconds as unsigned long long.
+ *
+ * Since: 12.1.0
+ */
+# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_SUFFIX_START ".start"
+
+/**
+ * VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_SUFFIX_VALUE:
+ *
+ * Current value of the number of occurences of the latency within this bin
+ * as unsigned long long.
+ *
+ * Since: 12.1.0
+ */
+# define VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_SUFFIX_VALUE ".value"
+
+
/**
* VIR_DOMAIN_STATS_PERF_CMT:
*
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 08a547c546..f3e7410f9e 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -17597,6 +17597,36 @@ qemuDomainGetStatsBlockExportBackendStorage(const char *entryname,
}
+static void
+qemuDomainGetStatsBlockExportFrontendLatencyHistogram(struct qemuBlockStatsLatencyHistogram *h,
+ size_t disk_idx,
+ const char *prefix_hist,
+ virTypedParamList *par)
+{
+ size_t i;
+
+ if (!h)
+ return;
+
+ virTypedParamListAddULLong(par, h->nbins,
+ VIR_DOMAIN_STATS_BLOCK_PREFIX "%zu%s" VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_COUNT,
+ disk_idx, prefix_hist);
+
+ for (i = 0; i < h->nbins; i++) {
+ virTypedParamListAddULLong(par, h->bins[i].start,
+ VIR_DOMAIN_STATS_BLOCK_PREFIX "%zu%s"
+ VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_PREFIX "%zu"
+ VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_SUFFIX_START,
+ disk_idx, prefix_hist, i);
+ virTypedParamListAddULLong(par, h->bins[i].value,
+ VIR_DOMAIN_STATS_BLOCK_PREFIX "%zu%s"
+ VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_PREFIX "%zu"
+ VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_SUFFIX_BIN_SUFFIX_VALUE,
+ disk_idx, prefix_hist, i);
+ }
+}
+
+
static void
qemuDomainGetStatsBlockExportFrontend(const char *frontendname,
GHashTable *stats,
@@ -17721,6 +17751,19 @@ qemuDomainGetStatsBlockExportFrontend(const char *frontendname,
idx, i);
}
}
+
+ qemuDomainGetStatsBlockExportFrontendLatencyHistogram(en->histogram_read, idx,
+ VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_READ_PREFIX,
+ par);
+ qemuDomainGetStatsBlockExportFrontendLatencyHistogram(en->histogram_write, idx,
+ VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_WRITE_PREFIX,
+ par);
+ qemuDomainGetStatsBlockExportFrontendLatencyHistogram(en->histogram_zone, idx,
+ VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_ZONE_APPEND_PREFIX,
+ par);
+ qemuDomainGetStatsBlockExportFrontendLatencyHistogram(en->histogram_flush, idx,
+ VIR_DOMAIN_STATS_BLOCK_SUFFIX_LATENCY_HISTOGRAM_FLUSH_PREFIX,
+ par);
}
--
2.53.0

View File

@ -0,0 +1,422 @@
From a26ff56a6bc216751ea6995d63396dfa634407c1 Mon Sep 17 00:00:00 2001
Message-ID: <a26ff56a6bc216751ea6995d63396dfa634407c1.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Fri, 23 Jan 2026 17:09:27 +0100
Subject: [PATCH] Introduce support for disk operation latency histogram
collection
Add config and docs allowing enabling latency histogram collection for
block device operations.
This patch sets up the docs, schema and XML infrastructure.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit b874c944bd8c4ffa6c51394557587c8c203f1656)
https://issues.redhat.com/browse/RHEL-147866 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-131335 [rhel-10.2]
---
docs/formatdomain.rst | 41 ++++++
src/conf/domain_conf.c | 133 +++++++++++++++++-
src/conf/domain_conf.h | 7 +
src/conf/schemas/domaincommon.rng | 37 ++++-
...isk-statistics-intervals.x86_64-latest.xml | 29 ++++
.../disk-statistics-intervals.xml | 25 ++++
6 files changed, 262 insertions(+), 10 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 70882c6820..31232deb3c 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -3628,6 +3628,47 @@ paravirtualized driver is specified via the ``disk`` element.
:since:`Since 11.9.0 (QEMU 10.2, virtio, ide, scsi disks only)`.
+ Block operation latency histogram collection can be configured using
+ ``<latency-histogram>`` sub-element. The histogram is collected for
+ the whole runtime of the VM, but can be re-started or reconfigured using
+ the `virDomainUpdateDeviceFlags <html/libvirt-libvirt-domain.html#virDomainUpdateDeviceFlags>`__
+ API. Using the same config re-starts histogram collection.
+
+ The optional ``type`` attribute configures specific operation to collect
+ the histogram for. Supported types are ``read``, ``write``, ``zone``, and
+ ``flush``. If the ``type`` attribute is omitted the histogram collection
+ bins bins apply to all of the aforementioned types, which can be overriden
+ with specific config.
+
+ The ``<latency-histogram>`` has multiple mandatory ``<bin>`` sub-elements
+ with mandatory ``start`` attribute configuring the starting boundary of
+ the histogram bin configured in nanosecods of the operation duration and
+ the intervals must be properly ordered and non-duplicate.
+
+ Example::
+
+ <driver name='qemu'>
+ <statistics>
+
+ <latency-histogram>
+ <bin start='0'/>
+ <bin start='1000'/>
+ <bin start='100000'/>
+ </latency-histogram>
+
+ [or for specific operation types]
+
+ <latency-histogram type='read'>
+ <bin start='0'/>
+ <bin start='1000'/>
+ <bin start='100000'/>
+ </latency-histogram>
+
+ </statistics>
+ </driver>
+
+ :since:`Since 12.1.0`.
+
- The optional ``queues`` attribute specifies the number of virt queues for
virtio-blk ( :since:`Since 3.9.0` ) or vhost-user-blk
( :since:`Since 7.1.0` )
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f5c4d135a9..83c58ab5ff 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2445,6 +2445,11 @@ virDomainDiskDefFree(virDomainDiskDef *def)
virObjectUnref(def->privateData);
g_slist_free_full(def->iothreads, (GDestroyNotify) virDomainIothreadMappingDefFree);
g_free(def->statistics);
+ g_free(def->histogram_boundaries);
+ g_free(def->histogram_boundaries_read);
+ g_free(def->histogram_boundaries_write);
+ g_free(def->histogram_boundaries_zone);
+ g_free(def->histogram_boundaries_flush);
if (def->throttlefilters) {
size_t i;
@@ -8307,6 +8312,91 @@ virDomainIothreadMappingDefParse(xmlNodePtr driverNode,
}
+static int
+virDomainDiskDefDriverParseXMLHistogramOne(virDomainDiskDef *def,
+ xmlNodePtr cur)
+{
+ g_autofree char *histogram_type = NULL;
+ unsigned int **histogram_config = NULL;
+ g_autoptr(GPtrArray) binNodes = virXMLNodeGetSubelementList(cur, "bin");
+ size_t nbins = 0;
+ size_t i;
+
+ if ((histogram_type = virXMLPropString(cur, "type"))) {
+ if (STREQ(histogram_type, "read")) {
+ histogram_config = &def->histogram_boundaries_read;
+ } else if (STREQ(histogram_type, "write")) {
+ histogram_config = &def->histogram_boundaries_write;
+ } else if (STREQ(histogram_type, "zone")) {
+ histogram_config = &def->histogram_boundaries_zone;
+ } else if (STREQ(histogram_type, "flush")) {
+ histogram_config = &def->histogram_boundaries_flush;
+ } else {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("unknown latency_histogram type '%1$s'"),
+ histogram_type);
+ return -1;
+ }
+ } else {
+ histogram_config = &def->histogram_boundaries;
+ }
+
+ if (*histogram_config) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("only one latency-histogram of a given type is supported"));
+ return -1;
+ }
+
+ if (binNodes->len == 0) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("missing 'bin' elements for 'latency-histogram'"));
+ return -1;
+ }
+
+ *histogram_config = g_new0(unsigned int, binNodes->len + 1);
+
+ for (i = 0; i < binNodes->len; i++) {
+ unsigned int val;
+
+ if (virXMLPropUInt(g_ptr_array_index(binNodes, i),
+ "start", 10,
+ VIR_XML_PROP_REQUIRED,
+ &val) < 0)
+ return -1;
+
+ if (nbins > 0 &&
+ (val == 0 ||
+ val <= (*histogram_config)[nbins-1])) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("the values of 'start' attribute of a 'latency-histogram' 'bin' configuration must be sorted and non-overlapping"));
+ return -1;
+ }
+
+ if (val > 0)
+ (*histogram_config)[nbins++] = val;
+ }
+
+ return 0;
+}
+
+
+static int
+virDomainDiskDefDriverParseXMLHistograms(virDomainDiskDef *def,
+ xmlNodePtr cur)
+{
+ g_autoptr(GPtrArray) histogramNodes = virXMLNodeGetSubelementList(cur, "latency-histogram");
+ size_t i;
+
+ for (i = 0; i < histogramNodes->len; i++) {
+ if (virDomainDiskDefDriverParseXMLHistogramOne(def,
+ g_ptr_array_index(histogramNodes, i)) < 0)
+ return -1;
+ }
+
+ return 0;
+}
+
+
static int
virDomainDiskDefDriverParseXML(virDomainDiskDef *def,
xmlNodePtr cur)
@@ -8380,6 +8470,9 @@ virDomainDiskDefDriverParseXML(virDomainDiskDef *def,
return -1;
}
}
+
+ if (virDomainDiskDefDriverParseXMLHistograms(def, statisticsNode) < 0)
+ return -1;
}
if (virXMLPropEnum(cur, "detect_zeroes",
@@ -23961,12 +24054,37 @@ virDomainDiskDefFormatThrottleFilters(virBuffer *buf,
}
+static void
+virDomainDiskDefFormatDriverHistogram(virBuffer *buf,
+ const char *type,
+ unsigned int *bins)
+{
+ g_auto(virBuffer) histogramAttrBuf = VIR_BUFFER_INITIALIZER;
+ g_auto(virBuffer) histogramChildBuf = VIR_BUFFER_INIT_CHILD(buf);
+
+ if (!bins || bins[0] == 0)
+ return;
+
+ if (type)
+ virBufferAsprintf(&histogramAttrBuf, " type='%s'", type);
+
+ /* we dont store the start boundary of the first bin but it's always there */
+ virBufferAddLit(&histogramChildBuf, "<bin start='0'/>\n");
+
+ for (; *bins > 0; bins++)
+ virBufferAsprintf(&histogramChildBuf, "<bin start='%u'/>\n", *bins);
+
+ virXMLFormatElement(buf, "latency-histogram", &histogramAttrBuf, &histogramChildBuf);
+}
+
+
static void
virDomainDiskDefFormatDriver(virBuffer *buf,
virDomainDiskDef *disk)
{
g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
+ g_auto(virBuffer) statisticsChildBuf = VIR_BUFFER_INIT_CHILD(&childBuf);
virBufferEscapeString(&attrBuf, " name='%s'", virDomainDiskGetDriver(disk));
@@ -24038,16 +24156,25 @@ virDomainDiskDefFormatDriver(virBuffer *buf,
virDomainIothreadMappingDefFormat(&childBuf, disk->iothreads);
if (disk->statistics) {
- g_auto(virBuffer) statisticsChildBuf = VIR_BUFFER_INIT_CHILD(&childBuf);
size_t i;
for (i = 0; disk->statistics[i] > 0; i++)
virBufferAsprintf(&statisticsChildBuf, "<statistic interval='%u'/>\n",
disk->statistics[i]);
-
- virXMLFormatElement(&childBuf, "statistics", NULL, &statisticsChildBuf);
}
+ virDomainDiskDefFormatDriverHistogram(&statisticsChildBuf, NULL,
+ disk->histogram_boundaries);
+ virDomainDiskDefFormatDriverHistogram(&statisticsChildBuf, "read",
+ disk->histogram_boundaries_read);
+ virDomainDiskDefFormatDriverHistogram(&statisticsChildBuf, "write",
+ disk->histogram_boundaries_write);
+ virDomainDiskDefFormatDriverHistogram(&statisticsChildBuf, "zone",
+ disk->histogram_boundaries_zone);
+ virDomainDiskDefFormatDriverHistogram(&statisticsChildBuf, "flush",
+ disk->histogram_boundaries_flush);
+
+ virXMLFormatElement(&childBuf, "statistics", NULL, &statisticsChildBuf);
virXMLFormatElement(buf, "driver", &attrBuf, &childBuf);
}
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 8f53ed96c0..b120d4a68e 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -596,6 +596,13 @@ struct _virDomainDiskDef {
GSList *iothreads; /* List of virDomainIothreadMappingDef */
unsigned int *statistics; /* Optional, zero terminated list of intervals to
collect statistics for */
+ /* optional zero terminated lists of bin boundaries for latency histograms */
+ unsigned int *histogram_boundaries;
+ unsigned int *histogram_boundaries_read;
+ unsigned int *histogram_boundaries_write;
+ unsigned int *histogram_boundaries_zone;
+ unsigned int *histogram_boundaries_flush;
+
virDomainDiskDetectZeroes detect_zeroes;
virTristateSwitch discard_no_unref;
char *domain_name; /* backend domain name */
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index 1f9ac102a0..441328a08e 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -2728,13 +2728,36 @@
</optional>
<optional>
<element name="statistics">
- <zeroOrMore>
- <element name="statistic">
- <attribute name="interval">
- <ref name="unsignedInt"/>
- </attribute>
- </element>
- </zeroOrMore>
+ <interleave>
+ <zeroOrMore>
+ <element name="statistic">
+ <attribute name="interval">
+ <ref name="unsignedInt"/>
+ </attribute>
+ </element>
+ </zeroOrMore>
+ <zeroOrMore>
+ <element name="latency-histogram">
+ <optional>
+ <attribute name='type'>
+ <choice>
+ <value>read</value>
+ <value>write</value>
+ <value>zone</value>
+ <value>flush</value>
+ </choice>
+ </attribute>
+ </optional>
+ <oneOrMore>
+ <element name='bin'>
+ <attribute name='start'>
+ <ref name="unsignedInt"/>
+ </attribute>
+ </element>
+ </oneOrMore>
+ </element>
+ </zeroOrMore>
+ </interleave>
</element>
</optional>
</interleave>
diff --git a/tests/qemuxmlconfdata/disk-statistics-intervals.x86_64-latest.xml b/tests/qemuxmlconfdata/disk-statistics-intervals.x86_64-latest.xml
index 4c55c50ef5..d02f954073 100644
--- a/tests/qemuxmlconfdata/disk-statistics-intervals.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/disk-statistics-intervals.x86_64-latest.xml
@@ -22,6 +22,11 @@
<statistics>
<statistic interval='3'/>
<statistic interval='10'/>
+ <latency-histogram>
+ <bin start='0'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
</statistics>
</driver>
<source file='/var/lib/libvirt/images/iothrtest1.img'/>
@@ -33,6 +38,30 @@
<statistics>
<statistic interval='5'/>
<statistic interval='15'/>
+ <latency-histogram type='read'>
+ <bin start='0'/>
+ <bin start='10'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
+ <latency-histogram type='write'>
+ <bin start='0'/>
+ <bin start='10'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
+ <latency-histogram type='zone'>
+ <bin start='0'/>
+ <bin start='10'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
+ <latency-histogram type='flush'>
+ <bin start='0'/>
+ <bin start='10'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
</statistics>
</driver>
<source file='/var/lib/libvirt/images/iothrtest2.img'/>
diff --git a/tests/qemuxmlconfdata/disk-statistics-intervals.xml b/tests/qemuxmlconfdata/disk-statistics-intervals.xml
index f5e801f5a8..5f9e9470d7 100644
--- a/tests/qemuxmlconfdata/disk-statistics-intervals.xml
+++ b/tests/qemuxmlconfdata/disk-statistics-intervals.xml
@@ -19,6 +19,11 @@
<statistics>
<statistic interval='3'/>
<statistic interval='10'/>
+ <latency-histogram>
+ <bin start='0'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
</statistics>
</driver>
<source file='/var/lib/libvirt/images/iothrtest1.img'/>
@@ -29,6 +34,26 @@
<statistics>
<statistic interval='5'/>
<statistic interval='15'/>
+ <latency-histogram type='read'>
+ <bin start='10'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
+ <latency-histogram type='write'>
+ <bin start='10'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
+ <latency-histogram type='zone'>
+ <bin start='10'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
+ <latency-histogram type='flush'>
+ <bin start='10'/>
+ <bin start='20'/>
+ <bin start='30'/>
+ </latency-histogram>
</statistics>
</driver>
<source file='/var/lib/libvirt/images/iothrtest2.img'/>
--
2.53.0

View File

@ -0,0 +1,125 @@
From 91aa454341b6cf9a901405b8e12d4c15a233e05a Mon Sep 17 00:00:00 2001
Message-ID: <91aa454341b6cf9a901405b8e12d4c15a233e05a.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 16 Feb 2026 15:08:54 +0100
Subject: [PATCH] RHEL-ONLY: backport test data for 'migrate-pr' capability of
'scsi-block'
In upstream qemu the capability is present starting with qemu-11.0. We
don't have the test data downstream and backporting them would be too
invasive. Backport the relevant capability detection as a
downstream-only fix.
https://issues.redhat.com/browse/RHEL-140614 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-135115 [rhel-10.2]
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
.../caps_10.2.0_x86_64.replies | 79 ++++++++++++++++++-
.../caps_10.2.0_x86_64.xml | 1 +
2 files changed, 76 insertions(+), 4 deletions(-)
diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.replies
index cb4abb4533..10db9baca1 100644
--- a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.replies
@@ -33081,10 +33081,81 @@
}
{
- "error": {
- "class": "DeviceNotFound",
- "desc": "The libvirt device dump was not collected for this version+device tuple"
- },
+ "return": [
+ {
+ "default-value": 4294967295,
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "default-value": "auto",
+ "name": "rerror",
+ "description": "Error handling policy (report/ignore/enospc/stop/auto)",
+ "type": "BlockdevOnError"
+ },
+ {
+ "default-value": 2147483647,
+ "name": "max_io_size",
+ "type": "uint64"
+ },
+ {
+ "default-value": false,
+ "name": "share-rw",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-pr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "werror",
+ "description": "Error handling policy (report/ignore/enospc/stop/auto)",
+ "type": "BlockdevOnError"
+ },
+ {
+ "default-value": 1073741824,
+ "name": "max_unmap_size",
+ "type": "uint64"
+ },
+ {
+ "default-value": -1,
+ "name": "scsi_version",
+ "type": "int32"
+ },
+ {
+ "default-value": 0,
+ "name": "rotation_rate",
+ "type": "uint16"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "default-value": 30,
+ "name": "io_timeout",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ }
+ ],
"id": "libvirt-37"
}
diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
index 7cff2c2291..7d5a75ce88 100644
--- a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
@@ -215,6 +215,7 @@
<flag name='acpi-generic-initiator'/>
<flag name='disk-timed-stats'/>
<flag name='query-accelerators'/>
+ <flag name='scsi-block.migrate-pr'/>
<version>10001091</version>
<microcodeVersion>43100287</microcodeVersion>
<package>v10.2.0-rc1-38-gfb241d0a1f</package>
--
2.53.0

View File

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

View File

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

View File

@ -0,0 +1,69 @@
From 18aa061f3b4f2b2c2ed6f07120a990935f56d93e Mon Sep 17 00:00:00 2001
Message-ID: <18aa061f3b4f2b2c2ed6f07120a990935f56d93e.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Sat, 14 Feb 2026 06:14:20 +0100
Subject: [PATCH] conf: Introduce iommufd enum for domaincaps
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 855f8fe9e2454555ba84696750e0e1501dd5ba80)
Resolves: https://issues.redhat.com/browse/RHEL-138544
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
docs/formatdomaincaps.rst | 7 +++++++
src/conf/domain_capabilities.c | 1 +
src/conf/domain_capabilities.h | 1 +
3 files changed, 9 insertions(+)
diff --git a/docs/formatdomaincaps.rst b/docs/formatdomaincaps.rst
index 8b4f0ecff3..6ba7f84f96 100644
--- a/docs/formatdomaincaps.rst
+++ b/docs/formatdomaincaps.rst
@@ -461,6 +461,10 @@ Well, only if the following is enabled:
<value>vfio</value>
<value>xen</value>
</enum>
+ <enum name='iommufd'>
+ <value>yes</value>
+ <value>no</value>
+ </enum>
</hostdev>
</devices>
</domainCapabilities>
@@ -477,6 +481,9 @@ Well, only if the following is enabled:
``mode="capabilities"``.
``pciBackend``
Options for the ``name`` attribute of the <driver/> element.
+``iommufd``
+ Options for the ``iommufd`` attribute of the <driver/> element.
+ :since:`Since 12.1.0`
RNG device
^^^^^^^^^^
diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index f843124695..49179b97ab 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -620,6 +620,7 @@ virDomainCapsDeviceHostdevFormat(virBuffer *buf,
ENUM_PROCESS(hostdev, subsysType, virDomainHostdevSubsysTypeToString);
ENUM_PROCESS(hostdev, capsType, virDomainHostdevCapsTypeToString);
ENUM_PROCESS(hostdev, pciBackend, virDeviceHostdevPCIDriverNameTypeToString);
+ ENUM_PROCESS(hostdev, iommufd, virTristateBoolTypeToString);
FORMAT_EPILOGUE(hostdev);
}
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index 437981c711..b10370db8f 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -108,6 +108,7 @@ struct _virDomainCapsDeviceHostdev {
virDomainCapsEnum subsysType; /* Info about virDomainHostdevSubsysType */
virDomainCapsEnum capsType; /* Info about virDomainHostdevCapsType */
virDomainCapsEnum pciBackend; /* Info about virDomainHostdevSubsysPCIBackendType */
+ virDomainCapsEnum iommufd; /* Info about iommufd:virTristateBool */
/* add new fields here */
};
--
2.53.0

View File

@ -0,0 +1,132 @@
From 748c9648eb88b69e3ed0847126d59d6c7a11eda8 Mon Sep 17 00:00:00 2001
Message-ID: <748c9648eb88b69e3ed0847126d59d6c7a11eda8.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Sun, 15 Feb 2026 18:19:56 +0100
Subject: [PATCH] conf: Introduce virDomainDefHasPCIHostdevWithIOMMUFD
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 4b176cfc3877cca882d63ab4ed446794d7a05722)
Resolves: https://issues.redhat.com/browse/RHEL-150353
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/conf/domain_conf.c | 14 ++++++++++++++
src/conf/domain_conf.h | 3 +++
src/libvirt_private.syms | 1 +
src/qemu/qemu_command.c | 42 ++++++++++++----------------------------
4 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 9ae48e9abc..cb047e5a3e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -32482,6 +32482,20 @@ virDomainDefHasPCIHostdev(const virDomainDef *def)
}
+bool
+virDomainDefHasPCIHostdevWithIOMMUFD(const virDomainDef *def)
+{
+ size_t i;
+
+ for (i = 0; i < def->nhostdevs; i++) {
+ if (virHostdevIsPCIDeviceWithIOMMUFD(def->hostdevs[i]))
+ return true;
+ }
+
+ return false;
+}
+
+
bool
virDomainDefHasMdevHostdev(const virDomainDef *def)
{
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index d958ed04f9..69a8e79c6d 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -4655,6 +4655,9 @@ virDomainDefHasNVMeDisk(const virDomainDef *def);
bool
virDomainDefHasPCIHostdev(const virDomainDef *def);
+bool
+virDomainDefHasPCIHostdevWithIOMMUFD(const virDomainDef *def);
+
bool
virDomainDefHasMdevHostdev(const virDomainDef *def);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 863e50ec4f..effe44fe57 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -348,6 +348,7 @@ virDomainDefHasNVMeDisk;
virDomainDefHasOldStyleROUEFI;
virDomainDefHasOldStyleUEFI;
virDomainDefHasPCIHostdev;
+virDomainDefHasPCIHostdevWithIOMMUFD;
virDomainDefHasTimer;
virDomainDefHasUSB;
virDomainDefHasVcpusOffline;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 1718097b63..482f8d8ca2 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5349,43 +5349,25 @@ qemuBuildIOMMUFDCommandLine(virCommand *cmd,
const virDomainDef *def,
virDomainObj *vm)
{
- size_t i;
qemuDomainObjPrivate *priv = vm->privateData;
g_autofree char *fdstr = g_strdup_printf("%d", priv->iommufd);
+ g_autoptr(virJSONValue) props = NULL;
+ if (!virDomainDefHasPCIHostdevWithIOMMUFD(def))
+ return 0;
- for (i = 0; i < def->nhostdevs; i++) {
- virDomainHostdevDef *hostdev = def->hostdevs[i];
- virDomainHostdevSubsys *subsys = &hostdev->source.subsys;
- g_autoptr(virJSONValue) props = NULL;
+ virCommandPassFD(cmd, priv->iommufd, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
- if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS)
- continue;
+ priv->iommufd = -1;
- if (subsys->type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
- continue;
+ if (qemuMonitorCreateObjectProps(&props, "iommufd",
+ "iommufd0",
+ "S:fd", fdstr,
+ NULL) < 0)
+ return -1;
- if (hostdev->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UNASSIGNED)
- continue;
-
- if (subsys->u.pci.driver.iommufd != VIR_TRISTATE_BOOL_YES)
- continue;
-
- virCommandPassFD(cmd, priv->iommufd, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
-
- priv->iommufd = -1;
-
- if (qemuMonitorCreateObjectProps(&props, "iommufd",
- "iommufd0",
- "S:fd", fdstr,
- NULL) < 0)
- return -1;
-
- if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0)
- return -1;
-
- break;
- }
+ if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0)
+ return -1;
return 0;
}
--
2.53.0

View File

@ -0,0 +1,89 @@
From 3864161a4d28f0ef71d435f2ae1e52e92afaac15 Mon Sep 17 00:00:00 2001
Message-ID: <3864161a4d28f0ef71d435f2ae1e52e92afaac15.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Sun, 15 Feb 2026 18:19:23 +0100
Subject: [PATCH] conf: Introduce virHostdevIsPCIDeviceWithIOMMUFD
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 97eed30948e980be8b7552fff637e828768854e4)
Resolves: https://issues.redhat.com/browse/RHEL-150353
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/conf/domain_conf.c | 15 +++++++++++++++
src/conf/domain_conf.h | 3 +++
src/libvirt_private.syms | 1 +
src/qemu/qemu_process.c | 5 +----
4 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 83c58ab5ff..9ae48e9abc 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -32758,6 +32758,21 @@ virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
}
+/**
+ * virHostdevIsPCIDeviceWithIOMMUFD:
+ * @hostdev: host device to check
+ *
+ * Returns true if @hostdev is a PCI device with IOMMUFD enabled, false otherwise.
+ */
+bool
+virHostdevIsPCIDeviceWithIOMMUFD(const virDomainHostdevDef *hostdev)
+{
+ return virHostdevIsPCIDevice(hostdev) &&
+ hostdev->source.subsys.u.pci.driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO &&
+ hostdev->source.subsys.u.pci.driver.iommufd == VIR_TRISTATE_BOOL_YES;
+}
+
+
static void
virDomainObjGetMessagesIOErrorsSrc(virStorageSource *src,
const char *diskdst,
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index b120d4a68e..d958ed04f9 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -4713,6 +4713,9 @@ virHostdevIsMdevDevice(const virDomainHostdevDef *hostdev)
bool
virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
ATTRIBUTE_NONNULL(1);
+bool
+virHostdevIsPCIDeviceWithIOMMUFD(const virDomainHostdevDef *hostdev)
+ ATTRIBUTE_NONNULL(1);
void
virDomainObjGetMessagesIOErrorsChain(virStorageSource *src,
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 9ae44e31b8..863e50ec4f 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -812,6 +812,7 @@ virDomainQemuMonitorEventNew;
virDomainQemuMonitorEventStateRegisterID;
virHostdevIsMdevDevice;
virHostdevIsPCIDevice;
+virHostdevIsPCIDeviceWithIOMMUFD;
virHostdevIsSCSIDevice;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 7e32325fa0..3bd81c55b3 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7732,10 +7732,7 @@ qemuProcessOpenVfioFds(virDomainObj *vm)
for (i = 0; i < vm->def->nhostdevs; i++) {
virDomainHostdevDef *hostdev = vm->def->hostdevs[i];
- if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
- hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
- hostdev->source.subsys.u.pci.driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO &&
- hostdev->source.subsys.u.pci.driver.iommufd == VIR_TRISTATE_BOOL_YES) {
+ if (virHostdevIsPCIDeviceWithIOMMUFD(hostdev)) {
/* Open VFIO device FD */
if (qemuProcessOpenVfioDeviceFd(hostdev) < 0)
return -1;
--
2.53.0

View File

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

View File

@ -1,198 +0,0 @@
From 2cd8164cffc5be97e2836862a4fc44578dae2b47 Mon Sep 17 00:00:00 2001
Message-ID: <2cd8164cffc5be97e2836862a4fc44578dae2b47.1752749355.git.jdenemar@redhat.com>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Fri, 14 Mar 2025 17:13:31 +0100
Subject: [PATCH] conf: add passthrough and xtsup attributes for IOMMU
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
For the newly supported AMD device.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit 856f667c8a3b44417f3b5bb42db5e8bf971bacd4)
https://issues.redhat.com/browse/RHEL-50560
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
docs/formatdomain.rst | 8 +++++
src/conf/domain_conf.c | 30 +++++++++++++++++++
src/conf/domain_conf.h | 2 ++
src/conf/domain_validate.c | 9 ++++++
src/conf/schemas/domaincommon.rng | 10 +++++++
src/qemu/qemu_command.c | 2 ++
.../amd-iommu.x86_64-latest.args | 2 +-
tests/qemuxmlconfdata/amd-iommu.xml | 2 +-
8 files changed, 63 insertions(+), 2 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index ec7bdb07d0..847c9ebc6e 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -8885,6 +8885,14 @@ Example:
example to efficiently enable more than 255 vCPUs.
:since:`Since 10.7.0` (QEMU/KVM and ``intel`` model only)
+ ``passthrough``
+ Enable passthrough. In this mode, DMA read/writes are not translated.
+ :since:`Since 11.5.0` (QEMU/KVM and ``amd`` model only)
+
+ ``xtsup``
+ Enable x2APIC mode. Useful for higher number of guest CPUs.
+ :since:`Since 11.5.0` (QEMU/KVM and ``amd`` model only)
+
The ``virtio`` IOMMU devices can further have ``address`` element as described
in `Device addresses`_ (address has to by type of ``pci``).
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 7c8591e509..286e59a4c7 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -14063,6 +14063,14 @@ virDomainIOMMUDefParseXML(virDomainXMLOption *xmlopt,
if (virXMLPropTristateSwitch(driver, "dma_translation", VIR_XML_PROP_NONE,
&iommu->dma_translation) < 0)
return NULL;
+
+ if (virXMLPropTristateSwitch(driver, "xtsup", VIR_XML_PROP_NONE,
+ &iommu->xtsup) < 0)
+ return NULL;
+
+ if (virXMLPropTristateSwitch(driver, "passthrough", VIR_XML_PROP_NONE,
+ &iommu->pt) < 0)
+ return NULL;
}
if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt,
@@ -21682,6 +21690,20 @@ virDomainIOMMUDefCheckABIStability(virDomainIOMMUDef *src,
virTristateSwitchTypeToString(src->dma_translation));
return false;
}
+ if (src->pt != dst->pt) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Target domain IOMMU device dma translation '%1$s' does not match source '%2$s'"),
+ virTristateSwitchTypeToString(dst->pt),
+ virTristateSwitchTypeToString(src->pt));
+ return false;
+ }
+ if (src->xtsup != dst->xtsup) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Target domain IOMMU device dma translation '%1$s' does not match source '%2$s'"),
+ virTristateSwitchTypeToString(dst->xtsup),
+ virTristateSwitchTypeToString(src->xtsup));
+ return false;
+ }
return virDomainDeviceInfoCheckABIStability(&src->info, &dst->info);
}
@@ -27735,6 +27757,14 @@ virDomainIOMMUDefFormat(virBuffer *buf,
virBufferAsprintf(&driverAttrBuf, " dma_translation='%s'",
virTristateSwitchTypeToString(iommu->dma_translation));
}
+ if (iommu->pt != VIR_TRISTATE_SWITCH_ABSENT) {
+ virBufferAsprintf(&driverAttrBuf, " passthrough='%s'",
+ virTristateSwitchTypeToString(iommu->pt));
+ }
+ if (iommu->xtsup != VIR_TRISTATE_SWITCH_ABSENT) {
+ virBufferAsprintf(&driverAttrBuf, " xtsup='%s'",
+ virTristateSwitchTypeToString(iommu->xtsup));
+ }
virXMLFormatElement(&childBuf, "driver", &driverAttrBuf, NULL);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 343bb9bae0..e59d2e6c5f 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2987,6 +2987,8 @@ struct _virDomainIOMMUDef {
unsigned int aw_bits;
virDomainDeviceInfo info;
virTristateSwitch dma_translation;
+ virTristateSwitch xtsup;
+ virTristateSwitch pt;
};
typedef enum {
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 483cfbbe08..522fd0174f 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2999,6 +2999,15 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *iommu)
break;
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
+ if (iommu->pt != VIR_TRISTATE_SWITCH_ABSENT ||
+ iommu->xtsup != VIR_TRISTATE_SWITCH_ABSENT) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("iommu model '%1$s' doesn't support some additional attributes"),
+ virDomainIOMMUModelTypeToString(iommu->model));
+ return -1;
+ }
+ break;
+
case VIR_DOMAIN_IOMMU_MODEL_LAST:
break;
}
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index 38a0586f40..1b153acc48 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -6210,6 +6210,16 @@
<ref name="virOnOff"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="xtsup">
+ <ref name="virOnOff"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="passthrough">
+ <ref name="virOnOff"/>
+ </attribute>
+ </optional>
</element>
</optional>
<optional>
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index de535029a8..fffc8be08a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6113,6 +6113,8 @@ qemuBuildIOMMUCommandLine(virCommand *cmd,
"s:driver", "amd-iommu",
"s:pci-id", iommu->info.alias,
"S:intremap", qemuOnOffAuto(iommu->intremap),
+ "T:pt", iommu->pt,
+ "T:xtsup", iommu->xtsup,
"T:device-iotlb", iommu->iotlb,
NULL) < 0)
return -1;
diff --git a/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
index 36244edb3a..20d7e379e6 100644
--- a/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args
@@ -27,7 +27,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-no-shutdown \
-boot strict=on \
-device '{"driver":"AMDVI-PCI","id":"iommu0","bus":"pcie.0","addr":"0x1"}' \
--device '{"driver":"amd-iommu","pci-id":"iommu0","intremap":"on","device-iotlb":true}' \
+-device '{"driver":"amd-iommu","pci-id":"iommu0","intremap":"on","pt":true,"xtsup":true,"device-iotlb":true}' \
-audiodev '{"id":"audio1","driver":"none"}' \
-global ICH9-LPC.noreboot=off \
-watchdog-action reset \
diff --git a/tests/qemuxmlconfdata/amd-iommu.xml b/tests/qemuxmlconfdata/amd-iommu.xml
index 0668ed4237..4ad79ce4ae 100644
--- a/tests/qemuxmlconfdata/amd-iommu.xml
+++ b/tests/qemuxmlconfdata/amd-iommu.xml
@@ -32,7 +32,7 @@
<watchdog model='itco' action='reset'/>
<memballoon model='none'/>
<iommu model='amd'>
- <driver intremap='on' iotlb='on'/>
+ <driver intremap='on' iotlb='on' passthrough='on' xtsup='on'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</iommu>
</devices>
--
2.50.1

View File

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

View File

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

View File

@ -1,422 +0,0 @@
From f4dffda866c49db8cd905d7fb4d35a70c996fa89 Mon Sep 17 00:00:00 2001
Message-ID: <f4dffda866c49db8cd905d7fb4d35a70c996fa89.1742990721.git.jdenemar@redhat.com>
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Mon, 17 Feb 2025 16:30:07 +0000
Subject: [PATCH] conf: introduce support for multiple ACPI tables
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Currently we parse
<os>
<acpi>
<table type="slic">...path...</table>
</acpi>
</os>
into a flat 'char *slic_table' field which is rather an anti-pattern
as it has special cased a single attribute type.
This rewrites the internal design to permit multiple table types to
be parsed, should we add more in future. Each type is currently
permitted to only appear once.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 55f48d38522a4657815668dae9ed9184c8870766)
Resolves: https://issues.redhat.com/browse/RHEL-81041
---
src/conf/domain_conf.c | 92 +++++++++++++++++++++++----------
src/conf/domain_conf.h | 21 +++++++-
src/libvirt_private.syms | 2 +
src/libxl/libxl_conf.c | 5 +-
src/libxl/xen_xl.c | 15 ++++--
src/qemu/qemu_command.c | 13 +++--
src/security/security_dac.c | 18 ++++---
src/security/security_selinux.c | 16 +++---
src/security/virt-aa-helper.c | 5 +-
9 files changed, 134 insertions(+), 53 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 095b9bbaa2..b0628da279 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1456,6 +1456,11 @@ VIR_ENUM_IMPL(virDomainOsDefFirmwareFeature,
"secure-boot",
);
+VIR_ENUM_IMPL(virDomainOsACPITable,
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST,
+ "slic",
+);
+
VIR_ENUM_IMPL(virDomainCFPC,
VIR_DOMAIN_CFPC_LAST,
"none",
@@ -3890,6 +3895,15 @@ virDomainSecDefFree(virDomainSecDef *def)
g_free(def);
}
+void virDomainOSACPITableDefFree(virDomainOSACPITableDef *def)
+{
+ if (!def)
+ return;
+ g_free(def->path);
+ g_free(def);
+}
+
+
static void
virDomainOSDefClear(virDomainOSDef *os)
{
@@ -3915,7 +3929,9 @@ virDomainOSDefClear(virDomainOSDef *os)
g_free(os->cmdline);
g_free(os->dtb);
g_free(os->root);
- g_free(os->slic_table);
+ for (i = 0; i < os->nacpiTables; i++)
+ virDomainOSACPITableDefFree(os->acpiTables[i]);
+ g_free(os->acpiTables);
virDomainLoaderDefFree(os->loader);
g_free(os->bootloader);
g_free(os->bootloaderArgs);
@@ -17849,40 +17865,57 @@ virDomainDefParseBootAcpiOptions(virDomainDef *def,
int n;
g_autofree xmlNodePtr *nodes = NULL;
g_autofree char *tmp = NULL;
+ size_t ntables = 0;
+ virDomainOSACPITableDef **tables = NULL;
+ size_t i;
if ((n = virXPathNodeSet("./os/acpi/table", ctxt, &nodes)) < 0)
return -1;
- if (n > 1) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("Only one acpi table is supported"));
- return -1;
- }
+ if (n == 0)
+ return 0;
- if (n == 1) {
- tmp = virXMLPropString(nodes[0], "type");
+ tables = g_new0(virDomainOSACPITableDef *, n);
+ for (i = 0; i < n; i++) {
+ g_autofree char *path = virXMLNodeContentString(nodes[i]);
+ virDomainOsACPITable type;
+ size_t j;
- if (!tmp) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("Missing acpi table type"));
- return -1;
+ if (!path)
+ goto error;
+
+ if (virXMLPropEnum(nodes[i], "type",
+ virDomainOsACPITableTypeFromString,
+ VIR_XML_PROP_REQUIRED,
+ &type) < 0)
+ goto error;
+
+ for (j = 0; j < i; j++) {
+ if (tables[j]->type == type) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("ACPI table type '%1$s' may only appear once"),
+ virDomainOsACPITableTypeToString(type));
+ goto error;
+ }
}
- if (STREQ_NULLABLE(tmp, "slic")) {
- VIR_FREE(tmp);
- if (!(tmp = virXMLNodeContentString(nodes[0])))
- return -1;
-
- def->os.slic_table = virFileSanitizePath(tmp);
- } else {
- virReportError(VIR_ERR_XML_ERROR,
- _("Unknown acpi table type: %1$s"),
- tmp);
- return -1;
- }
+ tables[ntables] = g_new0(virDomainOSACPITableDef, 1);
+ tables[ntables]->type = type;
+ tables[ntables]->path = virFileSanitizePath(path);
+ ntables++;
}
+ def->os.nacpiTables = ntables;
+ def->os.acpiTables = tables;
+
return 0;
+
+ error:
+ for (i = 0; i < ntables; i++) {
+ virDomainOSACPITableDefFree(tables[i]);
+ }
+ g_free(tables);
+ return -1;
}
@@ -28447,11 +28480,16 @@ virDomainDefFormatInternalSetRootName(virDomainDef *def,
def->os.dtb);
virBufferEscapeString(buf, "<root>%s</root>\n",
def->os.root);
- if (def->os.slic_table) {
+
+ if (def->os.nacpiTables) {
virBufferAddLit(buf, "<acpi>\n");
virBufferAdjustIndent(buf, 2);
- virBufferEscapeString(buf, "<table type='slic'>%s</table>\n",
- def->os.slic_table);
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ virBufferAsprintf(buf, "<table type='%s'>",
+ virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));
+ virBufferEscapeString(buf, "%s</table>\n",
+ def->os.acpiTables[i]->path);
+ }
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</acpi>\n");
}
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 2d38e8fa51..f52b80caec 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2462,6 +2462,24 @@ typedef enum {
VIR_ENUM_DECL(virDomainOsDefFirmwareFeature);
+typedef enum {
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC,
+
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST
+} virDomainOsACPITable;
+
+VIR_ENUM_DECL(virDomainOsACPITable);
+
+struct _virDomainOSACPITableDef {
+ virDomainOsACPITable type;
+ char *path;
+};
+
+typedef struct _virDomainOSACPITableDef virDomainOSACPITableDef;
+void virDomainOSACPITableDefFree(virDomainOSACPITableDef *def);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainOSACPITableDef, virDomainOSACPITableDefFree);
+
+
struct _virDomainOSDef {
int type;
virDomainOsDefFirmware firmware;
@@ -2484,7 +2502,8 @@ struct _virDomainOSDef {
char *cmdline;
char *dtb;
char *root;
- char *slic_table;
+ size_t nacpiTables;
+ virDomainOSACPITableDef **acpiTables;
virDomainLoaderDef *loader;
char *bootloader;
char *bootloaderArgs;
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 727ab52cfe..be313ad67b 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -609,6 +609,8 @@ virDomainObjTaint;
virDomainObjUpdateModificationImpact;
virDomainObjWait;
virDomainObjWaitUntil;
+virDomainOsACPITableTypeFromString;
+virDomainOsACPITableTypeToString;
virDomainOsDefFirmwareTypeFromString;
virDomainOsDefFirmwareTypeToString;
virDomainOSTypeFromString;
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index c404226e43..7d845b97ec 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -582,8 +582,9 @@ libxlMakeDomBuildInfo(virDomainDef *def,
VIR_TRISTATE_SWITCH_ON);
#endif
- /* copy SLIC table path to acpi_firmware */
- b_info->u.hvm.acpi_firmware = g_strdup(def->os.slic_table);
+ /* copy the table path to acpi_firmware */
+ if (def->os.nacpiTables)
+ b_info->u.hvm.acpi_firmware = g_strdup(def->os.acpiTables[0]->path);
if (def->nsounds > 0) {
/*
diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c
index 53f6871efc..062b753cea 100644
--- a/src/libxl/xen_xl.c
+++ b/src/libxl/xen_xl.c
@@ -106,6 +106,7 @@ xenParseXLOS(virConf *conf, virDomainDef *def, virCaps *caps)
g_autofree char *bios = NULL;
g_autofree char *bios_path = NULL;
g_autofree char *boot = NULL;
+ g_autofree char *slic = NULL;
int val = 0;
if (xenConfigGetString(conf, "bios", &bios, NULL) < 0)
@@ -133,8 +134,15 @@ xenParseXLOS(virConf *conf, virDomainDef *def, virCaps *caps)
}
}
- if (xenConfigCopyStringOpt(conf, "acpi_firmware", &def->os.slic_table) < 0)
+ if (xenConfigCopyStringOpt(conf, "acpi_firmware", &slic) < 0)
return -1;
+ if (slic != NULL) {
+ def->os.nacpiTables = 1;
+ def->os.acpiTables = g_new0(virDomainOSACPITableDef *, 1);
+ def->os.acpiTables[0] = g_new0(virDomainOSACPITableDef, 1);
+ def->os.acpiTables[0]->type = VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC;
+ def->os.acpiTables[0]->path = g_steal_pointer(&slic);
+ }
if (xenConfigCopyStringOpt(conf, "kernel", &def->os.kernel) < 0)
return -1;
@@ -1134,8 +1142,9 @@ xenFormatXLOS(virConf *conf, virDomainDef *def)
return -1;
}
- if (def->os.slic_table &&
- xenConfigSetString(conf, "acpi_firmware", def->os.slic_table) < 0)
+ if (def->os.nacpiTables &&
+ xenConfigSetString(conf, "acpi_firmware",
+ def->os.acpiTables[0]->path) < 0)
return -1;
if (def->os.kernel &&
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 24dac0ce0f..756dd2168b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -127,6 +127,11 @@ VIR_ENUM_IMPL(qemuNumaPolicy,
"restrictive",
);
+VIR_ENUM_DECL(qemuACPITableSIG);
+VIR_ENUM_IMPL(qemuACPITableSIG,
+ VIR_DOMAIN_OS_ACPI_TABLE_TYPE_LAST,
+ "SLIC");
+
const char *
qemuAudioDriverTypeToString(virDomainAudioType type)
@@ -5968,6 +5973,7 @@ qemuBuildBootCommandLine(virCommand *cmd,
{
g_auto(virBuffer) boot_buf = VIR_BUFFER_INITIALIZER;
g_autofree char *boot_opts_str = NULL;
+ size_t i;
if (def->os.bootmenu) {
if (def->os.bootmenu == VIR_TRISTATE_BOOL_YES)
@@ -6001,11 +6007,12 @@ qemuBuildBootCommandLine(virCommand *cmd,
virCommandAddArgList(cmd, "-append", def->os.cmdline, NULL);
if (def->os.dtb)
virCommandAddArgList(cmd, "-dtb", def->os.dtb, NULL);
- if (def->os.slic_table) {
+ for (i = 0; i < def->os.nacpiTables; i++) {
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
virCommandAddArg(cmd, "-acpitable");
- virBufferAddLit(&buf, "sig=SLIC,file=");
- virQEMUBuildBufferEscapeComma(&buf, def->os.slic_table);
+ virBufferAsprintf(&buf, "sig=%s,file=",
+ qemuACPITableSIGTypeToString(def->os.acpiTables[i]->type));
+ virQEMUBuildBufferEscapeComma(&buf, def->os.acpiTables[i]->path);
virCommandAddArgBuffer(cmd, &buf);
}
diff --git a/src/security/security_dac.c b/src/security/security_dac.c
index 0505f4e4a3..b4d61bc576 100644
--- a/src/security/security_dac.c
+++ b/src/security/security_dac.c
@@ -2050,9 +2050,10 @@ virSecurityDACRestoreAllLabel(virSecurityManager *mgr,
virSecurityDACRestoreFileLabel(mgr, def->os.dtb) < 0)
rc = -1;
- if (def->os.slic_table &&
- virSecurityDACRestoreFileLabel(mgr, def->os.slic_table) < 0)
- rc = -1;
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ if (virSecurityDACRestoreFileLabel(mgr, def->os.acpiTables[i]->path) < 0)
+ rc = -1;
+ }
if (def->pstore &&
virSecurityDACRestoreFileLabel(mgr, def->pstore->path) < 0)
@@ -2300,11 +2301,12 @@ virSecurityDACSetAllLabel(virSecurityManager *mgr,
user, group, true) < 0)
return -1;
- if (def->os.slic_table &&
- virSecurityDACSetOwnership(mgr, NULL,
- def->os.slic_table,
- user, group, true) < 0)
- return -1;
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ if (virSecurityDACSetOwnership(mgr, NULL,
+ def->os.acpiTables[i]->path,
+ user, group, true) < 0)
+ return -1;
+ }
if (def->pstore &&
virSecurityDACSetOwnership(mgr, NULL,
diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
index cdc32d9b34..b8659e33d6 100644
--- a/src/security/security_selinux.c
+++ b/src/security/security_selinux.c
@@ -3013,9 +3013,10 @@ virSecuritySELinuxRestoreAllLabel(virSecurityManager *mgr,
virSecuritySELinuxRestoreFileLabel(mgr, def->os.dtb, true) < 0)
rc = -1;
- if (def->os.slic_table &&
- virSecuritySELinuxRestoreFileLabel(mgr, def->os.slic_table, true) < 0)
- rc = -1;
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ if (virSecuritySELinuxRestoreFileLabel(mgr, def->os.acpiTables[i]->path, true) < 0)
+ rc = -1;
+ }
if (def->pstore &&
virSecuritySELinuxRestoreFileLabel(mgr, def->pstore->path, true) < 0)
@@ -3443,10 +3444,11 @@ virSecuritySELinuxSetAllLabel(virSecurityManager *mgr,
data->content_context, true) < 0)
return -1;
- if (def->os.slic_table &&
- virSecuritySELinuxSetFilecon(mgr, def->os.slic_table,
- data->content_context, true) < 0)
- return -1;
+ for (i = 0; i < def->os.nacpiTables; i++) {
+ if (virSecuritySELinuxSetFilecon(mgr, def->os.acpiTables[i]->path,
+ data->content_context, true) < 0)
+ return -1;
+ }
if (def->pstore &&
virSecuritySELinuxSetFilecon(mgr, def->pstore->path,
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index e82b5de2b4..e68e908994 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -1002,9 +1002,10 @@ get_files(vahControl * ctl)
if (vah_add_file(&buf, ctl->def->os.dtb, "r") != 0)
goto cleanup;
- if (ctl->def->os.slic_table)
- if (vah_add_file(&buf, ctl->def->os.slic_table, "r") != 0)
+ for (i = 0; i < ctl->def->os.nacpiTables; i++) {
+ if (vah_add_file(&buf, ctl->def->os.acpiTables[i]->path, "r") != 0)
goto cleanup;
+ }
if (ctl->def->pstore)
if (vah_add_file(&buf, ctl->def->pstore->path, "rw") != 0)
--
2.49.0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,62 @@
From b2fc2869c2b5fa6b2c05b3d05b63d1b4761788e4 Mon Sep 17 00:00:00 2001
Message-ID: <b2fc2869c2b5fa6b2c05b3d05b63d1b4761788e4.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Fri, 30 Jan 2026 17:47:46 +0100
Subject: [PATCH] docs: formatdomain: Fix indentation of docs for
<disk><driver><statistics> element
All other paragraphs in this section use 2 spaces after hyphen, fix the
recently added section.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 7da1a83914ca10cc811583d7310bf60e04b70488)
https://issues.redhat.com/browse/RHEL-147866 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-131335 [rhel-10.2]
---
docs/formatdomain.rst | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 9836837441..45f262113b 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -3605,22 +3605,22 @@ paravirtualized driver is specified via the ``disk`` element.
</iothreads>
</driver>
- - The optional ``statistics`` sub-element allows configuring statistics
- collection in configurable intervals for the given disk. Intervals are
- configured by ``<statistic>`` sub-elements with ``interval`` attribute
- configuring the collection window duration in seconds. The statistics
- are available via the bulk statistics API.
+ - The optional ``statistics`` sub-element allows configuring statistics
+ collection in configurable intervals for the given disk. Intervals are
+ configured by ``<statistic>`` sub-elements with ``interval`` attribute
+ configuring the collection window duration in seconds. The statistics
+ are available via the bulk statistics API.
- Example::
+ Example::
- <driver name='qemu'>
- <statistics>
- <statistic interval='1'/>
- <statistic interval='10'/>
- </statistics>
- </driver>
+ <driver name='qemu'>
+ <statistics>
+ <statistic interval='1'/>
+ <statistic interval='10'/>
+ </statistics>
+ </driver>
- :since:`Since 11.9.0 (QEMU 10.2, virtio, ide, scsi disks only)`.
+ :since:`Since 11.9.0 (QEMU 10.2, virtio, ide, scsi disks only)`.
- The optional ``queues`` attribute specifies the number of virt queues for
virtio-blk ( :since:`Since 3.9.0` ) or vhost-user-blk
--
2.53.0

View File

@ -0,0 +1,51 @@
From b87a18dada6e991dc2389c822cde38d4abc267fa Mon Sep 17 00:00:00 2001
Message-ID: <b87a18dada6e991dc2389c822cde38d4abc267fa.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Fri, 30 Jan 2026 17:37:48 +0100
Subject: [PATCH] docs: formatdomain: Reword section about the '<statistics>'
element under disk driver
Separate the timed statistics group and link to the fields which are
returned by it.
Prepare the wording for more statistics configs in the future.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit ad65b00c1393f7f13e15744e2e1be4fb531e2a17)
https://issues.redhat.com/browse/RHEL-147866 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-131335 [rhel-10.2]
---
docs/formatdomain.rst | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 45f262113b..70882c6820 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -3605,11 +3605,17 @@ paravirtualized driver is specified via the ``disk`` element.
</iothreads>
</driver>
- - The optional ``statistics`` sub-element allows configuring statistics
- collection in configurable intervals for the given disk. Intervals are
- configured by ``<statistic>`` sub-elements with ``interval`` attribute
- configuring the collection window duration in seconds. The statistics
- are available via the bulk statistics API.
+ - The optional ``statistics`` sub-element allows configuring various optional
+ statistics collection.
+
+ Statistic values returned under
+ `VIR_DOMAIN_STATS_BLOCK_SUFFIX_TIMED_GROUP_PREFIX <html/libvirt-libvirt-domain.html#VIR_DOMAIN_STATS_BLOCK_SUFFIX_TIMED_GROUP_PREFIX>`__
+ typed parameter prefix returned by the
+ `virConnectGetAllDomainStats <html/libvirt-libvirt-domain.html#virConnectGetAllDomainStats>`__
+ API are collected based on one or more configurable intervals. An interval
+ of collection is configured by ``<statistic>`` sub-elements with
+ ``interval`` attribute configuring the collection window duration in
+ seconds.
Example::
--
2.53.0

View File

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

View File

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

View File

@ -0,0 +1,94 @@
From 51ada853c575b6361d013e1b594d918d862f873b Mon Sep 17 00:00:00 2001
Message-ID: <51ada853c575b6361d013e1b594d918d862f873b.1772815374.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Thu, 26 Feb 2026 10:18:23 +0100
Subject: [PATCH] domain_conf: initialize network hostdev private data
Currently virDomainNetDef and virDomainActualNetDef use
virDomainHostdevDef directly as structure and the code doesn't call
virDomainHostdevDefNew() that would initialize private data.
This is hackish quick fix to solve a crash that happens in two
scenarios:
1. attaching any interface with hostdev backend
0x0000fffbfc0e2a90 in qemuDomainAttachHostPCIDevice (driver=0xfffbb4006750, vm=0xfffbf001f790, hostdev=0xfffbf400b150) at ../src/qemu/qemu_hotplug.c:1652
1652 if ((ret = qemuFDPassDirectTransferMonitor(hostdevPriv->vfioDeviceFd, priv->mon)) < 0)
2. starting VM with interface with hostdev backend using iommufd
0x00007f6638d5b9ca in qemuProcessOpenVfioDeviceFd (hostdev=hostdev@entry=0x7f6634425ee0) at ../src/qemu/qemu_process.c:7719
7719 hostdevPriv->vfioDeviceFd = qemuFDPassDirectNew(name, &vfioDeviceFd);
Proper fix for this issue is to refactor network code to use pointer and to
use virDomainHostdevDefNew().
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
(cherry picked from commit fe782ed334ea0d4373e6dad093f5815fc925a56b)
https://issues.redhat.com/browse/RHEL-151953
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/conf/domain_conf.c | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index cb047e5a3e..df05d96f01 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -3489,6 +3489,20 @@ void virDomainVideoDefFree(virDomainVideoDef *def)
}
+static int
+virDomainHostdevDefPrivateDataNew(virDomainHostdevDef *def,
+ virDomainXMLOption *xmlopt)
+{
+ if (!xmlopt || !xmlopt->privateData.hostdevNew)
+ return 0;
+
+ if (!(def->privateData = xmlopt->privateData.hostdevNew()))
+ return -1;
+
+ return 0;
+}
+
+
virDomainHostdevDef *
virDomainHostdevDefNew(virDomainXMLOption *xmlopt)
{
@@ -3498,8 +3512,7 @@ virDomainHostdevDefNew(virDomainXMLOption *xmlopt)
def->info = g_new0(virDomainDeviceInfo, 1);
- if (xmlopt && xmlopt->privateData.hostdevNew &&
- !(def->privateData = xmlopt->privateData.hostdevNew())) {
+ if (virDomainHostdevDefPrivateDataNew(def, xmlopt) < 0) {
VIR_FREE(def->info);
VIR_FREE(def);
return NULL;
@@ -9653,6 +9666,9 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
virDomainHostdevDef *hostdev = &actual->data.hostdev.def;
int type;
+ if (virDomainHostdevDefPrivateDataNew(hostdev, xmlopt) < 0)
+ goto error;
+
hostdev->parentnet = parent;
hostdev->info = &parent->info;
/* The helper function expects type to already be found and
@@ -10346,6 +10362,9 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
g_autofree char *addrtype = virXPathString("string(./source/address/@type)", ctxt);
int type;
+ if (virDomainHostdevDefPrivateDataNew(&def->data.hostdev.def, xmlopt) < 0)
+ return NULL;
+
def->data.hostdev.def.parentnet = def;
def->data.hostdev.def.info = &def->info;
def->data.hostdev.def.mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS;
--
2.53.0

View File

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

View File

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

View File

@ -0,0 +1,59 @@
From 0431af4412aab6aadcde893a7eacf1ae24771590 Mon Sep 17 00:00:00 2001
Message-ID: <0431af4412aab6aadcde893a7eacf1ae24771590.1768317034.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Tue, 6 Jan 2026 17:18:03 +0100
Subject: [PATCH] esx: URI encode inventory objects twice
While discouraged by a KB article to use special characters in
inventory object names [1], ESX won't stop you. And thus users
can end up with a datastore named "datastore2+", for instance.
The datastore name (and datacenter path) are important when
fetching/uploading a .vmx file (used in APIs like
virDomainGetXMLDesc() or virDomainDefineXML()). And while we do
URI encode both (dcPath and dsName), encoding them once is not
enough. Cole Robinson discovered [2] that they need to be
URI-encoded twice. Use newly introduced
esxUtil_EscapeInventoryObject() helper to encode them twice.
1: https://knowledge.broadcom.com/external/article/386368/vcenter-inventory-object-name-with-speci.html
2: https://issues.redhat.com/browse/RHEL-133729#comment-28604072
Resolves: https://issues.redhat.com/browse/RHEL-134127
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit 6c9d2591c668732eb05cf17d27c9102ef3d40b39)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/esx/esx_driver.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 9f965811b1..02f30c2b19 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -2567,9 +2567,9 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
domain->conn->uri->server, domain->conn->uri->port);
virBufferURIEncodeString(&buffer, directoryAndFileName);
virBufferAddLit(&buffer, "?dcPath=");
- virBufferURIEncodeString(&buffer, priv->primary->datacenterPath);
+ esxUtil_EscapeInventoryObject(&buffer, priv->primary->datacenterPath);
virBufferAddLit(&buffer, "&dsName=");
- virBufferURIEncodeString(&buffer, datastoreName);
+ esxUtil_EscapeInventoryObject(&buffer, datastoreName);
url = virBufferContentAndReset(&buffer);
@@ -3002,9 +3002,9 @@ esxDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
virBufferURIEncodeString(&buffer, escapedName);
virBufferAddLit(&buffer, ".vmx?dcPath=");
- virBufferURIEncodeString(&buffer, priv->primary->datacenterPath);
+ esxUtil_EscapeInventoryObject(&buffer, priv->primary->datacenterPath);
virBufferAddLit(&buffer, "&dsName=");
- virBufferURIEncodeString(&buffer, datastoreName);
+ esxUtil_EscapeInventoryObject(&buffer, datastoreName);
url = virBufferContentAndReset(&buffer);
--
2.52.0

View File

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

View File

@ -0,0 +1,76 @@
From 3a1f8bb838db0f412205e2918fc2eb4213f323ad Mon Sep 17 00:00:00 2001
Message-ID: <3a1f8bb838db0f412205e2918fc2eb4213f323ad.1768317034.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 7 Jan 2026 10:34:25 +0100
Subject: [PATCH] esx_util: Introduce esxUtil_EscapeInventoryObject()
The aim of this helper function is to URI-encode given string
twice. There's a bug (fixed in next commit) in which we're unable
to fetch .vmx file for a domain if corresponding datastore
contains some special characters (like +). Cole Robinson
discovered that encoding datastore twice enables libvirt to work
around the issue [2]. Well, this function does exactly that.
It was tested with the following inputs and all worked
flawlessly: "datastore", "datastore2", "datastore2+",
"datastore3+-@", "data store2+".
1: https://issues.redhat.com/browse/RHEL-134127
2: https://issues.redhat.com/browse/RHEL-133729#comment-28604072
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit ffe74c7c551bd641cbcaa2512ed0ad4a25d3980b)
Resolves: https://issues.redhat.com/browse/RHEL-134127
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/esx/esx_util.c | 18 ++++++++++++++++++
src/esx/esx_util.h | 3 +++
2 files changed, 21 insertions(+)
diff --git a/src/esx/esx_util.c b/src/esx/esx_util.c
index 7ee0e5f7c0..9b714d90ba 100644
--- a/src/esx/esx_util.c
+++ b/src/esx/esx_util.c
@@ -448,3 +448,21 @@ esxUtil_EscapeForXml(const char *string)
return virBufferContentAndReset(&buffer);
}
+
+
+/* esxUtil_EscapeInventoryObject:
+ * @buf: the buffer to append to
+ * @string: the string argument which will be URI-encoded
+ *
+ * URI-encode given @string TWICE and append the result to the @buf. This is
+ * to be used with inventory objects (like 'dcPath' and 'dsName') to work
+ * around a VMware bug in which once round of URI-encoding is not enough.
+ */
+void
+esxUtil_EscapeInventoryObject(virBuffer *buf, const char *string)
+{
+ g_autoptr(GString) escaped = g_string_new(NULL);
+
+ g_string_append_uri_escaped(escaped, string, NULL, false);
+ virBufferURIEncodeString(buf, escaped->str);
+}
diff --git a/src/esx/esx_util.h b/src/esx/esx_util.h
index 58bc44e744..29f01e0c15 100644
--- a/src/esx/esx_util.h
+++ b/src/esx/esx_util.h
@@ -22,6 +22,7 @@
#pragma once
#include "internal.h"
+#include "virbuffer.h"
#include "viruri.h"
#define ESX_VI_CHECK_ARG_LIST(val) \
@@ -67,3 +68,5 @@ void esxUtil_ReplaceSpecialWindowsPathChars(char *string);
char *esxUtil_EscapeDatastoreItem(const char *string);
char *esxUtil_EscapeForXml(const char *string);
+
+void esxUtil_EscapeInventoryObject(virBuffer *buf, const char *string);
--
2.52.0

View File

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

View File

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

View File

@ -0,0 +1,38 @@
From 05df8c7309ca3c7db2f5a3c4eb1d07a48aaab486 Mon Sep 17 00:00:00 2001
Message-ID: <05df8c7309ca3c7db2f5a3c4eb1d07a48aaab486.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Tue, 17 Feb 2026 08:38:07 +0100
Subject: [PATCH] iommufd: fix FD leak in case of error
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reported-by: coverity
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit f37e14119c257281eab4fd1fed1b1018fe4f63b1)
Resolves: https://issues.redhat.com/browse/RHEL-150353
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/util/viriommufd.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/util/viriommufd.c b/src/util/viriommufd.c
index 1f3353eab4..b62d59241d 100644
--- a/src/util/viriommufd.c
+++ b/src/util/viriommufd.c
@@ -87,8 +87,10 @@ virIOMMUFDOpenDevice(void)
if ((fd = open(VIR_IOMMU_DEV_PATH, O_RDWR | O_CLOEXEC)) < 0)
virReportSystemError(errno, "%s", _("cannot open IOMMUFD device"));
- if (virIOMMUFDSetRLimitMode(fd, true) < 0)
+ if (virIOMMUFDSetRLimitMode(fd, true) < 0) {
+ VIR_FORCE_CLOSE(fd);
return -1;
+ }
return fd;
}
--
2.53.0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,125 @@
From ca83d49a04eb50ecb5bff8dde9928a9c15764fee Mon Sep 17 00:00:00 2001
Message-ID: <ca83d49a04eb50ecb5bff8dde9928a9c15764fee.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Sun, 15 Feb 2026 19:42:39 +0100
Subject: [PATCH] qemu: Convert IOMMUFD to qemuFDPassDirect
This cleans up creating QEMU command line and makes it easier when
adding hotplug support.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit df59beed37db5451a44955c1c440eebc474bffb2)
Resolves: https://issues.redhat.com/browse/RHEL-150353
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/qemu/qemu_command.c | 7 ++-----
src/qemu/qemu_domain.c | 4 ++--
src/qemu/qemu_domain.h | 2 +-
src/qemu/qemu_process.c | 6 ++++--
tests/qemuxmlconftest.c | 6 ++++--
5 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 482f8d8ca2..0057934cc6 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5350,19 +5350,16 @@ qemuBuildIOMMUFDCommandLine(virCommand *cmd,
virDomainObj *vm)
{
qemuDomainObjPrivate *priv = vm->privateData;
- g_autofree char *fdstr = g_strdup_printf("%d", priv->iommufd);
g_autoptr(virJSONValue) props = NULL;
if (!virDomainDefHasPCIHostdevWithIOMMUFD(def))
return 0;
- virCommandPassFD(cmd, priv->iommufd, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
-
- priv->iommufd = -1;
+ qemuFDPassDirectTransferCommand(priv->iommufd, cmd);
if (qemuMonitorCreateObjectProps(&props, "iommufd",
"iommufd0",
- "S:fd", fdstr,
+ "S:fd", qemuFDPassDirectGetPath(priv->iommufd),
NULL) < 0)
return -1;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 64b01e524f..d9cd9324e0 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1975,7 +1975,7 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivate *priv)
priv->migrationRecoverSetup = false;
- VIR_FORCE_CLOSE(priv->iommufd);
+ g_clear_pointer(&priv->iommufd, qemuFDPassDirectFree);
g_clear_pointer(&priv->memoryBackingDir, g_free);
}
@@ -2044,7 +2044,7 @@ qemuDomainObjPrivateAlloc(void *opaque)
priv->blockjobs = virHashNew(virObjectUnref);
priv->fds = virHashNew(g_object_unref);
- priv->iommufd = -1;
+ priv->iommufd = NULL;
priv->pidMonitored = -1;
/* agent commands block by default, user can choose different behavior */
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 30ca67bf76..a5403ecc93 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -264,7 +264,7 @@ struct _qemuDomainObjPrivate {
/* named file descriptor groups associated with the VM */
GHashTable *fds;
- int iommufd;
+ qemuFDPassDirect *iommufd;
char *memoryBackingDir;
};
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 3729edcd7e..91167d73bc 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7685,13 +7685,15 @@ static int
qemuProcessOpenIommuFd(virDomainObj *vm)
{
qemuDomainObjPrivate *priv = vm->privateData;
+ int iommufd;
VIR_DEBUG("Opening IOMMU FD for domain %s", vm->def->name);
- if ((priv->iommufd = virIOMMUFDOpenDevice()) < 0)
+ if ((iommufd = virIOMMUFDOpenDevice()) < 0)
return -1;
- VIR_DEBUG("Opened IOMMU FD %d for domain %s", priv->iommufd, vm->def->name);
+ priv->iommufd = qemuFDPassDirectNew("iommufd", &iommufd);
+
return 0;
}
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 885512a38c..eeb9298b2e 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -406,8 +406,10 @@ testQemuPrepareHostdev(virDomainObj *vm)
}
}
- if (virDomainDefHasPCIHostdevWithIOMMUFD(vm->def))
- priv->iommufd = 0;
+ if (virDomainDefHasPCIHostdevWithIOMMUFD(vm->def)) {
+ int iommufd = 0;
+ priv->iommufd = qemuFDPassDirectNew("iommufd", &iommufd);
+ }
}
--
2.53.0

View File

@ -0,0 +1,129 @@
From 24b8d8f936dcff1a78dda3253876f9242b3ec98b Mon Sep 17 00:00:00 2001
Message-ID: <24b8d8f936dcff1a78dda3253876f9242b3ec98b.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Sun, 15 Feb 2026 19:28:16 +0100
Subject: [PATCH] qemu: Convert vfioDeviceFd to qemuFDPassDirect
This cleans up creating QEMU command line and makes it easier when
adding hotplug support.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 4611f227c7882c8b9237da5e2fab21932ef6bd51)
Resolves: https://issues.redhat.com/browse/RHEL-150353
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/qemu/qemu_command.c | 15 +++++----------
src/qemu/qemu_domain.c | 4 ++--
src/qemu/qemu_domain.h | 2 +-
src/qemu/qemu_process.c | 6 +++++-
tests/qemuxmlconftest.c | 4 +++-
5 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 0057934cc6..8038aa3115 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4811,12 +4811,10 @@ qemuBuildPCIHostdevDevProps(const virDomainDef *def,
pcisrc->driver.iommufd == VIR_TRISTATE_BOOL_YES) {
qemuDomainHostdevPrivate *hostdevPriv = QEMU_DOMAIN_HOSTDEV_PRIVATE(dev);
- if (hostdevPriv->vfioDeviceFd != -1) {
- g_autofree char *fdstr = g_strdup_printf("%d", hostdevPriv->vfioDeviceFd);
- if (virJSONValueObjectAdd(&props, "S:fd", fdstr, NULL) < 0)
- return NULL;
- hostdevPriv->vfioDeviceFd = -1;
- }
+ if (virJSONValueObjectAdd(&props,
+ "S:fd", qemuFDPassDirectGetPath(hostdevPriv->vfioDeviceFd),
+ NULL) < 0)
+ return NULL;
}
if (qemuBuildDeviceAddressProps(props, def, dev->info) < 0)
@@ -5266,10 +5264,7 @@ qemuBuildHostdevCommandLine(virCommand *cmd,
if (subsys->u.pci.driver.iommufd == VIR_TRISTATE_BOOL_YES) {
qemuDomainHostdevPrivate *hostdevPriv = QEMU_DOMAIN_HOSTDEV_PRIVATE(hostdev);
- if (hostdevPriv->vfioDeviceFd != -1) {
- virCommandPassFD(cmd, hostdevPriv->vfioDeviceFd,
- VIR_COMMAND_PASS_FD_CLOSE_PARENT);
- }
+ qemuFDPassDirectTransferCommand(hostdevPriv->vfioDeviceFd, cmd);
}
if (!(devprops = qemuBuildPCIHostdevDevProps(def, hostdev)))
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index d9cd9324e0..ada9d3431c 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1245,7 +1245,7 @@ qemuDomainHostdevPrivateDispose(void *obj)
{
qemuDomainHostdevPrivate *priv = obj;
- VIR_FORCE_CLOSE(priv->vfioDeviceFd);
+ g_clear_pointer(&priv->vfioDeviceFd, qemuFDPassDirectFree);
}
@@ -1271,7 +1271,7 @@ qemuDomainHostdevPrivateNew(void)
if (!(priv = virObjectNew(qemuDomainHostdevPrivateClass)))
return NULL;
- priv->vfioDeviceFd = -1;
+ priv->vfioDeviceFd = NULL;
return (virObject *) priv;
}
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index a5403ecc93..8aa94fc25b 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -471,7 +471,7 @@ struct _qemuDomainHostdevPrivate {
virObject parent;
/* VFIO device file descriptor for iommufd passthrough */
- int vfioDeviceFd;
+ qemuFDPassDirect *vfioDeviceFd;
};
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 91167d73bc..59fff1aa19 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7710,10 +7710,14 @@ qemuProcessOpenVfioDeviceFd(virDomainHostdevDef *hostdev)
{
qemuDomainHostdevPrivate *hostdevPriv = QEMU_DOMAIN_HOSTDEV_PRIVATE(hostdev);
virDomainHostdevSubsysPCI *pci = &hostdev->source.subsys.u.pci;
+ g_autofree char *name = g_strdup_printf("hostdev-%s-fd", hostdev->info->alias);
+ int vfioDeviceFd;
- if ((hostdevPriv->vfioDeviceFd = virPCIDeviceOpenVfioFd(&pci->addr)) < 0)
+ if ((vfioDeviceFd = virPCIDeviceOpenVfioFd(&pci->addr)) < 0)
return -1;
+ hostdevPriv->vfioDeviceFd = qemuFDPassDirectNew(name, &vfioDeviceFd);
+
return 0;
}
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index eeb9298b2e..aa877bf16a 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -357,8 +357,10 @@ testQemuPrepareHostdevPCI(virDomainHostdevDef *hostdev)
qemuDomainHostdevPrivate *hostdevPriv = QEMU_DOMAIN_HOSTDEV_PRIVATE(hostdev);
if (virHostdevIsPCIDeviceWithIOMMUFD(hostdev)) {
+ g_autofree char *name = g_strdup_printf("hostdev-%s-fd", hostdev->info->alias);
/* Use a placeholder FD value for tests */
- hostdevPriv->vfioDeviceFd = 0;
+ int vfioDeviceFD = 0;
+ hostdevPriv->vfioDeviceFd = qemuFDPassDirectNew(name, &vfioDeviceFD);
}
}
--
2.53.0

View File

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

View File

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

View File

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

View File

@ -0,0 +1,144 @@
From 1b76214345d8ffb9f3238a9804b2bef342112018 Mon Sep 17 00:00:00 2001
Message-ID: <1b76214345d8ffb9f3238a9804b2bef342112018.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 29 Jan 2026 11:15:04 +0100
Subject: [PATCH] qemu: Extract disk setup done via QMP into a separate helper
Introduce 'qemuProcessSetupDiskPropsRuntime' helper function which will
collect all code used for runtime setup of a disk.
This is currently old-style throttling.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 1789a0f8a3623e8f0f6e50730feb58e3d8c48376)
https://issues.redhat.com/browse/RHEL-147866 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-131335 [rhel-10.2]
Conflicts:
- Commit b9b9092c9c1f8b42e311c524d9fc4a8e73ae28a6 which dropped disk
property refresh was not backported, thus the context around the call
to qemuProcessSetupDiskPropsRuntime was different
---
src/qemu/qemu_hotplug.c | 23 +++++------------------
src/qemu/qemu_process.c | 37 +++++++++++++++++++++++++++----------
src/qemu/qemu_process.h | 3 +++
3 files changed, 35 insertions(+), 28 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index fb426deb1a..f2dc4469a3 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -569,13 +569,8 @@ qemuDomainChangeMediaBlockdev(virDomainObj *vm,
}
/* set throttling for the new image */
- if (rc == 0 &&
- !virStorageSourceIsEmpty(newsrc) &&
- qemuDiskConfigBlkdeviotuneEnabled(disk)) {
- rc = qemuMonitorSetBlockIoThrottle(priv->mon,
- diskPriv->qomName,
- &disk->blkdeviotune);
- }
+ if (rc == 0)
+ rc = qemuProcessSetupDiskPropsRuntime(priv->mon, disk);
if (rc == 0)
rc = qemuMonitorBlockdevTrayClose(priv->mon, diskPriv->qomName);
@@ -795,21 +790,13 @@ qemuDomainAttachDiskGeneric(virDomainObj *vm,
if (rc == 0)
rc = qemuMonitorAddDeviceProps(priv->mon, &devprops);
- /* Setup throttling of disk via block_set_io_throttle QMP command. This
- * is a hack until the 'throttle' blockdev driver will support modification
- * of the trhottle group. See also qemuProcessSetupDiskThrottlingBlockdev.
- * As there isn't anything sane to do if this fails, let's just return
- * success.
- */
if (rc == 0) {
qemuDomainDiskPrivate *diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
g_autoptr(GHashTable) blockinfo = NULL;
- if (qemuDiskConfigBlkdeviotuneEnabled(disk)) {
- if (qemuMonitorSetBlockIoThrottle(priv->mon, diskPriv->qomName,
- &disk->blkdeviotune) < 0)
- VIR_WARN("failed to set blkdeviotune for '%s' of '%s'", disk->dst, vm->def->name);
- }
+ /* There isn't anything sane to do if this fails (rollback would
+ * require hot-unplug), let's just return success. */
+ ignore_value(qemuProcessSetupDiskPropsRuntime(priv->mon, disk));
if ((blockinfo = qemuMonitorGetBlockInfo(priv->mon))) {
struct qemuDomainDiskInfo *diskinfo;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index d8f0c78fd1..c99bb36c93 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7937,6 +7937,32 @@ qemuProcessGenID(virDomainObj *vm,
}
+/**
+ * qemuProcessSetupDiskPropsRuntime:
+ * @mon: qemu monitor object
+ * @disk: disk definition
+ *
+ * This function expects that caller already entered 'monitor' context.
+ *
+ * Sets up disk properties which are only possible to be set in runtime.
+ */
+int
+qemuProcessSetupDiskPropsRuntime(qemuMonitor *mon,
+ virDomainDiskDef *disk)
+{
+ if (virStorageSourceIsEmpty(disk->src))
+ return 0;
+
+ if (qemuDiskConfigBlkdeviotuneEnabled(disk) &&
+ qemuMonitorSetBlockIoThrottle(mon,
+ QEMU_DOMAIN_DISK_PRIVATE(disk)->qomName,
+ &disk->blkdeviotune) < 0)
+ return -1;
+
+ return 0;
+}
+
+
/**
* qemuProcessSetupDiskThrottling:
*
@@ -7960,16 +7986,7 @@ qemuProcessSetupDiskThrottling(virDomainObj *vm,
for (i = 0; i < vm->def->ndisks; i++) {
virDomainDiskDef *disk = vm->def->disks[i];
- /* Setting throttling for empty drives fails */
- if (virStorageSourceIsEmpty(disk->src))
- continue;
-
- if (!qemuDiskConfigBlkdeviotuneEnabled(disk))
- continue;
-
- if (qemuMonitorSetBlockIoThrottle(qemuDomainGetMonitor(vm),
- QEMU_DOMAIN_DISK_PRIVATE(disk)->qomName,
- &disk->blkdeviotune) < 0)
+ if (qemuProcessSetupDiskPropsRuntime(qemuDomainGetMonitor(vm), disk) < 0)
goto cleanup;
}
diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h
index 426e11d79e..df78b00abb 100644
--- a/src/qemu/qemu_process.h
+++ b/src/qemu/qemu_process.h
@@ -146,6 +146,9 @@ int qemuProcessPrepareHostStorageSourceChain(virDomainObj *vm,
int qemuProcessPrepareHostStorageDisk(virDomainObj *vm,
virDomainDiskDef *disk);
+int qemuProcessSetupDiskPropsRuntime(qemuMonitor *mon,
+ virDomainDiskDef *disk);
+
int qemuProcessDeleteThreadContext(virDomainObj *vm);
int qemuProcessLaunch(virConnectPtr conn,
--
2.53.0

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -0,0 +1,713 @@
From c55379ad99a087d70a2bc34e2c32c1f6bf27f9ed Mon Sep 17 00:00:00 2001
Message-ID: <c55379ad99a087d70a2bc34e2c32c1f6bf27f9ed.1770824869.git.jdenemar@redhat.com>
From: Jean-Louis Dupond <jean-louis@dupond.be>
Date: Thu, 5 Feb 2026 14:18:42 +0100
Subject: [PATCH] qemu: Ignore cmp_legacy CPU flag
Since commit 99a637a8 in qemu 10.0, the way the cmp_legacy flag is
reported changed. The same way as happend with the 'ht' flag in commit
c6bd2dd634208, which was fixed in libvirt since commit ba16113c.
This causes migrations from a hypervisor running a qemu version before
that commit to a hypervisor running qemu after that commit fails
with the following error:
guest CPU doesn't match specification: extra features: cmp_legacy
We can just ignore this flag, just like we did with the 'ht' flag.
Signed-off-by: Jean-Louis Dupond <jean-louis@dupond.be>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit fc5840b4980045a05b8973900cdbe36162e48331)
https://issues.redhat.com/browse/RHEL-146629
Conflicts:
tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-latest.args
tests/qemuxmlconfdata/cpu-host-model-features.x86_64-latest.args
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-latest.args
tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-latest.args
- upstream commit v11.10.0-78-g380764992d
(qemucapabilitiesdata: Re-generate 'caps_10.2.0_x86_64')
that added rdseed=off to test files is not backported
tests/qemuxmlconfdata/memory-hotplug-numa-preferred.x86_64-latest.args
- missing downstream, it was added upstream after the last
rebase
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_capabilities.c | 1 +
.../cpu-host-model-fallback-kvm.x86_64-10.0.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-10.1.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-6.2.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-7.0.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-7.1.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-7.2.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-8.0.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-8.1.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-8.2.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-9.0.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-9.1.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-9.2.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-latest.args | 2 +-
.../cpu-host-model-fallback-tcg.x86_64-10.1.0.args | 2 +-
.../cpu-host-model-fallback-tcg.x86_64-latest.args | 2 +-
.../qemuxmlconfdata/cpu-host-model-features.x86_64-latest.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.0.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.1.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.2.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.0.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.1.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.2.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.0.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.1.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.2.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.0.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.1.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.2.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-latest.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-10.0.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-10.1.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-6.2.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-7.0.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-7.1.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-7.2.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-8.0.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-8.1.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-8.2.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-9.0.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-9.1.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-9.2.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-latest.args | 2 +-
.../cpu-host-model-nofallback-tcg.x86_64-10.1.0.args | 2 +-
.../cpu-host-model-nofallback-tcg.x86_64-latest.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-10.1.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-latest.args | 2 +-
tests/qemuxmlconfdata/cpu-translation.x86_64-latest.args | 2 +-
48 files changed, 48 insertions(+), 47 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 92b863a826..d738805ee8 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3772,6 +3772,7 @@ const char *ignoredFeatures[] = {
"vmx-ept-uc", "vmx-ept-wb", /* never supported by QEMU */
"vmx-invvpid-single-context", /* never supported by QEMU */
"ht", /* ignored by QEMU, set according to topology */
+ "cmp_legacy", /* ignored by QEMU, set according to topology */
};
bool
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-10.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-10.0.0.args
index edd334dd8b..08f37274b2 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-10.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-10.0.0.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-i440fx-10.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-10.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-10.1.0.args
index 57982574eb..e4044a0c64 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-10.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-10.1.0.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-i440fx-10.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.2.0.args
index 4aa9011fe8..e8a9aceb4a 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.2.0.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-i440fx-6.2,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.0.0.args
index e944e69cfd..0df6ce9e3d 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.0.0.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-i440fx-7.0,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.1.0.args
index d9edda2733..b4a91fa921 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.1.0.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-i440fx-7.1,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,vmcb-clean=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,vmcb-clean=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.2.0.args
index 1d1839b7fa..5d69199876 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-7.2.0.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-i440fx-7.2,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.0.0.args
index 8278629ee7..e7b424819e 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.0.0.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-i440fx-8.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.1.0.args
index 3b733a3c5d..58ad565dba 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.1.0.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-i440fx-8.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.2.0.args
index 73296c7df0..fa1b674fa5 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-8.2.0.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-i440fx-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.0.0.args
index 8f8b74fa56..fc9985f901 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.0.0.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-i440fx-9.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.1.0.args
index c2f394bf09..1db86cb31e 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.1.0.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-i440fx-9.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.2.0.args
index 35c8d397c4..4dcd9332cb 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-9.2.0.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-i440fx-9.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-latest.args
index 6afa8a4c2d..e5b0acb87b 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.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=off \
-accel kvm \
--cpu EPYC-Turin,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,tsa-sq-no=on,tsa-l1-no=on,pcid=off,la57=off \
+-cpu EPYC-Turin,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,virt-ssbd=on,tsa-sq-no=on,tsa-l1-no=on,pcid=off,la57=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-10.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-10.1.0.args
index 3b93ed510d..0b67c7f158 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-10.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-10.1.0.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-i440fx-10.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel tcg \
--cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,cmp-legacy=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
+-cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-latest.args
index 01cf90bb67..443de62f69 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.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=off \
-accel tcg \
--cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,cmp-legacy=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
+-cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-features.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-host-model-features.x86_64-latest.args
index ce60a39acc..52f636fa77 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-features.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-features.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=off \
-accel kvm \
--cpu EPYC-Turin,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,tsa-sq-no=on,tsa-l1-no=on,pcid=off,la57=off,abm=on,ds=on,invtsc=off \
+-cpu EPYC-Turin,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,virt-ssbd=on,tsa-sq-no=on,tsa-l1-no=on,pcid=off,la57=off,abm=on,ds=on,invtsc=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.0.0.args
index a1c034ec51..7dd5723b98 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.0.0.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-q35-10.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.1.0.args
index ddf940f75c..987baa9b30 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-10.1.0.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-q35-10.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.2.0.args
index f65444948e..4402bad82d 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.2.0.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-q35-6.2,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.0.0.args
index 8f8b1645d5..d6dfadc3b2 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.0.0.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-q35-7.0,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.1.0.args
index df03bafab3..09e220487d 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.1.0.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-q35-7.1,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,vmcb-clean=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,vmcb-clean=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.2.0.args
index 7a796812fa..7e90b309a9 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-7.2.0.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-q35-7.2,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.0.0.args
index d63438e81c..fc02c9a7e0 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.0.0.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-q35-8.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.1.0.args
index 901f279a02..8360dc02ef 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.1.0.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-q35-8.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.2.0.args
index d141aca9f0..b00138933c 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-8.2.0.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-q35-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.0.0.args
index 49575ff4d9..3b42130bd2 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.0.0.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-q35-9.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.1.0.args
index fd25e4cd23..c451426cdd 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.1.0.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-q35-9.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.2.0.args
index 4b69f59064..1da6e508ff 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-9.2.0.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-q35-9.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-latest.args
index 2bf920b9c7..30010edb3b 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.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 q35,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Turin,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,tsa-sq-no=on,tsa-l1-no=on,pcid=off,la57=off \
+-cpu EPYC-Turin,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,virt-ssbd=on,tsa-sq-no=on,tsa-l1-no=on,pcid=off,la57=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-10.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-10.0.0.args
index edd334dd8b..08f37274b2 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-10.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-10.0.0.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-i440fx-10.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-10.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-10.1.0.args
index 57982574eb..e4044a0c64 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-10.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-10.1.0.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-i440fx-10.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.2.0.args
index 4aa9011fe8..e8a9aceb4a 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.2.0.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-i440fx-6.2,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.0.0.args
index e944e69cfd..0df6ce9e3d 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.0.0.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-i440fx-7.0,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.1.0.args
index d9edda2733..b4a91fa921 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.1.0.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-i440fx-7.1,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,vmcb-clean=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,tsc-scale=on,vmcb-clean=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.2.0.args
index 1d1839b7fa..5d69199876 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-7.2.0.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-i440fx-7.2,usb=off,dump-guest-core=off,memory-backend=pc.ram \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.0.0.args
index 8278629ee7..e7b424819e 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.0.0.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-i440fx-8.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.1.0.args
index 3b733a3c5d..58ad565dba 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.1.0.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-i440fx-8.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.2.0.args
index 73296c7df0..fa1b674fa5 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-8.2.0.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-i440fx-8.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.0.0.args
index 8f8b74fa56..fc9985f901 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.0.0.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-i440fx-9.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.1.0.args
index c2f394bf09..1db86cb31e 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.1.0.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-i440fx-9.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.2.0.args
index 35c8d397c4..4dcd9332cb 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-9.2.0.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-i440fx-9.2,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
+-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,overflow-recov=on,succor=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,ibpb-brtype=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,rfds-no=on,xsaves=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-latest.args
index 6afa8a4c2d..e5b0acb87b 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.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=off \
-accel kvm \
--cpu EPYC-Turin,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,tsa-sq-no=on,tsa-l1-no=on,pcid=off,la57=off \
+-cpu EPYC-Turin,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,virt-ssbd=on,tsa-sq-no=on,tsa-l1-no=on,pcid=off,la57=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-10.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-10.1.0.args
index 3b93ed510d..0b67c7f158 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-10.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-10.1.0.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-i440fx-10.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel tcg \
--cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,cmp-legacy=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
+-cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-latest.args
index 01cf90bb67..443de62f69 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.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=off \
-accel tcg \
--cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,cmp-legacy=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
+-cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-10.1.0.args b/tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-10.1.0.args
index 4defeceac3..d12cb96786 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-10.1.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-10.1.0.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-q35-10.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel tcg \
--cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,cmp-legacy=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
+-cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-latest.args
index 479266659a..688a217c3c 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-tcg.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 q35,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel tcg \
--cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,cmp-legacy=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
+-cpu EPYC,monitor=on,x2apic=on,hypervisor=on,acpi=on,ss=on,erms=on,mpx=on,clwb=on,umip=on,pku=on,vaes=on,la57=on,rdpid=on,pks=on,fsrm=on,cmpccxadd=on,fzrm=on,fsrs=on,fsrc=on,3dnowext=on,3dnow=on,xsaveerptr=on,wbnoinvd=on,npt=on,vgif=on,svme-addr-chk=on,no-nested-data-bp=on,null-sel-clr-base=on,vme=off,xsavec=off,misalignsse=off,osvw=off,topoext=off,fxsr-opt=off,nrip-save=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-translation.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-translation.x86_64-latest.args
index 49e1b590dd..d425866c67 100644
--- a/tests/qemuxmlconfdata/cpu-translation.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-translation.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=off \
-accel tcg \
--cpu Haswell,pclmulqdq=on,ds-cpl=on,tsc-adjust=on,fxsr-opt=on,lahf-lm=on,cmp-legacy=on,nodeid-msr=on,perfctr-core=on,perfctr-nb=on,kvm-pv-eoi=on,kvm-pv-unhalt=on \
+-cpu Haswell,pclmulqdq=on,ds-cpl=on,tsc-adjust=on,fxsr-opt=on,lahf-lm=on,nodeid-msr=on,perfctr-core=on,perfctr-nb=on,kvm-pv-eoi=on,kvm-pv-unhalt=on \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
--
2.53.0

View File

@ -0,0 +1,190 @@
From 3a5fc3778cb4ff0f09567f80947e000f74d513b4 Mon Sep 17 00:00:00 2001
Message-ID: <3a5fc3778cb4ff0f09567f80947e000f74d513b4.1770383236.git.jdenemar@redhat.com>
From: Nathan Chen <nathanc@nvidia.com>
Date: Fri, 30 Jan 2026 10:59:12 -0800
Subject: [PATCH] qemu: Implement support for associating iommufd to hostdev
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Implement a new iommufd attribute under hostdevs' PCI
subsystem driver that can be used to specify associated
iommufd object when launching a qemu VM.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Nathan Chen <nathanc@nvidia.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit fd113055bb174c7284081731d16959f73796e3d7)
Resolves: https://issues.redhat.com/browse/RHEL-126345
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
docs/formatdomain.rst | 6 +++++
src/conf/device_conf.c | 11 ++++++++
src/conf/device_conf.h | 1 +
src/conf/schemas/basictypes.rng | 5 ++++
src/qemu/qemu_command.c | 46 +++++++++++++++++++++++++++++++++
5 files changed, 69 insertions(+)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 1467fc7e10..167912348e 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -4907,6 +4907,12 @@ or:
found is "problematic" in some way, the generic vfio-pci driver
similarly be forced.
+ :since:`Since 12.1.0 (QEMU and KVM only)`, the ``iommufd`` element
+ can be used to enable IOMMUFD backend for VFIO device. This
+ provides an interface to propagate DMA mappings to kernel for
+ assigned devices. Libvirt will open the /dev/iommu and VFIO device
+ cdev and pass associated file descriptors to QEMU.
+
(Note: :since:`Since 1.0.5`, the ``name`` attribute has been
described to be used to select the type of PCI device assignment
("vfio", "kvm", or "xen"), but those values have been mostly
diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
index c278b81652..d68232a4f4 100644
--- a/src/conf/device_conf.c
+++ b/src/conf/device_conf.c
@@ -67,6 +67,11 @@ virDeviceHostdevPCIDriverInfoParseXML(xmlNodePtr node,
return -1;
}
+ if (virXMLPropTristateBool(node, "iommufd",
+ VIR_XML_PROP_NONE,
+ &driver->iommufd) < 0)
+ return -1;
+
driver->model = virXMLPropString(node, "model");
return 0;
}
@@ -93,6 +98,12 @@ virDeviceHostdevPCIDriverInfoFormat(virBuffer *buf,
virBufferEscapeString(&driverAttrBuf, " model='%s'", driver->model);
+ if (driver->iommufd == VIR_TRISTATE_BOOL_YES) {
+ virBufferAddLit(&driverAttrBuf, " iommufd='yes'");
+ } else if (driver->iommufd == VIR_TRISTATE_BOOL_NO) {
+ virBufferAddLit(&driverAttrBuf, " iommufd='no'");
+ }
+
virXMLFormatElement(buf, "driver", &driverAttrBuf, NULL);
return 0;
}
diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h
index e570f51824..116b959143 100644
--- a/src/conf/device_conf.h
+++ b/src/conf/device_conf.h
@@ -47,6 +47,7 @@ VIR_ENUM_DECL(virDeviceHostdevPCIDriverName);
struct _virDeviceHostdevPCIDriverInfo {
virDeviceHostdevPCIDriverName name;
char *model;
+ virTristateBool iommufd;
};
typedef enum {
diff --git a/src/conf/schemas/basictypes.rng b/src/conf/schemas/basictypes.rng
index 5689170fad..381e0ac24f 100644
--- a/src/conf/schemas/basictypes.rng
+++ b/src/conf/schemas/basictypes.rng
@@ -673,6 +673,11 @@
<ref name="genericName"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="iommufd">
+ <ref name="virYesNo"/>
+ </attribute>
+ </optional>
<empty/>
</element>
</define>
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index b69fe23236..96cd6edbfc 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4754,6 +4754,7 @@ qemuBuildPCIHostdevDevProps(const virDomainDef *def,
g_autofree char *host = virPCIDeviceAddressAsString(&pcisrc->addr);
const char *failover_pair_id = NULL;
const char *driver = NULL;
+ const char *iommufdId = NULL;
/* 'ramfb' property must be omitted unless it's to be enabled */
bool ramfb = pcisrc->ramfb == VIR_TRISTATE_SWITCH_ON;
@@ -4787,6 +4788,9 @@ qemuBuildPCIHostdevDevProps(const virDomainDef *def,
teaming->persistent)
failover_pair_id = teaming->persistent;
+ if (pcisrc->driver.iommufd == VIR_TRISTATE_BOOL_YES)
+ iommufdId = "iommufd0";
+
if (virJSONValueObjectAdd(&props,
"s:driver", driver,
"s:host", host,
@@ -4795,6 +4799,7 @@ qemuBuildPCIHostdevDevProps(const virDomainDef *def,
"S:failover_pair_id", failover_pair_id,
"S:display", qemuOnOffAuto(pcisrc->display),
"B:ramfb", ramfb,
+ "S:iommufd", iommufdId,
NULL) < 0)
return NULL;
@@ -5314,6 +5319,44 @@ qemuBuildHostdevCommandLine(virCommand *cmd,
}
+static int
+qemuBuildIOMMUFDCommandLine(virCommand *cmd,
+ const virDomainDef *def)
+{
+ size_t i;
+
+ for (i = 0; i < def->nhostdevs; i++) {
+ virDomainHostdevDef *hostdev = def->hostdevs[i];
+ virDomainHostdevSubsys *subsys = &hostdev->source.subsys;
+ g_autoptr(virJSONValue) props = NULL;
+
+ if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS)
+ continue;
+
+ if (subsys->type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
+ continue;
+
+ if (hostdev->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UNASSIGNED)
+ continue;
+
+ if (subsys->u.pci.driver.iommufd != VIR_TRISTATE_BOOL_YES)
+ continue;
+
+ if (qemuMonitorCreateObjectProps(&props, "iommufd",
+ "iommufd0",
+ NULL) < 0)
+ return -1;
+
+ if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0)
+ return -1;
+
+ break;
+ }
+
+ return 0;
+}
+
+
static int
qemuBuildMonitorCommandLine(virCommand *cmd,
qemuDomainObjPrivate *priv)
@@ -10926,6 +10969,9 @@ qemuBuildCommandLine(virDomainObj *vm,
if (qemuBuildRedirdevCommandLine(cmd, def, qemuCaps) < 0)
return NULL;
+ if (qemuBuildIOMMUFDCommandLine(cmd, def) < 0)
+ return NULL;
+
if (qemuBuildHostdevCommandLine(cmd, def, qemuCaps) < 0)
return NULL;
--
2.52.0

View File

@ -0,0 +1,220 @@
From f283dd92c79286f822eaddea072cc6a54231dbbc Mon Sep 17 00:00:00 2001
Message-ID: <f283dd92c79286f822eaddea072cc6a54231dbbc.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 11 Dec 2025 19:47:16 +0100
Subject: [PATCH] qemu: Implement support for persistent reservation migration
control
The 'migration' attribute for the '<reservations>' element allows to
control the persistent reservation migration feature independently of
the machine type default.
Add the XML plumbing and qemu support.
We consider it ABI for now since it influences qemu migration protocol.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 0d3ef7cb71979172de2c531d865e4525a314f902)
https://issues.redhat.com/browse/RHEL-140614 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-135115 [rhel-10.2]
---
docs/formatdomain.rst | 3 +++
src/conf/domain_conf.c | 21 +++++++++++++++++++
src/conf/schemas/storagecommon.rng | 5 +++++
src/conf/storage_source_conf.c | 10 +++++++++
src/conf/storage_source_conf.h | 2 ++
src/qemu/qemu_command.c | 4 ++++
src/qemu/qemu_validate.c | 16 ++++++++++++++
...irtio-scsi-reservations.x86_64-latest.args | 2 +-
.../disk-virtio-scsi-reservations.xml | 2 +-
9 files changed, 63 insertions(+), 2 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 167912348e..9836837441 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -3169,6 +3169,9 @@ paravirtualized driver is specified via the ``disk`` element.
the socket, and finally ``mode`` which accepts one value ``client``
specifying the role of hypervisor. It's recommended to allow libvirt
manage the persistent reservations.
+ :since:`Since 12.1.0` the ``migration`` (values ``yes``, ``no``) controls
+ whether the hypervisor should attempt to migrate persistent reservations
+ during migration.
``initiator``
:since:`Since 4.7.0`, the ``initiator`` element is supported for
a disk ``type`` "network" that is using a ``source`` element with the
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 902c1188ef..f5c4d135a9 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -20951,6 +20951,27 @@ virDomainDiskDefCheckABIStability(virDomainDiskDef *src,
return false;
}
+ /* While not guest visible it influences the qemu migration stream so
+ * we need to keep it identical */
+ if (src->src->pr || dst->src->pr) {
+ virTristateBool srcmig = VIR_TRISTATE_BOOL_ABSENT;
+ virTristateBool dstmig = VIR_TRISTATE_BOOL_ABSENT;
+
+ if (src->src->pr)
+ srcmig = src->src->pr->migration;
+
+ if (dst->src->pr)
+ dstmig = dst->src->pr->migration;
+
+ if (srcmig != dstmig) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Target disk reservations 'migration' property %1$s does not match source %2$s"),
+ virTristateBoolTypeToString(dstmig),
+ virTristateBoolTypeToString(srcmig));
+ return false;
+ }
+ }
+
if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
diff --git a/src/conf/schemas/storagecommon.rng b/src/conf/schemas/storagecommon.rng
index 14704c737e..450d53131f 100644
--- a/src/conf/schemas/storagecommon.rng
+++ b/src/conf/schemas/storagecommon.rng
@@ -104,6 +104,11 @@
<ref name="virYesNo"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="migration">
+ <ref name="virYesNo"/>
+ </attribute>
+ </optional>
<optional>
<ref name="unixSocketSource"/>
</optional>
diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c
index 087de1eaf2..24d4b0de6a 100644
--- a/src/conf/storage_source_conf.c
+++ b/src/conf/storage_source_conf.c
@@ -330,6 +330,11 @@ virStoragePRDefParseXML(xmlXPathContextPtr ctxt)
&prd->managed) < 0)
goto cleanup;
+ if (virXMLPropTristateBool(ctxt->node, "migration",
+ VIR_XML_PROP_NONZERO,
+ &prd->migration) < 0)
+ goto cleanup;
+
type = virXPathString("string(./source[1]/@type)", ctxt);
path = virXPathString("string(./source[1]/@path)", ctxt);
mode = virXPathString("string(./source[1]/@mode)", ctxt);
@@ -384,6 +389,11 @@ virStoragePRDefFormat(virBuffer *buf,
{
virBufferAsprintf(buf, "<reservations managed='%s'",
virTristateBoolTypeToString(prd->managed));
+
+ if (prd->migration != VIR_TRISTATE_BOOL_ABSENT)
+ virBufferAsprintf(buf, " migration='%s'",
+ virTristateBoolTypeToString(prd->migration));
+
if (prd->path &&
(prd->managed == VIR_TRISTATE_BOOL_NO || !migratable)) {
virBufferAddLit(buf, ">\n");
diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h
index fc868b31af..5a4b088eeb 100644
--- a/src/conf/storage_source_conf.h
+++ b/src/conf/storage_source_conf.h
@@ -235,6 +235,8 @@ struct _virStoragePRDef {
virTristateBool managed;
char *path;
+ virTristateBool migration;
+
/* manager object alias */
char *mgralias;
};
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 807529f670..1718097b63 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1691,6 +1691,7 @@ qemuBuildDiskDeviceProps(const virDomainDef *def,
g_autofree char *usbdiskalias = NULL;
const virDomainDeviceInfo *deviceinfo = &disk->info;
g_autoptr(virJSONValue) statistics = NULL;
+ virTristateBool migrate_pr = VIR_TRISTATE_BOOL_ABSENT;
virDomainDeviceInfo usbSCSIinfo = {
.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE,
.addr.drive = { .diskbus = VIR_DOMAIN_DISK_BUS_USB },
@@ -1716,6 +1717,8 @@ qemuBuildDiskDeviceProps(const virDomainDef *def,
case VIR_DOMAIN_DISK_BUS_SCSI:
if (disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) {
driver = "scsi-block";
+ if (disk->src->pr)
+ migrate_pr = disk->src->pr->migration;
} else {
if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
driver = "scsi-cd";
@@ -1937,6 +1940,7 @@ qemuBuildDiskDeviceProps(const virDomainDef *def,
"S:rerror", rpolicy,
"A:stats-intervals", &statistics,
"T:dpofua", disk->dpofua, /* SCSI-only, ensured by validation */
+ "T:migrate-pr", migrate_pr, /* 'scsi-block' only, ensured by validation */
NULL) < 0)
return NULL;
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 66c59c3696..9ab285f768 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -3224,6 +3224,22 @@ qemuValidateDomainDeviceDefDiskFrontend(const virDomainDiskDef *disk,
}
}
+ if (disk->src->pr &&
+ disk->src->pr->migration != VIR_TRISTATE_BOOL_ABSENT) {
+ if (disk->device != VIR_DOMAIN_DISK_DEVICE_LUN ||
+ disk->bus != VIR_DOMAIN_DISK_BUS_SCSI) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("persistent reservation migration supported only with 'lun' disks on 'scsi' bus"));
+ return -1;
+ }
+
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SCSI_BLOCK_MIGRATE_PR)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("persistent reservation migration not supported by this qemu"));
+ return -1;
+ }
+ }
+
if (disk->rotation_rate) {
if (disk->bus != VIR_DOMAIN_DISK_BUS_SCSI &&
disk->bus != VIR_DOMAIN_DISK_BUS_IDE &&
diff --git a/tests/qemuxmlconfdata/disk-virtio-scsi-reservations.x86_64-latest.args b/tests/qemuxmlconfdata/disk-virtio-scsi-reservations.x86_64-latest.args
index cbc2a0f398..f1d7a450ee 100644
--- a/tests/qemuxmlconfdata/disk-virtio-scsi-reservations.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/disk-virtio-scsi-reservations.x86_64-latest.args
@@ -33,7 +33,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-device '{"driver":"scsi-block","bus":"scsi0.0","channel":0,"scsi-id":0,"lun":0,"drive":"libvirt-2-storage","id":"scsi0-0-0-0","bootindex":1}' \
-object '{"qom-type":"pr-manager-helper","id":"pr-helper-libvirt-1-storage","path":"/path/to/qemu-pr-helper.sock"}' \
-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest2","pr-manager":"pr-helper-libvirt-1-storage","node-name":"libvirt-1-storage","read-only":false}' \
--device '{"driver":"scsi-block","bus":"scsi0.0","channel":0,"scsi-id":0,"lun":1,"drive":"libvirt-1-storage","id":"scsi0-0-0-1"}' \
+-device '{"driver":"scsi-block","bus":"scsi0.0","channel":0,"scsi-id":0,"lun":1,"drive":"libvirt-1-storage","id":"scsi0-0-0-1","migrate-pr":true}' \
-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-virtio-scsi-reservations.xml b/tests/qemuxmlconfdata/disk-virtio-scsi-reservations.xml
index 9c55d6ec3e..7f9160ff3a 100644
--- a/tests/qemuxmlconfdata/disk-virtio-scsi-reservations.xml
+++ b/tests/qemuxmlconfdata/disk-virtio-scsi-reservations.xml
@@ -28,7 +28,7 @@
<disk type='block' device='lun'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'>
- <reservations managed='no'>
+ <reservations managed='no' migration='yes'>
<source type='unix' path='/path/to/qemu-pr-helper.sock' mode='client'/>
</reservations>
</source>
--
2.53.0

View File

@ -0,0 +1,266 @@
From 634e8902ffca6246e5066816d52063f3c82dddb7 Mon Sep 17 00:00:00 2001
Message-ID: <634e8902ffca6246e5066816d52063f3c82dddb7.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Mon, 16 Feb 2026 08:59:39 +0100
Subject: [PATCH] qemu: Introduce QEMU_CAPS_OBJECT_IOMMUFD
Detect if QEMU was compiled with IOMMUFD.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 4a0ea9bcf13ea05c90f294ba70c767bc79e2ebbe)
Conflicts:
These files don't exist in downstream:
tests/qemucapabilitiesdata/caps_10.1.0_s390x.xml
tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml
tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
tests/qemucapabilitiesdata/caps_11.0.0_x86_64.xml
Resolves: https://issues.redhat.com/browse/RHEL-150353
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/qemu/qemu_capabilities.c | 4 ++++
src/qemu/qemu_capabilities.h | 3 +++
src/qemu/qemu_validate.c | 8 ++++++++
tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml | 1 +
tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_10.2.0_x86_64+mshv.xml | 1 +
tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 +
tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 +
17 files changed, 29 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 2c8bd62c99..c23ff5539a 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -756,6 +756,9 @@ VIR_ENUM_IMPL(virQEMUCaps,
"query-accelerators", /* QEMU_CAPS_QUERY_ACCELERATORS */
"mshv", /* QEMU_CAPS_MSHV */
"scsi-block.migrate-pr", /* QEMU_CAPS_DEVICE_SCSI_BLOCK_MIGRATE_PR */
+
+ /* 490 */
+ "iommufd", /* QEMU_CAPS_OBJECT_IOMMUFD */
);
@@ -1463,6 +1466,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
{ "tpm-emulator", QEMU_CAPS_DEVICE_TPM_EMULATOR },
{ "tpm-passthrough", QEMU_CAPS_DEVICE_TPM_PASSTHROUGH },
{ "acpi-generic-initiator", QEMU_CAPS_ACPI_GENERIC_INITIATOR },
+ { "iommufd", QEMU_CAPS_OBJECT_IOMMUFD },
};
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 0c76f2edda..f7c8680f94 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -732,6 +732,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
QEMU_CAPS_MSHV, /* -accel mshv */
QEMU_CAPS_DEVICE_SCSI_BLOCK_MIGRATE_PR, /* persistent reservation migration support */
+ /* 490 */
+ QEMU_CAPS_OBJECT_IOMMUFD, /* -object iommufd */
+
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 9ab285f768..9886ddaf1d 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -2720,6 +2720,14 @@ qemuValidateDomainDeviceDefHostdev(const virDomainHostdevDef *hostdev,
_("VFIO PCI device assignment is not supported by this version of qemu"));
return -1;
}
+
+ if (hostdev->source.subsys.u.pci.driver.iommufd == VIR_TRISTATE_BOOL_YES) {
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_IOMMUFD)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("IOMMUFD is not supported by this version of qemu"));
+ return -1;
+ }
+ }
}
if (hostdev->writeFiltering != VIR_TRISTATE_BOOL_ABSENT) {
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml
index 90e8d868cc..bbb8b33cde 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml
@@ -163,6 +163,7 @@
<flag name='nvme-ns'/>
<flag name='usb-bot'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>10000000</version>
<microcodeVersion>61700285</microcodeVersion>
<package>v10.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml b/tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml
index 82a66a6524..cf00ac4ea0 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml
@@ -136,6 +136,7 @@
<flag name='nvme'/>
<flag name='nvme-ns'/>
<flag name='usb-bot'/>
+ <flag name='iommufd'/>
<version>10000000</version>
<microcodeVersion>39100285</microcodeVersion>
<package>v10.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml
index cfce1c963d..5acd1a33fd 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml
@@ -209,6 +209,7 @@
<flag name='amd-iommu'/>
<flag name='usb-bot'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>10000000</version>
<microcodeVersion>43100285</microcodeVersion>
<package>v10.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
index f94c8388d6..50f58791e6 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
@@ -209,6 +209,7 @@
<flag name='amd-iommu.pci-id'/>
<flag name='usb-bot'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>10000000</version>
<microcodeVersion>43100285</microcodeVersion>
<package>v10.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml
index 8e989a139f..e321c352a3 100644
--- a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml
+++ b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64+inteltdx.xml
@@ -191,6 +191,7 @@
<flag name='usb-bot'/>
<flag name='tdx-guest'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>10000050</version>
<microcodeVersion>43100286</microcodeVersion>
<package>v10.0.0-1724-gf9a3def17b</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml
index 520a3d8ee8..2d52659520 100644
--- a/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.1.0_x86_64.xml
@@ -214,6 +214,7 @@
<flag name='tdx-guest'/>
<flag name='qom-list-get'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>10001000</version>
<microcodeVersion>43100286</microcodeVersion>
<package>v10.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64+mshv.xml b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64+mshv.xml
index 874fd7bddb..eb2ab001a6 100644
--- a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64+mshv.xml
+++ b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64+mshv.xml
@@ -201,6 +201,7 @@
<flag name='acpi-generic-initiator'/>
<flag name='query-accelerators'/>
<flag name='mshv'/>
+ <flag name='iommufd'/>
<version>10001050</version>
<microcodeVersion>43100287</microcodeVersion>
<package>v10.1.0-1778-ge090e0312d</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
index 7d5a75ce88..c4ea924c1f 100644
--- a/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml
@@ -216,6 +216,7 @@
<flag name='disk-timed-stats'/>
<flag name='query-accelerators'/>
<flag name='scsi-block.migrate-pr'/>
+ <flag name='iommufd'/>
<version>10001091</version>
<microcodeVersion>43100287</microcodeVersion>
<package>v10.2.0-rc1-38-gfb241d0a1f</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
index 1f2e27a218..88bd502fee 100644
--- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
@@ -204,6 +204,7 @@
<flag name='amd-iommu'/>
<flag name='usb-bot'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>9000000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v9.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml b/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml
index b961f79808..3d2692b02c 100644
--- a/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml
@@ -126,6 +126,7 @@
<flag name='nvme'/>
<flag name='nvme-ns'/>
<flag name='usb-bot'/>
+ <flag name='iommufd'/>
<version>9001000</version>
<microcodeVersion>39100246</microcodeVersion>
<package>v9.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
index 35ddf30736..66578099a7 100644
--- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
@@ -203,6 +203,7 @@
<flag name='amd-iommu'/>
<flag name='usb-bot'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>9001000</version>
<microcodeVersion>43100246</microcodeVersion>
<package>v9.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml b/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml
index e9f79261f7..9f95ed891e 100644
--- a/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml
@@ -129,6 +129,7 @@
<flag name='nvme'/>
<flag name='nvme-ns'/>
<flag name='usb-bot'/>
+ <flag name='iommufd'/>
<version>9002000</version>
<microcodeVersion>39100247</microcodeVersion>
<package>v9.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml
index 0e52c3e23d..6636346bc5 100644
--- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml
+++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml
@@ -207,6 +207,7 @@
<flag name='amd-iommu'/>
<flag name='usb-bot'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>9002000</version>
<microcodeVersion>43100247</microcodeVersion>
<package>v9.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml
index 95f8a4d878..dee30415aa 100644
--- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml
@@ -205,6 +205,7 @@
<flag name='amd-iommu'/>
<flag name='usb-bot'/>
<flag name='acpi-generic-initiator'/>
+ <flag name='iommufd'/>
<version>9002000</version>
<microcodeVersion>43100247</microcodeVersion>
<package>v9.2.0</package>
--
2.53.0

View File

@ -0,0 +1,276 @@
From 7478247b414df910fc319aa3c1d016f81e510fd9 Mon Sep 17 00:00:00 2001
Message-ID: <7478247b414df910fc319aa3c1d016f81e510fd9.1770383236.git.jdenemar@redhat.com>
From: Nathan Chen <nathanc@nvidia.com>
Date: Fri, 30 Jan 2026 10:59:13 -0800
Subject: [PATCH] qemu: Introduce privateData for hostdevs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Introduce private data for hostdevs and allocate hostdev
private data by default.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Nathan Chen <nathanc@nvidia.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit 1043e04e17ed4be59b46e925089204333c08f05e)
Resolves: https://issues.redhat.com/browse/RHEL-126345
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/bhyve/bhyve_parse_command.c | 2 +-
src/conf/domain_conf.c | 13 +++++++++--
src/conf/domain_conf.h | 5 ++++-
src/libxl/xen_common.c | 2 +-
src/libxl/xen_xl.c | 2 +-
src/lxc/lxc_native.c | 2 +-
src/qemu/qemu_domain.c | 40 +++++++++++++++++++++++++++++++++
src/qemu/qemu_domain.h | 15 +++++++++++++
src/vbox/vbox_common.c | 2 +-
tests/virhostdevtest.c | 2 +-
10 files changed, 76 insertions(+), 9 deletions(-)
diff --git a/src/bhyve/bhyve_parse_command.c b/src/bhyve/bhyve_parse_command.c
index d62ea64beb..8b405206bd 100644
--- a/src/bhyve/bhyve_parse_command.c
+++ b/src/bhyve/bhyve_parse_command.c
@@ -687,7 +687,7 @@ bhyveParsePassthru(virDomainDef *def G_GNUC_UNUSED,
return -1;
}
- hostdev = virDomainHostdevDefNew();
+ hostdev = virDomainHostdevDefNew(NULL);
hostdev->mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS;
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 541dad5bdc..f950f7c75d 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2733,6 +2733,8 @@ virDomainHostdevDefClear(virDomainHostdevDef *def)
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
break;
}
+
+ g_clear_pointer(&def->privateData, virObjectUnref);
}
@@ -3483,7 +3485,7 @@ void virDomainVideoDefFree(virDomainVideoDef *def)
virDomainHostdevDef *
-virDomainHostdevDefNew(void)
+virDomainHostdevDefNew(virDomainXMLOption *xmlopt)
{
virDomainHostdevDef *def;
@@ -3491,6 +3493,13 @@ virDomainHostdevDefNew(void)
def->info = g_new0(virDomainDeviceInfo, 1);
+ if (xmlopt && xmlopt->privateData.hostdevNew &&
+ !(def->privateData = xmlopt->privateData.hostdevNew())) {
+ VIR_FREE(def->info);
+ VIR_FREE(def);
+ return NULL;
+ }
+
return def;
}
@@ -13678,7 +13687,7 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xmlopt,
ctxt->node = node;
- def = virDomainHostdevDefNew();
+ def = virDomainHostdevDefNew(xmlopt);
if (virXMLPropEnumDefault(node, "mode", virDomainHostdevModeTypeFromString,
VIR_XML_PROP_NONE,
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index cb35ff06bd..8f53ed96c0 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -364,6 +364,8 @@ struct _virDomainHostdevDef {
*/
virDomainNetDef *parentnet;
+ virObject *privateData;
+
virDomainHostdevMode mode;
virDomainStartupPolicy startupPolicy;
bool managed;
@@ -3588,6 +3590,7 @@ struct _virDomainXMLPrivateDataCallbacks {
virDomainXMLPrivateDataNewFunc vsockNew;
virDomainXMLPrivateDataNewFunc cryptoNew;
virDomainXMLPrivateDataNewFunc graphicsNew;
+ virDomainXMLPrivateDataNewFunc hostdevNew;
virDomainXMLPrivateDataNewFunc networkNew;
virDomainXMLPrivateDataNetParseFunc networkParse;
virDomainXMLPrivateDataNetFormatFunc networkFormat;
@@ -3797,7 +3800,7 @@ virDomainVideoDef *virDomainVideoDefNew(virDomainXMLOption *xmlopt);
void virDomainVideoDefFree(virDomainVideoDef *def);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainVideoDef, virDomainVideoDefFree);
void virDomainVideoDefClear(virDomainVideoDef *def);
-virDomainHostdevDef *virDomainHostdevDefNew(void);
+virDomainHostdevDef *virDomainHostdevDefNew(virDomainXMLOption *xmlopt);
void virDomainHostdevDefFree(virDomainHostdevDef *def);
void virDomainHubDefFree(virDomainHubDef *def);
void virDomainRedirdevDefFree(virDomainRedirdevDef *def);
diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c
index 666c6cae20..f19e4f6abb 100644
--- a/src/libxl/xen_common.c
+++ b/src/libxl/xen_common.c
@@ -445,7 +445,7 @@ xenParsePCI(char *entry)
}
}
- hostdev = virDomainHostdevDefNew();
+ hostdev = virDomainHostdevDefNew(NULL);
hostdev->managed = false;
hostdev->writeFiltering = filtered;
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c
index b2ff0edcf2..e62302736b 100644
--- a/src/libxl/xen_xl.c
+++ b/src/libxl/xen_xl.c
@@ -930,7 +930,7 @@ xenParseXLUSB(virConf *conf, virDomainDef *def)
key = nextkey;
}
- hostdev = virDomainHostdevDefNew();
+ hostdev = virDomainHostdevDefNew(NULL);
hostdev->managed = false;
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB;
hostdev->source.subsys.u.usb.bus = busNum;
diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
index 7700804429..a94427b027 100644
--- a/src/lxc/lxc_native.c
+++ b/src/lxc/lxc_native.c
@@ -376,7 +376,7 @@ lxcCreateNetDef(const char *type,
static virDomainHostdevDef *
lxcCreateHostdevDef(const char *data)
{
- virDomainHostdevDef *hostdev = virDomainHostdevDefNew();
+ virDomainHostdevDef *hostdev = virDomainHostdevDefNew(NULL);
hostdev->mode = VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES;
hostdev->source.caps.type = VIR_DOMAIN_HOSTDEV_CAPS_TYPE_NET;
hostdev->source.caps.u.net.ifname = g_strdup(data);
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 486a0e7913..3366214677 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1238,6 +1238,45 @@ qemuDomainNetworkPrivateFormat(const virDomainNetDef *net,
}
+static virClass *qemuDomainHostdevPrivateClass;
+
+static void
+qemuDomainHostdevPrivateDispose(void *obj)
+{
+ qemuDomainHostdevPrivate *priv = obj;
+
+ VIR_FORCE_CLOSE(priv->vfioDeviceFd);
+}
+
+
+static int
+qemuDomainHostdevPrivateOnceInit(void)
+{
+ if (!VIR_CLASS_NEW(qemuDomainHostdevPrivate, virClassForObject()))
+ return -1;
+
+ return 0;
+}
+
+VIR_ONCE_GLOBAL_INIT(qemuDomainHostdevPrivate);
+
+virObject *
+qemuDomainHostdevPrivateNew(void)
+{
+ qemuDomainHostdevPrivate *priv;
+
+ if (qemuDomainHostdevPrivateInitialize() < 0)
+ return NULL;
+
+ if (!(priv = virObjectNew(qemuDomainHostdevPrivateClass)))
+ return NULL;
+
+ priv->vfioDeviceFd = -1;
+
+ return (virObject *) priv;
+}
+
+
/* qemuDomainSecretInfoSetup:
* @priv: pointer to domain private object
* @alias: alias of the secret
@@ -3563,6 +3602,7 @@ virDomainXMLPrivateDataCallbacks virQEMUDriverPrivateDataCallbacks = {
.chrSourceNew = qemuDomainChrSourcePrivateNew,
.vsockNew = qemuDomainVsockPrivateNew,
.graphicsNew = qemuDomainGraphicsPrivateNew,
+ .hostdevNew = qemuDomainHostdevPrivateNew,
.networkNew = qemuDomainNetworkPrivateNew,
.networkParse = qemuDomainNetworkPrivateParse,
.networkFormat = qemuDomainNetworkPrivateFormat,
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index b9bb338682..88c8416aa4 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -461,6 +461,18 @@ struct _qemuDomainTPMPrivate {
};
+#define QEMU_DOMAIN_HOSTDEV_PRIVATE(hostdev) \
+ ((qemuDomainHostdevPrivate *) (hostdev)->privateData)
+
+typedef struct _qemuDomainHostdevPrivate qemuDomainHostdevPrivate;
+struct _qemuDomainHostdevPrivate {
+ virObject parent;
+
+ /* VFIO device file descriptor for iommufd passthrough */
+ int vfioDeviceFd;
+};
+
+
void
qemuDomainNetworkPrivateClearFDs(qemuDomainNetworkPrivate *priv);
@@ -1175,3 +1187,6 @@ qemuDomainCheckCPU(virArch arch,
bool
qemuDomainMachineSupportsFloppy(const char *machine,
virQEMUCaps *qemuCaps);
+
+virObject *
+qemuDomainHostdevPrivateNew(void);
diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index 26c5fdfef6..d2a8cf8da4 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -3090,7 +3090,7 @@ vboxHostDeviceGetXMLDesc(struct _vboxDriver *data, virDomainDef *def, IMachine *
def->hostdevs = g_new0(virDomainHostdevDef *, def->nhostdevs);
for (i = 0; i < def->nhostdevs; i++)
- def->hostdevs[i] = virDomainHostdevDefNew();
+ def->hostdevs[i] = virDomainHostdevDefNew(NULL);
for (i = 0; i < deviceFilters.count; i++) {
PRBool active = PR_FALSE;
diff --git a/tests/virhostdevtest.c b/tests/virhostdevtest.c
index aec474a148..a35c1d9402 100644
--- a/tests/virhostdevtest.c
+++ b/tests/virhostdevtest.c
@@ -124,7 +124,7 @@ myInit(void)
for (i = 0; i < nhostdevs; i++) {
virDomainHostdevSubsys *subsys;
- hostdevs[i] = virDomainHostdevDefNew();
+ hostdevs[i] = virDomainHostdevDefNew(NULL);
if (!hostdevs[i])
goto cleanup;
hostdevs[i]->mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS;
--
2.52.0

View File

@ -0,0 +1,111 @@
From 38c43950b3f6327e5d51e6751415208e5a467bed Mon Sep 17 00:00:00 2001
Message-ID: <38c43950b3f6327e5d51e6751415208e5a467bed.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Mon, 16 Feb 2026 09:12:02 +0100
Subject: [PATCH] qemu: Move IOMMUFD validation to qemu_validate
Fail early if kernel doesn't support IOMMUFD.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 0c1af67be554d4daa2facfb647ce6e9914da2f06)
Resolves: https://issues.redhat.com/browse/RHEL-150353
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/libvirt_private.syms | 1 +
src/qemu/qemu_process.c | 8 +-------
src/qemu/qemu_validate.c | 7 +++++++
src/util/viriommufd.c | 13 +++++++++++++
src/util/viriommufd.h | 2 ++
5 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index e2a7a16347..0904265459 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2654,6 +2654,7 @@ virInitctlSetRunLevel;
# util/viriommufd.h
virIOMMUFDSetRLimitMode;
+virIOMMUFDSupported;
# util/viriscsi.h
virISCSIConnectionLogin;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 37e688018c..479437fb34 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7690,13 +7690,7 @@ qemuProcessOpenIommuFd(virDomainObj *vm)
VIR_DEBUG("Opening IOMMU FD for domain %s", vm->def->name);
if ((fd = open(VIR_IOMMU_DEV_PATH, O_RDWR | O_CLOEXEC)) < 0) {
- if (errno == ENOENT) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("IOMMU FD support requires /dev/iommu device"));
- } else {
- virReportSystemError(errno, "%s",
- _("cannot open /dev/iommu"));
- }
+ virReportSystemError(errno, "%s", _("cannot open /dev/iommu"));
return -1;
}
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 9886ddaf1d..5c8c21335d 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -27,6 +27,7 @@
#include "qemu_process.h"
#include "domain_conf.h"
#include "virbitmap.h"
+#include "viriommufd.h"
#include "virlog.h"
#include "virutil.h"
@@ -2727,6 +2728,12 @@ qemuValidateDomainDeviceDefHostdev(const virDomainHostdevDef *hostdev,
_("IOMMUFD is not supported by this version of qemu"));
return -1;
}
+
+ if (!virIOMMUFDSupported()) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("IOMMUFD is not supported by host kernel"));
+ return -1;
+ }
}
}
diff --git a/src/util/viriommufd.c b/src/util/viriommufd.c
index 5af097683d..44b30029a5 100644
--- a/src/util/viriommufd.c
+++ b/src/util/viriommufd.c
@@ -88,3 +88,16 @@ int virIOMMUFDSetRLimitMode(int fd G_GNUC_UNUSED,
}
#endif
+
+/**
+ * virIOMMUFDSupported:
+ *
+ * Check the presence of IOMMU device.
+ *
+ * Retruns: true if it exists, false otherwise
+ */
+bool
+virIOMMUFDSupported(void)
+{
+ return virFileExists(VIR_IOMMU_DEV_PATH);
+}
diff --git a/src/util/viriommufd.h b/src/util/viriommufd.h
index ebecfe3633..ec6be9fa66 100644
--- a/src/util/viriommufd.h
+++ b/src/util/viriommufd.h
@@ -23,3 +23,5 @@
#define VIR_IOMMU_DEV_PATH "/dev/iommu"
int virIOMMUFDSetRLimitMode(int fd, bool processAccounting);
+
+bool virIOMMUFDSupported(void);
--
2.53.0

View File

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

View File

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

View File

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

View File

@ -0,0 +1,79 @@
From c061be3f01ee2e1b6138a440bbd137bdb71e785f Mon Sep 17 00:00:00 2001
Message-ID: <c061be3f01ee2e1b6138a440bbd137bdb71e785f.1771423832.git.jdenemar@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com>
Date: Sat, 14 Feb 2026 17:54:57 +0100
Subject: [PATCH] qemu: Save IOMMUFD state into status XML
We need to track if iommufd object was added to the VM when we add
hotplug support.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit b21b6dcc72f1853f103f3cfbe1ebbcfbf128b458)
Resolves: https://issues.redhat.com/browse/RHEL-150353
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/qemu/qemu_command.c | 2 ++
src/qemu/qemu_domain.c | 6 ++++++
src/qemu/qemu_domain.h | 1 +
3 files changed, 9 insertions(+)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 445d328358..b866c690ae 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5359,6 +5359,8 @@ qemuBuildIOMMUFDCommandLine(virCommand *cmd,
if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0)
return -1;
+ priv->iommufdState = true;
+
return 0;
}
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index ada9d3431c..ccbfc8bac7 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1976,6 +1976,7 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivate *priv)
priv->migrationRecoverSetup = false;
g_clear_pointer(&priv->iommufd, qemuFDPassDirectFree);
+ priv->iommufdState = false;
g_clear_pointer(&priv->memoryBackingDir, g_free);
}
@@ -2844,6 +2845,9 @@ qemuDomainObjPrivateXMLFormat(virBuffer *buf,
priv->preMigrationMemlock);
}
+ if (priv->iommufdState)
+ virBufferAddLit(buf, "<iommufd/>\n");
+
return 0;
}
@@ -3582,6 +3586,8 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt,
return -1;
}
+ priv->iommufdState = virXPathBoolean("boolean(./iommufd)", ctxt) == 1;
+
return 0;
}
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 8aa94fc25b..62c5252b9f 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -265,6 +265,7 @@ struct _qemuDomainObjPrivate {
GHashTable *fds;
qemuFDPassDirect *iommufd;
+ bool iommufdState; /* true if --object iommufd was added */
char *memoryBackingDir;
};
--
2.53.0

View File

@ -0,0 +1,132 @@
From 8ea558c6eff6cc3b968b1124ad4e005bb3844d74 Mon Sep 17 00:00:00 2001
Message-ID: <8ea558c6eff6cc3b968b1124ad4e005bb3844d74.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Fri, 23 Jan 2026 17:18:14 +0100
Subject: [PATCH] qemu: Setup disk latency histograms on startup/hotplug/update
Setup the histograms on startup and hotplug of devices via
'qemuProcessSetupDiskPropsRuntime' and facilitate update/reset/disable
of histogram collection via 'qemuDomainChangeDiskLive'.
The latter allows to use the update device API to either clear the bins
or select new bin configuration or disable the histogram altogether
without the need for a specific API.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 5787326541be4eafaa7ae3b4f866b3da793d44fe)
https://issues.redhat.com/browse/RHEL-147866 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-131335 [rhel-10.2]
---
src/qemu/qemu_domain.c | 17 +++++++++++++++++
src/qemu/qemu_domain.h | 3 +++
src/qemu/qemu_hotplug.c | 29 +++++++++++++++++++++++++++++
src/qemu/qemu_process.c | 10 ++++++++++
4 files changed, 59 insertions(+)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 8e1ebe7799..bdab117e96 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -10463,6 +10463,23 @@ qemuDomainInitializePflashStorageSource(virDomainObj *vm,
}
+/**
+ * qemuDomainDiskHasLatencyHistogram:
+ * @disk: disk definition
+ *
+ * Returns whether @disk has any latency histogram settings configured.
+ */
+bool
+qemuDomainDiskHasLatencyHistogram(virDomainDiskDef *disk)
+{
+ return disk->histogram_boundaries ||
+ disk->histogram_boundaries_read ||
+ disk->histogram_boundaries_write ||
+ disk->histogram_boundaries_zone ||
+ disk->histogram_boundaries_flush;
+}
+
+
/**
* qemuDomainDiskBlockJobIsSupported:
*
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 3361e97315..30ca67bf76 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -1078,6 +1078,9 @@ int
qemuDomainInitializePflashStorageSource(virDomainObj *vm,
virQEMUDriverConfig *cfg);
+bool
+qemuDomainDiskHasLatencyHistogram(virDomainDiskDef *disk);
+
bool
qemuDomainDiskBlockJobIsSupported(virDomainDiskDef *disk);
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index f2dc4469a3..9445599d2c 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -7310,6 +7310,35 @@ qemuDomainChangeDiskLive(virDomainObj *vm,
dev->data.disk->src = NULL;
}
+ if (qemuDomainDiskHasLatencyHistogram(disk) ||
+ qemuDomainDiskHasLatencyHistogram(orig_disk)) {
+ int rc;
+
+ qemuDomainObjEnterMonitor(vm);
+ rc = qemuMonitorBlockLatencyHistogramSet(qemuDomainGetMonitor(vm),
+ QEMU_DOMAIN_DISK_PRIVATE(orig_disk)->qomName,
+ disk->histogram_boundaries,
+ disk->histogram_boundaries_read,
+ disk->histogram_boundaries_write,
+ disk->histogram_boundaries_zone,
+ disk->histogram_boundaries_flush);
+ qemuDomainObjExitMonitor(vm);
+
+ if (rc < 0)
+ return -1;
+
+ g_clear_pointer(&orig_disk->histogram_boundaries, g_free);
+ g_clear_pointer(&orig_disk->histogram_boundaries_read, g_free);
+ g_clear_pointer(&orig_disk->histogram_boundaries_write, g_free);
+ g_clear_pointer(&orig_disk->histogram_boundaries_zone, g_free);
+ g_clear_pointer(&orig_disk->histogram_boundaries_flush, g_free);
+ orig_disk->histogram_boundaries = g_steal_pointer(&disk->histogram_boundaries);
+ orig_disk->histogram_boundaries_read = g_steal_pointer(&disk->histogram_boundaries_read);
+ orig_disk->histogram_boundaries_write = g_steal_pointer(&disk->histogram_boundaries_write);
+ orig_disk->histogram_boundaries_zone = g_steal_pointer(&disk->histogram_boundaries_zone);
+ orig_disk->histogram_boundaries_flush = g_steal_pointer(&disk->histogram_boundaries_flush);
+ }
+
/* in case when we aren't updating disk source we update startup policy here */
orig_disk->startupPolicy = dev->data.disk->startupPolicy;
orig_disk->snapshot = dev->data.disk->snapshot;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index aadfaa92b0..37e688018c 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7959,6 +7959,16 @@ qemuProcessSetupDiskPropsRuntime(qemuMonitor *mon,
&disk->blkdeviotune) < 0)
return -1;
+ if (qemuDomainDiskHasLatencyHistogram(disk) &&
+ qemuMonitorBlockLatencyHistogramSet(mon,
+ QEMU_DOMAIN_DISK_PRIVATE(disk)->qomName,
+ disk->histogram_boundaries,
+ disk->histogram_boundaries_read,
+ disk->histogram_boundaries_write,
+ disk->histogram_boundaries_zone,
+ disk->histogram_boundaries_flush) < 0)
+ return -1;
+
return 0;
}
--
2.53.0

View File

@ -0,0 +1,211 @@
From 282a5215343e081ff331d0d4b8f2d6474e47f5ad Mon Sep 17 00:00:00 2001
Message-ID: <282a5215343e081ff331d0d4b8f2d6474e47f5ad.1770383236.git.jdenemar@redhat.com>
From: Nathan Chen <nathanc@nvidia.com>
Date: Fri, 30 Jan 2026 10:59:14 -0800
Subject: [PATCH] qemu: Support per-process memory accounting for iommufd
Implement the IOMMU_OPTION_RLIMIT_MODE
ioctl to set per-process memory accounting for
iommufd. This prevents ENOMEM errors from the
default per-user memory accounting when multiple
VMs under the libvirt-qemu user have their pinned
memory summed and checked against a per-process
RLIMIT_MEMLOCK limit.
Signed-off-by: Nathan Chen <nathanc@nvidia.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit f91a07d0c8dd583928974e80bb13b54feb5aa908)
Resolves: https://issues.redhat.com/browse/RHEL-126345
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
meson.build | 1 +
po/POTFILES | 1 +
src/libvirt_private.syms | 3 ++
src/util/meson.build | 1 +
src/util/viriommufd.c | 90 ++++++++++++++++++++++++++++++++++++++++
src/util/viriommufd.h | 25 +++++++++++
6 files changed, 121 insertions(+)
create mode 100644 src/util/viriommufd.c
create mode 100644 src/util/viriommufd.h
diff --git a/meson.build b/meson.build
index 6ac9d01952..28745e4e32 100644
--- a/meson.build
+++ b/meson.build
@@ -673,6 +673,7 @@ headers = [
'ifaddrs.h',
'libtasn1.h',
'linux/kvm.h',
+ 'linux/iommufd.h',
'mntent.h',
'net/ethernet.h',
'net/if.h',
diff --git a/po/POTFILES b/po/POTFILES
index f0aad35c8c..c78d2b8000 100644
--- a/po/POTFILES
+++ b/po/POTFILES
@@ -303,6 +303,7 @@ src/util/virhostuptime.c
src/util/viridentity.c
src/util/virinhibitor.c
src/util/virinitctl.c
+src/util/viriommufd.c
src/util/viriscsi.c
src/util/virjson.c
src/util/virlease.c
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 4e57e4a8f6..66261ed6cf 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2652,6 +2652,9 @@ virInhibitorRelease;
virInitctlFifos;
virInitctlSetRunLevel;
+# util/viriommufd.h
+virIOMMUFDSetRLimitMode;
+
# util/viriscsi.h
virISCSIConnectionLogin;
virISCSIConnectionLogout;
diff --git a/src/util/meson.build b/src/util/meson.build
index 4950a795cc..9fb0aa0fe7 100644
--- a/src/util/meson.build
+++ b/src/util/meson.build
@@ -46,6 +46,7 @@ util_sources = [
'viridentity.c',
'virinhibitor.c',
'virinitctl.c',
+ 'viriommufd.c',
'viriscsi.c',
'virjson.c',
'virkeycode.c',
diff --git a/src/util/viriommufd.c b/src/util/viriommufd.c
new file mode 100644
index 0000000000..5af097683d
--- /dev/null
+++ b/src/util/viriommufd.c
@@ -0,0 +1,90 @@
+#include <config.h>
+
+#include "viriommufd.h"
+#include "virlog.h"
+#include "virerror.h"
+#include "virfile.h"
+
+#define VIR_FROM_THIS VIR_FROM_NONE
+
+VIR_LOG_INIT("util.iommufd");
+
+#ifdef __linux__
+
+# include <sys/ioctl.h>
+# include <linux/types.h>
+
+# ifdef HAVE_LINUX_IOMMUFD_H
+# include <linux/iommufd.h>
+# endif
+
+# ifndef IOMMU_OPTION
+
+enum iommufd_option {
+ IOMMU_OPTION_RLIMIT_MODE = 0,
+ IOMMU_OPTION_HUGE_PAGES = 1,
+};
+
+enum iommufd_option_ops {
+ IOMMU_OPTION_OP_SET = 0,
+ IOMMU_OPTION_OP_GET = 1,
+};
+
+struct iommu_option {
+ __u32 size;
+ __u32 option_id;
+ __u16 op;
+ __u16 __reserved;
+ __u32 object_id;
+ __aligned_u64 val64;
+};
+
+# define IOMMUFD_TYPE (';')
+# define IOMMUFD_CMD_OPTION 0x87
+# define IOMMU_OPTION _IO(IOMMUFD_TYPE, IOMMUFD_CMD_OPTION)
+
+# endif
+
+/**
+ * virIOMMUFDSetRLimitMode:
+ * @fd: iommufd file descriptor
+ * @processAccounting: true for per-process, false for per-user
+ *
+ * Set RLIMIT_MEMLOCK accounting mode for the iommufd.
+ *
+ * Returns: 0 on success, -1 on error
+ */
+int
+virIOMMUFDSetRLimitMode(int fd, bool processAccounting)
+{
+ struct iommu_option option = {
+ .size = sizeof(struct iommu_option),
+ .option_id = IOMMU_OPTION_RLIMIT_MODE,
+ .op = IOMMU_OPTION_OP_SET,
+ .__reserved = 0,
+ .object_id = 0,
+ .val64 = processAccounting ? 1 : 0,
+ };
+
+ if (ioctl(fd, IOMMU_OPTION, &option) < 0) {
+ virReportSystemError(errno, "%s",
+ _("failed to set memory accounting for iommufd"));
+ return -1;
+ }
+
+ VIR_DEBUG("Set iommufd rlimit mode to %s-based accounting",
+ processAccounting ? "process" : "user");
+ return 0;
+}
+
+#else
+
+int virIOMMUFDSetRLimitMode(int fd G_GNUC_UNUSED,
+ bool processAccounting G_GNUC_UNUSED)
+{
+ virReportError(VIR_ERR_NO_SUPPORT, "%s",
+ _("IOMMUFD is not supported on this platform"));
+ return -1;
+}
+
+#endif
diff --git a/src/util/viriommufd.h b/src/util/viriommufd.h
new file mode 100644
index 0000000000..ebecfe3633
--- /dev/null
+++ b/src/util/viriommufd.h
@@ -0,0 +1,25 @@
+/*
+ * viriommufd.h: iommufd helpers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "internal.h"
+
+#define VIR_IOMMU_DEV_PATH "/dev/iommu"
+
+int virIOMMUFDSetRLimitMode(int fd, bool processAccounting);
--
2.52.0

View File

@ -0,0 +1,335 @@
From 7db5ef1d0c015b39793065877742374cfc829b6b Mon Sep 17 00:00:00 2001
Message-ID: <7db5ef1d0c015b39793065877742374cfc829b6b.1770383237.git.jdenemar@redhat.com>
From: Nathan Chen <nathanc@nvidia.com>
Date: Fri, 30 Jan 2026 10:59:17 -0800
Subject: [PATCH] qemu: Update Cgroup, namespace, and seclabel for iommufd
When launching a qemu VM with the iommufd feature enabled for VFIO
hostdevs:
- Do not allow cgroup, namespace, and seclabel access to VFIO
paths (/dev/vfio/vfio and /dev/vfio/<iommugroup>)
- Allow access to iommufd paths (/dev/iommu and
/dev/vfio/devices/vfio*) for AppArmor, SELinux, and DAC
Signed-off-by: Nathan Chen <nathanc@nvidia.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit 7d2f91f9cb572ab95d0916bdd1a46dd198874529)
Resolves: https://issues.redhat.com/browse/RHEL-126345
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
src/qemu/qemu_cgroup.c | 3 ++
src/qemu/qemu_namespace.c | 3 ++
src/security/security_apparmor.c | 28 ++++++++++++------
src/security/security_dac.c | 49 +++++++++++++++++++++++++-------
src/security/security_selinux.c | 47 +++++++++++++++++++++++-------
src/security/virt-aa-helper.c | 32 ++++++++++++++++-----
6 files changed, 127 insertions(+), 35 deletions(-)
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 7dadef0739..6148990f19 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -479,6 +479,9 @@ qemuSetupHostdevCgroup(virDomainObj *vm,
g_autofree char *path = NULL;
int perms;
+ if (dev->source.subsys.u.pci.driver.iommufd == VIR_TRISTATE_BOOL_YES)
+ return 0;
+
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_DEVICES))
return 0;
diff --git a/src/qemu/qemu_namespace.c b/src/qemu/qemu_namespace.c
index c689cc3e40..fb0734193d 100644
--- a/src/qemu/qemu_namespace.c
+++ b/src/qemu/qemu_namespace.c
@@ -345,6 +345,9 @@ qemuDomainSetupHostdev(virDomainObj *vm,
{
g_autofree char *path = NULL;
+ if (hostdev->source.subsys.u.pci.driver.iommufd == VIR_TRISTATE_BOOL_YES)
+ return 0;
+
if (qemuDomainGetHostdevPath(hostdev, &path, NULL) < 0)
return -1;
diff --git a/src/security/security_apparmor.c b/src/security/security_apparmor.c
index 68ac39611f..934acfb461 100644
--- a/src/security/security_apparmor.c
+++ b/src/security/security_apparmor.c
@@ -45,6 +45,7 @@
#include "virstring.h"
#include "virscsi.h"
#include "virmdev.h"
+#include "viriommufd.h"
#define VIR_FROM_THIS VIR_FROM_SECURITY
@@ -841,25 +842,36 @@ AppArmorSetSecurityHostdevLabel(virSecurityManager *mgr,
}
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: {
- virPCIDevice *pci =
+ g_autoptr(virPCIDevice) pci =
virPCIDeviceNew(&pcisrc->addr);
if (!pci)
goto done;
if (pcisrc->driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
- char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
+ if (dev->source.subsys.u.pci.driver.iommufd != VIR_TRISTATE_BOOL_YES) {
+ char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
- if (!vfioGroupDev) {
- virPCIDeviceFree(pci);
- goto done;
+ if (!vfioGroupDev) {
+ goto done;
+ }
+ ret = AppArmorSetSecurityPCILabel(pci, vfioGroupDev, ptr);
+ VIR_FREE(vfioGroupDev);
+ } else {
+ g_autofree char *vfiofdDev = NULL;
+
+ if (virPCIDeviceGetVfioPath(&dev->source.subsys.u.pci.addr, &vfiofdDev) < 0)
+ goto done;
+
+ ret = AppArmorSetSecurityPCILabel(pci, vfiofdDev, ptr);
+ if (ret < 0)
+ goto done;
+
+ ret = AppArmorSetSecurityPCILabel(pci, VIR_IOMMU_DEV_PATH, ptr);
}
- ret = AppArmorSetSecurityPCILabel(pci, vfioGroupDev, ptr);
- VIR_FREE(vfioGroupDev);
} else {
ret = virPCIDeviceFileIterate(pci, AppArmorSetSecurityPCILabel, ptr);
}
- virPCIDeviceFree(pci);
break;
}
diff --git a/src/security/security_dac.c b/src/security/security_dac.c
index 2f788b872a..d0ed22db2d 100644
--- a/src/security/security_dac.c
+++ b/src/security/security_dac.c
@@ -41,6 +41,7 @@
#include "virscsivhost.h"
#include "virstring.h"
#include "virutil.h"
+#include "viriommufd.h"
#define VIR_FROM_THIS VIR_FROM_SECURITY
@@ -1282,14 +1283,27 @@ virSecurityDACSetHostdevLabel(virSecurityManager *mgr,
return -1;
if (pcisrc->driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
- g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
+ if (dev->source.subsys.u.pci.driver.iommufd != VIR_TRISTATE_BOOL_YES) {
+ g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
- if (!vfioGroupDev)
- return -1;
+ if (!vfioGroupDev)
+ return -1;
- ret = virSecurityDACSetHostdevLabelHelper(vfioGroupDev,
- false,
- &cbdata);
+ ret = virSecurityDACSetHostdevLabelHelper(vfioGroupDev,
+ false,
+ &cbdata);
+ } else {
+ g_autofree char *vfiofdDev = NULL;
+
+ if (virPCIDeviceGetVfioPath(&dev->source.subsys.u.pci.addr, &vfiofdDev) < 0)
+ return -1;
+
+ ret = virSecurityDACSetHostdevLabelHelper(vfiofdDev, false, &cbdata);
+ if (ret < 0)
+ break;
+
+ ret = virSecurityDACSetHostdevLabelHelper(VIR_IOMMU_DEV_PATH, false, &cbdata);
+ }
} else {
ret = virPCIDeviceFileIterate(pci,
virSecurityDACSetPCILabel,
@@ -1443,13 +1457,28 @@ virSecurityDACRestoreHostdevLabel(virSecurityManager *mgr,
return -1;
if (pcisrc->driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
- g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
+ if (dev->source.subsys.u.pci.driver.iommufd != VIR_TRISTATE_BOOL_YES) {
+ g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
- if (!vfioGroupDev)
- return -1;
+ if (!vfioGroupDev)
+ return -1;
- ret = virSecurityDACRestoreFileLabelInternal(mgr, NULL,
+ ret = virSecurityDACRestoreFileLabelInternal(mgr, NULL,
vfioGroupDev, false);
+ } else {
+ g_autofree char *vfiofdDev = NULL;
+
+ if (virPCIDeviceGetVfioPath(&dev->source.subsys.u.pci.addr, &vfiofdDev) < 0)
+ return -1;
+
+ ret = virSecurityDACRestoreFileLabelInternal(mgr, NULL,
+ vfiofdDev, false);
+ if (ret < 0)
+ break;
+
+ ret = virSecurityDACRestoreFileLabelInternal(mgr, NULL,
+ VIR_IOMMU_DEV_PATH, false);
+ }
} else {
ret = virPCIDeviceFileIterate(pci, virSecurityDACRestorePCILabel, mgr);
}
diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
index 2f3cc274a5..834383a7de 100644
--- a/src/security/security_selinux.c
+++ b/src/security/security_selinux.c
@@ -41,6 +41,7 @@
#include "virconf.h"
#include "virtpm.h"
#include "virstring.h"
+#include "viriommufd.h"
#define VIR_FROM_THIS VIR_FROM_SECURITY
@@ -2256,14 +2257,27 @@ virSecuritySELinuxSetHostdevSubsysLabel(virSecurityManager *mgr,
return -1;
if (pcisrc->driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
- g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
+ if (dev->source.subsys.u.pci.driver.iommufd != VIR_TRISTATE_BOOL_YES) {
+ g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
- if (!vfioGroupDev)
- return -1;
+ if (!vfioGroupDev)
+ return -1;
- ret = virSecuritySELinuxSetHostdevLabelHelper(vfioGroupDev,
- false,
- &data);
+ ret = virSecuritySELinuxSetHostdevLabelHelper(vfioGroupDev,
+ false,
+ &data);
+ } else {
+ g_autofree char *vfiofdDev = NULL;
+
+ if (virPCIDeviceGetVfioPath(&dev->source.subsys.u.pci.addr, &vfiofdDev) < 0)
+ return -1;
+
+ ret = virSecuritySELinuxSetHostdevLabelHelper(vfiofdDev, false, &data);
+ if (ret)
+ break;
+
+ ret = virSecuritySELinuxSetHostdevLabelHelper(VIR_IOMMU_DEV_PATH, false, &data);
+ }
} else {
ret = virPCIDeviceFileIterate(pci, virSecuritySELinuxSetPCILabel, &data);
}
@@ -2491,12 +2505,25 @@ virSecuritySELinuxRestoreHostdevSubsysLabel(virSecurityManager *mgr,
return -1;
if (pcisrc->driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
- g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
+ if (dev->source.subsys.u.pci.driver.iommufd != VIR_TRISTATE_BOOL_YES) {
+ g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
- if (!vfioGroupDev)
- return -1;
+ if (!vfioGroupDev)
+ return -1;
- ret = virSecuritySELinuxRestoreFileLabel(mgr, vfioGroupDev, false, false);
+ ret = virSecuritySELinuxRestoreFileLabel(mgr, vfioGroupDev, false, false);
+ } else {
+ g_autofree char *vfiofdDev = NULL;
+
+ if (virPCIDeviceGetVfioPath(&dev->source.subsys.u.pci.addr, &vfiofdDev) < 0)
+ return -1;
+
+ ret = virSecuritySELinuxRestoreFileLabel(mgr, vfiofdDev, false, false);
+ if (ret < 0)
+ break;
+
+ ret = virSecuritySELinuxRestoreFileLabel(mgr, VIR_IOMMU_DEV_PATH, false, false);
+ }
} else {
ret = virPCIDeviceFileIterate(pci, virSecuritySELinuxRestorePCILabel, mgr);
}
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index de0a826063..29e844c7ff 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -50,6 +50,7 @@
#include "virstring.h"
#include "virgettext.h"
#include "virhostdev.h"
+#include "viriommufd.h"
#define VIR_FROM_THIS VIR_FROM_SECURITY
@@ -1114,8 +1115,9 @@ get_files(vahControl * ctl)
virDeviceHostdevPCIDriverName driverName = dev->source.subsys.u.pci.driver.name;
- if (driverName == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO ||
- driverName == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT) {
+ if ((driverName == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO ||
+ driverName == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT) &&
+ dev->source.subsys.u.pci.driver.iommufd != VIR_TRISTATE_BOOL_YES) {
needsVfio = true;
}
@@ -1385,9 +1387,18 @@ get_files(vahControl * ctl)
}
}
- if (ctl->newfile &&
- vah_add_file(&buf, ctl->newfile, "rwk") != 0) {
- return -1;
+ if (ctl->newfile) {
+ const char *perms = "rwk";
+
+ /* VFIO and iommufd devices need mmap permission */
+ if (STRPREFIX(ctl->newfile, "/dev/vfio/devices/vfio") ||
+ STREQ(ctl->newfile, VIR_IOMMU_DEV_PATH)) {
+ perms = "rwm";
+ }
+
+ if (vah_add_file(&buf, ctl->newfile, perms) != 0) {
+ return -1;
+ }
}
ctl->files = virBufferContentAndReset(&buf);
@@ -1561,8 +1572,15 @@ main(int argc, char **argv)
}
}
if (ctl->append && ctl->newfile) {
- if (vah_add_file(&buf, ctl->newfile, "rwk") != 0)
- goto cleanup;
+ const char *perms = "rwk";
+
+ if (STRPREFIX(ctl->newfile, "/dev/vfio/devices/vfio") ||
+ STREQ(ctl->newfile, VIR_IOMMU_DEV_PATH)) {
+ perms = "rwm";
+ }
+
+ if (vah_add_file(&buf, ctl->newfile, perms) != 0)
+ return -1;
} else {
if (ctl->def->virtType == VIR_DOMAIN_VIRT_QEMU ||
ctl->def->virtType == VIR_DOMAIN_VIRT_KQEMU ||
--
2.52.0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,58 @@
From d774dcd5a64a14a044ed801103b203bc54b8ac7a Mon Sep 17 00:00:00 2001
Message-ID: <d774dcd5a64a14a044ed801103b203bc54b8ac7a.1771336751.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 11 Dec 2025 19:26:40 +0100
Subject: [PATCH] qemu: capabilities: Introduce
QEMU_CAPS_DEVICE_SCSI_BLOCK_MIGRATE_PR
Introduce capability for persisten migration control support.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit b0edb7eb9b819e0560bb7d65b4e0c89082b3b43b)
https://issues.redhat.com/browse/RHEL-140614 [rhel-9.8]
https://issues.redhat.com/browse/RHEL-135115 [rhel-10.2]
Conflicts:
- Commit befdd44bf836c3ba46e46d57b587127e12736591 adding
QEMU_CAPS_VIRTIO_IOMMU_AW_BITS was not backported
---
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
2 files changed, 3 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 1efb77d03b..2c8bd62c99 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -755,6 +755,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
"disk-timed-stats", /* QEMU_CAPS_DISK_TIMED_STATS */
"query-accelerators", /* QEMU_CAPS_QUERY_ACCELERATORS */
"mshv", /* QEMU_CAPS_MSHV */
+ "scsi-block.migrate-pr", /* QEMU_CAPS_DEVICE_SCSI_BLOCK_MIGRATE_PR */
);
@@ -1536,6 +1537,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsSCSIDisk[] = {
};
static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsSCSIBlock[] = {
+ { "migrate-pr", QEMU_CAPS_DEVICE_SCSI_BLOCK_MIGRATE_PR, NULL },
};
static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsSCSIGeneric[] = {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index f180844e66..0c76f2edda 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -730,6 +730,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
QEMU_CAPS_DISK_TIMED_STATS, /* timed stats support ('stats-intervals' property of disk frontends) */
QEMU_CAPS_QUERY_ACCELERATORS, /* query-accelerators command */
QEMU_CAPS_MSHV, /* -accel mshv */
+ QEMU_CAPS_DEVICE_SCSI_BLOCK_MIGRATE_PR, /* persistent reservation migration support */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
--
2.53.0

View File

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

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