import libvirt-8.0.0-5.2.module+el8.6.0+15256+3a0914fe
This commit is contained in:
parent
9612d948f4
commit
5b77fef41c
155
SOURCES/libvirt-conf-Introduce-memory-allocation-threads.patch
Normal file
155
SOURCES/libvirt-conf-Introduce-memory-allocation-threads.patch
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
From e60a964e51cb0aecb060f1a1cc2884586e00ddeb Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <e60a964e51cb0aecb060f1a1cc2884586e00ddeb@dist-git>
|
||||||
|
From: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Date: Mon, 21 Mar 2022 16:49:25 +0100
|
||||||
|
Subject: [PATCH] conf: Introduce memory allocation threads
|
||||||
|
|
||||||
|
Since its v5.0.0 release QEMU is capable of specifying number of
|
||||||
|
threads used to allocate memory. It defaults to 1, which may be
|
||||||
|
too low for humongous guests with gigantic pages.
|
||||||
|
|
||||||
|
In general, on QEMU cmd line level it is possible to use
|
||||||
|
different number of threads per each memory-backend-* object, in
|
||||||
|
practical terms it's not useful. Therefore, use <memoryBacking/>
|
||||||
|
to set guest wide value and let all memory devices 'inherit' it,
|
||||||
|
silently. IOW, don't introduce per device knob because that would
|
||||||
|
only complicate things for a little or no benefit.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
|
||||||
|
(cherry picked from commit ba7f98126fa84d354ce72929b77cc111a9a557a9)
|
||||||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2075569
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
---
|
||||||
|
docs/formatdomain.rst | 8 +++++---
|
||||||
|
docs/schemas/domaincommon.rng | 19 +++++++++++++------
|
||||||
|
src/conf/domain_conf.c | 15 ++++++++++++++-
|
||||||
|
src/conf/domain_conf.h | 1 +
|
||||||
|
tests/qemuxml2argvdata/memfd-memory-numa.xml | 2 +-
|
||||||
|
5 files changed, 34 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
|
||||||
|
index 8128e43da4..17e89a0c0d 100644
|
||||||
|
--- a/docs/formatdomain.rst
|
||||||
|
+++ b/docs/formatdomain.rst
|
||||||
|
@@ -977,7 +977,7 @@ Memory Backing
|
||||||
|
<locked/>
|
||||||
|
<source type="file|anonymous|memfd"/>
|
||||||
|
<access mode="shared|private"/>
|
||||||
|
- <allocation mode="immediate|ondemand"/>
|
||||||
|
+ <allocation mode="immediate|ondemand" threads='8'/>
|
||||||
|
<discard/>
|
||||||
|
</memoryBacking>
|
||||||
|
...
|
||||||
|
@@ -1026,8 +1026,10 @@ influence how virtual memory pages are backed by host pages.
|
||||||
|
Using the ``mode`` attribute, specify if the memory is to be "shared" or
|
||||||
|
"private". This can be overridden per numa node by ``memAccess``.
|
||||||
|
``allocation``
|
||||||
|
- Using the ``mode`` attribute, specify when to allocate the memory by
|
||||||
|
- supplying either "immediate" or "ondemand".
|
||||||
|
+ Using the optional ``mode`` attribute, specify when to allocate the memory by
|
||||||
|
+ supplying either "immediate" or "ondemand". :since:`Since 8.2.0` it is
|
||||||
|
+ possible to set the number of threads that hypervisor uses to allocate
|
||||||
|
+ memory via ``threads`` attribute.
|
||||||
|
``discard``
|
||||||
|
When set and supported by hypervisor the memory content is discarded just
|
||||||
|
before guest shuts down (or when DIMM module is unplugged). Please note that
|
||||||
|
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
|
||||||
|
index 7fa5c2b8b5..c9c1529979 100644
|
||||||
|
--- a/docs/schemas/domaincommon.rng
|
||||||
|
+++ b/docs/schemas/domaincommon.rng
|
||||||
|
@@ -745,12 +745,19 @@
|
||||||
|
</optional>
|
||||||
|
<optional>
|
||||||
|
<element name="allocation">
|
||||||
|
- <attribute name="mode">
|
||||||
|
- <choice>
|
||||||
|
- <value>immediate</value>
|
||||||
|
- <value>ondemand</value>
|
||||||
|
- </choice>
|
||||||
|
- </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="mode">
|
||||||
|
+ <choice>
|
||||||
|
+ <value>immediate</value>
|
||||||
|
+ <value>ondemand</value>
|
||||||
|
+ </choice>
|
||||||
|
+ </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="threads">
|
||||||
|
+ <ref name="unsignedInt"/>
|
||||||
|
+ </attribute>
|
||||||
|
+ </optional>
|
||||||
|
</element>
|
||||||
|
</optional>
|
||||||
|
<optional>
|
||||||
|
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
|
||||||
|
index 5691b8d2d5..805a15848e 100644
|
||||||
|
--- a/src/conf/domain_conf.c
|
||||||
|
+++ b/src/conf/domain_conf.c
|
||||||
|
@@ -19095,6 +19095,13 @@ virDomainDefParseMemory(virDomainDef *def,
|
||||||
|
VIR_FREE(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (virXPathUInt("string(./memoryBacking/allocation/@threads)",
|
||||||
|
+ ctxt, &def->mem.allocation_threads) == -2) {
|
||||||
|
+ virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
|
+ _("Failed to parse memory allocation threads"));
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (virXPathNode("./memoryBacking/hugepages", ctxt)) {
|
||||||
|
/* hugepages will be used */
|
||||||
|
if ((n = virXPathNodeSet("./memoryBacking/hugepages/page", ctxt, &nodes)) < 0) {
|
||||||
|
@@ -27639,6 +27646,7 @@ virDomainMemorybackingFormat(virBuffer *buf,
|
||||||
|
const virDomainMemtune *mem)
|
||||||
|
{
|
||||||
|
g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
|
||||||
|
+ g_auto(virBuffer) allocAttrBuf = VIR_BUFFER_INITIALIZER;
|
||||||
|
|
||||||
|
if (mem->nhugepages)
|
||||||
|
virDomainHugepagesFormat(&childBuf, mem->hugepages, mem->nhugepages);
|
||||||
|
@@ -27653,8 +27661,13 @@ virDomainMemorybackingFormat(virBuffer *buf,
|
||||||
|
virBufferAsprintf(&childBuf, "<access mode='%s'/>\n",
|
||||||
|
virDomainMemoryAccessTypeToString(mem->access));
|
||||||
|
if (mem->allocation)
|
||||||
|
- virBufferAsprintf(&childBuf, "<allocation mode='%s'/>\n",
|
||||||
|
+ virBufferAsprintf(&allocAttrBuf, " mode='%s'",
|
||||||
|
virDomainMemoryAllocationTypeToString(mem->allocation));
|
||||||
|
+ if (mem->allocation_threads > 0)
|
||||||
|
+ virBufferAsprintf(&allocAttrBuf, " threads='%u'", mem->allocation_threads);
|
||||||
|
+
|
||||||
|
+ virXMLFormatElement(&childBuf, "allocation", &allocAttrBuf, NULL);
|
||||||
|
+
|
||||||
|
if (mem->discard)
|
||||||
|
virBufferAddLit(&childBuf, "<discard/>\n");
|
||||||
|
|
||||||
|
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
|
||||||
|
index 144ba4dd12..10af94e2e4 100644
|
||||||
|
--- a/src/conf/domain_conf.h
|
||||||
|
+++ b/src/conf/domain_conf.h
|
||||||
|
@@ -2677,6 +2677,7 @@ struct _virDomainMemtune {
|
||||||
|
int source; /* enum virDomainMemorySource */
|
||||||
|
int access; /* enum virDomainMemoryAccess */
|
||||||
|
int allocation; /* enum virDomainMemoryAllocation */
|
||||||
|
+ unsigned int allocation_threads;
|
||||||
|
|
||||||
|
virTristateBool discard;
|
||||||
|
};
|
||||||
|
diff --git a/tests/qemuxml2argvdata/memfd-memory-numa.xml b/tests/qemuxml2argvdata/memfd-memory-numa.xml
|
||||||
|
index 1ebcee8939..1ac87e3aef 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/memfd-memory-numa.xml
|
||||||
|
+++ b/tests/qemuxml2argvdata/memfd-memory-numa.xml
|
||||||
|
@@ -10,7 +10,7 @@
|
||||||
|
</hugepages>
|
||||||
|
<source type='memfd'/>
|
||||||
|
<access mode='shared'/>
|
||||||
|
- <allocation mode='immediate'/>
|
||||||
|
+ <allocation mode='immediate' threads='8'/>
|
||||||
|
</memoryBacking>
|
||||||
|
<vcpu placement='static'>8</vcpu>
|
||||||
|
<numatune>
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,60 @@
|
|||||||
|
From d03c369dd75c747f25ecc34af3b9d79adf92ea0c Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <d03c369dd75c747f25ecc34af3b9d79adf92ea0c@dist-git>
|
||||||
|
From: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Tue, 26 Apr 2022 12:50:41 +0200
|
||||||
|
Subject: [PATCH] cpu_map: Disable cpu64-rhel* for host-model and baseline
|
||||||
|
|
||||||
|
These ancient RHEL-only CPU models should not really be used by any CPU
|
||||||
|
definition created by libvirt. We keep them just for backwards
|
||||||
|
compatibility with domains which might still be using them.
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
(cherry picked from commit d2e4d66be35cd04da72e5f5129a8a4da6a931505)
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2084030
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
src/cpu_map/x86_cpu64-rhel5.xml | 2 +-
|
||||||
|
src/cpu_map/x86_cpu64-rhel6.xml | 2 +-
|
||||||
|
tests/cputestdata/x86_64-baseline-no-vendor-result.xml | 3 ++-
|
||||||
|
3 files changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cpu_map/x86_cpu64-rhel5.xml b/src/cpu_map/x86_cpu64-rhel5.xml
|
||||||
|
index be6bcdb7a6..7402b7603c 100644
|
||||||
|
--- a/src/cpu_map/x86_cpu64-rhel5.xml
|
||||||
|
+++ b/src/cpu_map/x86_cpu64-rhel5.xml
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
<cpus>
|
||||||
|
<model name='cpu64-rhel5'>
|
||||||
|
- <decode host='on' guest='on'/>
|
||||||
|
+ <decode host='off' guest='off'/>
|
||||||
|
<feature name='apic'/>
|
||||||
|
<feature name='clflush'/>
|
||||||
|
<feature name='cmov'/>
|
||||||
|
diff --git a/src/cpu_map/x86_cpu64-rhel6.xml b/src/cpu_map/x86_cpu64-rhel6.xml
|
||||||
|
index c62b1b5575..061939c733 100644
|
||||||
|
--- a/src/cpu_map/x86_cpu64-rhel6.xml
|
||||||
|
+++ b/src/cpu_map/x86_cpu64-rhel6.xml
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
<cpus>
|
||||||
|
<model name='cpu64-rhel6'>
|
||||||
|
- <decode host='on' guest='on'/>
|
||||||
|
+ <decode host='off' guest='off'/>
|
||||||
|
<feature name='apic'/>
|
||||||
|
<feature name='clflush'/>
|
||||||
|
<feature name='cmov'/>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-no-vendor-result.xml b/tests/cputestdata/x86_64-baseline-no-vendor-result.xml
|
||||||
|
index 00e03b2152..4b4921cf93 100644
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-no-vendor-result.xml
|
||||||
|
+++ b/tests/cputestdata/x86_64-baseline-no-vendor-result.xml
|
||||||
|
@@ -1,3 +1,4 @@
|
||||||
|
<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>cpu64-rhel6</model>
|
||||||
|
+ <model fallback='allow'>kvm64</model>
|
||||||
|
+ <feature policy='require' name='lahf_lm'/>
|
||||||
|
</cpu>
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,75 @@
|
|||||||
|
From e075af4319c7c30531421e6667845abd30cd28e9 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <e075af4319c7c30531421e6667845abd30cd28e9@dist-git>
|
||||||
|
From: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Tue, 26 Apr 2022 11:58:07 +0200
|
||||||
|
Subject: [PATCH] cpu_x86: Consolidate signature match in x86DecodeUseCandidate
|
||||||
|
|
||||||
|
Checking the signature in two different places makes no sense since the
|
||||||
|
code in between can only mark the candidate as the best option so far,
|
||||||
|
which is what the second signature match does as well.
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
(cherry picked from commit 35ce086667e68e8f546cf36473591dd7c19c72eb)
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2084030
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
src/cpu/cpu_x86.c | 31 ++++++++++++++-----------------
|
||||||
|
1 file changed, 14 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
|
||||||
|
index 5cb9caef8a..f007487824 100644
|
||||||
|
--- a/src/cpu/cpu_x86.c
|
||||||
|
+++ b/src/cpu/cpu_x86.c
|
||||||
|
@@ -2020,15 +2020,22 @@ x86DecodeUseCandidate(virCPUx86Model *current,
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ideally we want to select a model with family/model equal to
|
||||||
|
- * family/model of the real CPU. Once we found such model, we only
|
||||||
|
+ * family/model of the real CPU and once we found such model, we only
|
||||||
|
* consider candidates with matching family/model.
|
||||||
|
*/
|
||||||
|
- if (signature &&
|
||||||
|
- virCPUx86SignaturesMatch(current->signatures, signature) &&
|
||||||
|
- !virCPUx86SignaturesMatch(candidate->signatures, signature)) {
|
||||||
|
- VIR_DEBUG("%s differs in signature from matching %s",
|
||||||
|
- cpuCandidate->model, cpuCurrent->model);
|
||||||
|
- return 0;
|
||||||
|
+ if (signature) {
|
||||||
|
+ if (virCPUx86SignaturesMatch(current->signatures, signature) &&
|
||||||
|
+ !virCPUx86SignaturesMatch(candidate->signatures, signature)) {
|
||||||
|
+ VIR_DEBUG("%s differs in signature from matching %s",
|
||||||
|
+ cpuCandidate->model, cpuCurrent->model);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!virCPUx86SignaturesMatch(current->signatures, signature) &&
|
||||||
|
+ virCPUx86SignaturesMatch(candidate->signatures, signature)) {
|
||||||
|
+ VIR_DEBUG("%s provides matching signature", cpuCandidate->model);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cpuCurrent->nfeatures > cpuCandidate->nfeatures) {
|
||||||
|
@@ -2037,16 +2044,6 @@ x86DecodeUseCandidate(virCPUx86Model *current,
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* Prefer a candidate with matching signature even though it would
|
||||||
|
- * result in longer list of features.
|
||||||
|
- */
|
||||||
|
- if (signature &&
|
||||||
|
- virCPUx86SignaturesMatch(candidate->signatures, signature) &&
|
||||||
|
- !virCPUx86SignaturesMatch(current->signatures, signature)) {
|
||||||
|
- VIR_DEBUG("%s provides matching signature", cpuCandidate->model);
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
VIR_DEBUG("%s does not result in shorter feature list than %s",
|
||||||
|
cpuCandidate->model, cpuCurrent->model);
|
||||||
|
return 0;
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,272 @@
|
|||||||
|
From 5b5f684bfceeed923e1733931b6c4c75d5ed4149 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <5b5f684bfceeed923e1733931b6c4c75d5ed4149@dist-git>
|
||||||
|
From: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Fri, 29 Apr 2022 10:35:02 +0200
|
||||||
|
Subject: [PATCH] cpu_x86: Ignore enabled features for input models in
|
||||||
|
x86DecodeUseCandidate
|
||||||
|
|
||||||
|
While we don't want to aim for the shortest list of disabled features in
|
||||||
|
the baseline result (it would select a very old model), we want to do so
|
||||||
|
while looking at any of the input models for which we're trying to
|
||||||
|
compute a baseline CPU model. Given a set of input models, we always
|
||||||
|
want to take the least capable one of them (i.e., the one with shortest
|
||||||
|
list of disabled features) or a better model which is not one of the
|
||||||
|
input models.
|
||||||
|
|
||||||
|
So when considering an input model, we just check whether its list of
|
||||||
|
disabled features is shorter than the currently best one. When looking
|
||||||
|
at other models we check both enabled and disabled features while
|
||||||
|
penalizing disabled features as implemented by the previous patch.
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
(cherry picked from commit bb6cedd2082599323257ee0df18c93a6e0551b0b)
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2084030
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
src/cpu/cpu_x86.c | 66 ++++++++++++-------
|
||||||
|
...4-baseline-Westmere+Nehalem-migratable.xml | 8 ++-
|
||||||
|
...86_64-baseline-Westmere+Nehalem-result.xml | 8 ++-
|
||||||
|
...-cpuid-baseline-Cooperlake+Cascadelake.xml | 13 ++--
|
||||||
|
4 files changed, 64 insertions(+), 31 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
|
||||||
|
index ebcd96edb1..7b59dad8bf 100644
|
||||||
|
--- a/src/cpu/cpu_x86.c
|
||||||
|
+++ b/src/cpu/cpu_x86.c
|
||||||
|
@@ -1975,7 +1975,8 @@ virCPUx86Compare(virCPUDef *host,
|
||||||
|
|
||||||
|
static int
|
||||||
|
virCPUx86CompareCandidateFeatureList(virCPUDef *cpuCurrent,
|
||||||
|
- virCPUDef *cpuCandidate)
|
||||||
|
+ virCPUDef *cpuCandidate,
|
||||||
|
+ bool isPreferred)
|
||||||
|
{
|
||||||
|
size_t current = cpuCurrent->nfeatures;
|
||||||
|
size_t enabledCurrent = current;
|
||||||
|
@@ -2017,6 +2018,14 @@ virCPUx86CompareCandidateFeatureList(virCPUDef *cpuCurrent,
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (isPreferred && disabled < disabledCurrent) {
|
||||||
|
+ VIR_DEBUG("%s is in the list of preferred models and provides fewer "
|
||||||
|
+ "disabled features than %s: %zu < %zu",
|
||||||
|
+ cpuCandidate->model, cpuCurrent->model,
|
||||||
|
+ disabled, disabledCurrent);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
VIR_DEBUG("%s is not better than %s: %zu (%zu, %zu) >= %zu (%zu, %zu)",
|
||||||
|
cpuCandidate->model, cpuCurrent->model,
|
||||||
|
candidate, enabled, disabled,
|
||||||
|
@@ -2039,8 +2048,10 @@ x86DecodeUseCandidate(virCPUx86Model *current,
|
||||||
|
virCPUx86Model *candidate,
|
||||||
|
virCPUDef *cpuCandidate,
|
||||||
|
uint32_t signature,
|
||||||
|
- const char *preferred)
|
||||||
|
+ const char **preferred)
|
||||||
|
{
|
||||||
|
+ bool isPreferred = false;
|
||||||
|
+
|
||||||
|
if (cpuCandidate->type == VIR_CPU_TYPE_HOST &&
|
||||||
|
!candidate->decodeHost) {
|
||||||
|
VIR_DEBUG("%s is not supposed to be used for host CPU definition",
|
||||||
|
@@ -2064,9 +2075,13 @@ x86DecodeUseCandidate(virCPUx86Model *current,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (preferred && STREQ(cpuCandidate->model, preferred)) {
|
||||||
|
- VIR_DEBUG("%s is the preferred model", cpuCandidate->model);
|
||||||
|
- return 2;
|
||||||
|
+ if (preferred) {
|
||||||
|
+ isPreferred = g_strv_contains(preferred, cpuCandidate->model);
|
||||||
|
+
|
||||||
|
+ if (isPreferred && !preferred[1]) {
|
||||||
|
+ VIR_DEBUG("%s is the preferred model", cpuCandidate->model);
|
||||||
|
+ return 2;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!cpuCurrent) {
|
||||||
|
@@ -2093,7 +2108,8 @@ x86DecodeUseCandidate(virCPUx86Model *current,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- return virCPUx86CompareCandidateFeatureList(cpuCurrent, cpuCandidate);
|
||||||
|
+ return virCPUx86CompareCandidateFeatureList(cpuCurrent, cpuCandidate,
|
||||||
|
+ isPreferred);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -2136,7 +2152,7 @@ static int
|
||||||
|
x86Decode(virCPUDef *cpu,
|
||||||
|
const virCPUx86Data *cpuData,
|
||||||
|
virDomainCapsCPUModels *models,
|
||||||
|
- const char *preferred,
|
||||||
|
+ const char **preferred,
|
||||||
|
bool migratable)
|
||||||
|
{
|
||||||
|
virCPUx86Map *map;
|
||||||
|
@@ -2169,6 +2185,9 @@ x86Decode(virCPUDef *cpu,
|
||||||
|
|
||||||
|
x86DataFilterTSX(&data, vendor, map);
|
||||||
|
|
||||||
|
+ if (preferred && !preferred[0])
|
||||||
|
+ preferred = NULL;
|
||||||
|
+
|
||||||
|
/* Walk through the CPU models in reverse order to check newest
|
||||||
|
* models first.
|
||||||
|
*/
|
||||||
|
@@ -2176,16 +2195,18 @@ x86Decode(virCPUDef *cpu,
|
||||||
|
candidate = map->models[i];
|
||||||
|
if (models &&
|
||||||
|
!(hvModel = virDomainCapsCPUModelsGet(models, candidate->name))) {
|
||||||
|
- if (preferred && STREQ(candidate->name, preferred)) {
|
||||||
|
+ if (preferred &&
|
||||||
|
+ !preferred[1] &&
|
||||||
|
+ STREQ(candidate->name, preferred[0])) {
|
||||||
|
if (cpu->fallback != VIR_CPU_FALLBACK_ALLOW) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("CPU model %s is not supported by hypervisor"),
|
||||||
|
- preferred);
|
||||||
|
+ preferred[0]);
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
VIR_WARN("Preferred CPU model %s not allowed by"
|
||||||
|
" hypervisor; closest supported model will be"
|
||||||
|
- " used", preferred);
|
||||||
|
+ " used", preferred[0]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
VIR_DEBUG("CPU model %s not allowed by hypervisor; ignoring",
|
||||||
|
@@ -2793,8 +2814,8 @@ virCPUx86Baseline(virCPUDef **cpus,
|
||||||
|
size_t i;
|
||||||
|
virCPUx86Vendor *vendor = NULL;
|
||||||
|
bool outputVendor = true;
|
||||||
|
- const char *modelName;
|
||||||
|
- bool matchingNames = true;
|
||||||
|
+ g_autofree char **modelNames = NULL;
|
||||||
|
+ size_t namesLen = 0;
|
||||||
|
g_autoptr(virCPUData) featData = NULL;
|
||||||
|
|
||||||
|
if (!(map = virCPUx86GetMap()))
|
||||||
|
@@ -2816,19 +2837,17 @@ virCPUx86Baseline(virCPUDef **cpus,
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- modelName = cpus[0]->model;
|
||||||
|
+ modelNames = g_new0(char *, ncpus + 1);
|
||||||
|
+ if (cpus[0]->model)
|
||||||
|
+ modelNames[namesLen++] = cpus[0]->model;
|
||||||
|
+
|
||||||
|
for (i = 1; i < ncpus; i++) {
|
||||||
|
g_autoptr(virCPUx86Model) model = NULL;
|
||||||
|
const char *vn = NULL;
|
||||||
|
|
||||||
|
- if (matchingNames && cpus[i]->model) {
|
||||||
|
- if (!modelName) {
|
||||||
|
- modelName = cpus[i]->model;
|
||||||
|
- } else if (STRNEQ(modelName, cpus[i]->model)) {
|
||||||
|
- modelName = NULL;
|
||||||
|
- matchingNames = false;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ if (cpus[i]->model &&
|
||||||
|
+ !g_strv_contains((const char **) modelNames, cpus[i]->model))
|
||||||
|
+ modelNames[namesLen++] = cpus[i]->model;
|
||||||
|
|
||||||
|
if (!(model = x86ModelFromCPU(cpus[i], map, -1)))
|
||||||
|
return NULL;
|
||||||
|
@@ -2891,10 +2910,11 @@ virCPUx86Baseline(virCPUDef **cpus,
|
||||||
|
virCPUx86DataAddItem(&base_model->data, &vendor->data) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- if (x86Decode(cpu, &base_model->data, models, modelName, migratable) < 0)
|
||||||
|
+ if (x86Decode(cpu, &base_model->data, models,
|
||||||
|
+ (const char **) modelNames, migratable) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- if (STREQ_NULLABLE(cpu->model, modelName))
|
||||||
|
+ if (namesLen == 1 && STREQ(cpu->model, modelNames[0]))
|
||||||
|
cpu->fallback = VIR_CPU_FALLBACK_FORBID;
|
||||||
|
|
||||||
|
if (!outputVendor)
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
|
||||||
|
index 775a27de2e..f5846b1619 100644
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
|
||||||
|
+++ b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
|
||||||
|
@@ -1,10 +1,14 @@
|
||||||
|
<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>SandyBridge</model>
|
||||||
|
+ <model fallback='allow'>Westmere</model>
|
||||||
|
<vendor>Intel</vendor>
|
||||||
|
<feature policy='require' name='vme'/>
|
||||||
|
<feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='pclmuldq'/>
|
||||||
|
<feature policy='require' name='pcid'/>
|
||||||
|
+ <feature policy='require' name='x2apic'/>
|
||||||
|
+ <feature policy='require' name='tsc-deadline'/>
|
||||||
|
+ <feature policy='require' name='xsave'/>
|
||||||
|
<feature policy='require' name='osxsave'/>
|
||||||
|
+ <feature policy='require' name='avx'/>
|
||||||
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
- <feature policy='disable' name='rdtscp'/>
|
||||||
|
</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
|
||||||
|
index cafca97d62..166833276c 100644
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
|
||||||
|
+++ b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
|
||||||
|
@@ -1,11 +1,15 @@
|
||||||
|
<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>SandyBridge</model>
|
||||||
|
+ <model fallback='allow'>Westmere</model>
|
||||||
|
<vendor>Intel</vendor>
|
||||||
|
<feature policy='require' name='vme'/>
|
||||||
|
<feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='pclmuldq'/>
|
||||||
|
<feature policy='require' name='pcid'/>
|
||||||
|
+ <feature policy='require' name='x2apic'/>
|
||||||
|
+ <feature policy='require' name='tsc-deadline'/>
|
||||||
|
+ <feature policy='require' name='xsave'/>
|
||||||
|
<feature policy='require' name='osxsave'/>
|
||||||
|
+ <feature policy='require' name='avx'/>
|
||||||
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
<feature policy='require' name='invtsc'/>
|
||||||
|
- <feature policy='disable' name='rdtscp'/>
|
||||||
|
</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
|
||||||
|
index 46c32c996f..ecac749b97 100644
|
||||||
|
--- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
|
||||||
|
@@ -1,17 +1,22 @@
|
||||||
|
<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>Cooperlake</model>
|
||||||
|
+ <model fallback='allow'>Cascadelake-Server</model>
|
||||||
|
<vendor>Intel</vendor>
|
||||||
|
<feature policy='require' name='ss'/>
|
||||||
|
<feature policy='require' name='vmx'/>
|
||||||
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
<feature policy='require' name='tsc_adjust'/>
|
||||||
|
- <feature policy='require' name='mpx'/>
|
||||||
|
<feature policy='require' name='umip'/>
|
||||||
|
+ <feature policy='require' name='pku'/>
|
||||||
|
<feature policy='require' name='md-clear'/>
|
||||||
|
+ <feature policy='require' name='stibp'/>
|
||||||
|
+ <feature policy='require' name='arch-capabilities'/>
|
||||||
|
<feature policy='require' name='xsaves'/>
|
||||||
|
<feature policy='require' name='ibpb'/>
|
||||||
|
<feature policy='require' name='amd-ssbd'/>
|
||||||
|
+ <feature policy='require' name='rdctl-no'/>
|
||||||
|
+ <feature policy='require' name='ibrs-all'/>
|
||||||
|
+ <feature policy='require' name='skip-l1dfl-vmentry'/>
|
||||||
|
+ <feature policy='require' name='mds-no'/>
|
||||||
|
+ <feature policy='require' name='pschange-mc-no'/>
|
||||||
|
<feature policy='require' name='tsx-ctrl'/>
|
||||||
|
- <feature policy='disable' name='avx512-bf16'/>
|
||||||
|
- <feature policy='disable' name='taa-no'/>
|
||||||
|
</cpu>
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,73 @@
|
|||||||
|
From d9736516378d1fbac451dd80a93bf25c85e74b50 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <d9736516378d1fbac451dd80a93bf25c85e74b50@dist-git>
|
||||||
|
From: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Tue, 26 Apr 2022 15:02:51 +0200
|
||||||
|
Subject: [PATCH] cpu_x86: Refactor feature list comparison in
|
||||||
|
x86DecodeUseCandidate
|
||||||
|
|
||||||
|
It will become more complicated and so it deserves to be separated into
|
||||||
|
a new function.
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
(cherry picked from commit 1d6ca40ac23c039abc4392b668f256d0eda33280)
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2084030
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
src/cpu/cpu_x86.c | 31 ++++++++++++++++++++++---------
|
||||||
|
1 file changed, 22 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
|
||||||
|
index f007487824..81c2441b8b 100644
|
||||||
|
--- a/src/cpu/cpu_x86.c
|
||||||
|
+++ b/src/cpu/cpu_x86.c
|
||||||
|
@@ -1970,6 +1970,27 @@ virCPUx86Compare(virCPUDef *host,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+static int
|
||||||
|
+virCPUx86CompareCandidateFeatureList(virCPUDef *cpuCurrent,
|
||||||
|
+ virCPUDef *cpuCandidate)
|
||||||
|
+{
|
||||||
|
+ size_t current = cpuCurrent->nfeatures;
|
||||||
|
+ size_t candidate = cpuCandidate->nfeatures;
|
||||||
|
+
|
||||||
|
+ if (candidate < current) {
|
||||||
|
+ VIR_DEBUG("%s is better than %s: %zu < %zu",
|
||||||
|
+ cpuCandidate->model, cpuCurrent->model,
|
||||||
|
+ candidate, current);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ VIR_DEBUG("%s is not better than %s: %zu >= %zu",
|
||||||
|
+ cpuCandidate->model, cpuCurrent->model,
|
||||||
|
+ candidate, current);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Checks whether a candidate model is a better fit for the CPU data than the
|
||||||
|
* current model.
|
||||||
|
@@ -2038,15 +2059,7 @@ x86DecodeUseCandidate(virCPUx86Model *current,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (cpuCurrent->nfeatures > cpuCandidate->nfeatures) {
|
||||||
|
- VIR_DEBUG("%s results in shorter feature list than %s",
|
||||||
|
- cpuCandidate->model, cpuCurrent->model);
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- VIR_DEBUG("%s does not result in shorter feature list than %s",
|
||||||
|
- cpuCandidate->model, cpuCurrent->model);
|
||||||
|
- return 0;
|
||||||
|
+ return virCPUx86CompareCandidateFeatureList(cpuCurrent, cpuCandidate);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
498
SOURCES/libvirt-cputest-Add-some-real-world-baseline-tests.patch
Normal file
498
SOURCES/libvirt-cputest-Add-some-real-world-baseline-tests.patch
Normal file
@ -0,0 +1,498 @@
|
|||||||
|
From 8f7e267c7b98b378e301519b10aa3d18f0ceb45c Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <8f7e267c7b98b378e301519b10aa3d18f0ceb45c@dist-git>
|
||||||
|
From: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Thu, 21 Apr 2022 18:25:15 +0200
|
||||||
|
Subject: [PATCH] cputest: Add some real world baseline tests
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
(cherry picked from commit 63d633b9a4fc42da7e2acaf45501914607d968a5)
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2084030
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
tests/cputest.c | 118 +++++++++++++++---
|
||||||
|
...id-baseline-Broadwell-IBRS+Cascadelake.xml | 11 ++
|
||||||
|
..._64-cpuid-baseline-Cascadelake+Icelake.xml | 14 +++
|
||||||
|
...puid-baseline-Cascadelake+Skylake-IBRS.xml | 12 ++
|
||||||
|
..._64-cpuid-baseline-Cascadelake+Skylake.xml | 8 ++
|
||||||
|
...-cpuid-baseline-Cooperlake+Cascadelake.xml | 17 +++
|
||||||
|
...6_64-cpuid-baseline-Cooperlake+Icelake.xml | 14 +++
|
||||||
|
.../x86_64-cpuid-baseline-EPYC+Rome.xml | 13 ++
|
||||||
|
.../x86_64-cpuid-baseline-Haswell+Skylake.xml | 14 +++
|
||||||
|
...-baseline-Haswell-noTSX-IBRS+Broadwell.xml | 14 +++
|
||||||
|
...seline-Haswell-noTSX-IBRS+Skylake-IBRS.xml | 14 +++
|
||||||
|
...id-baseline-Haswell-noTSX-IBRS+Skylake.xml | 14 +++
|
||||||
|
.../x86_64-cpuid-baseline-Ryzen+Rome.xml | 13 ++
|
||||||
|
...4-cpuid-baseline-Skylake-Client+Server.xml | 9 ++
|
||||||
|
14 files changed, 271 insertions(+), 14 deletions(-)
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Broadwell-IBRS+Cascadelake.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-EPYC+Rome.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Haswell+Skylake.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Broadwell.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake-IBRS.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Ryzen+Rome.xml
|
||||||
|
create mode 100644 tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
|
||||||
|
|
||||||
|
diff --git a/tests/cputest.c b/tests/cputest.c
|
||||||
|
index b939e20718..b39ec7e18b 100644
|
||||||
|
--- a/tests/cputest.c
|
||||||
|
+++ b/tests/cputest.c
|
||||||
|
@@ -58,6 +58,8 @@ struct data {
|
||||||
|
const char *name;
|
||||||
|
virDomainCapsCPUModels *models;
|
||||||
|
const char *modelsName;
|
||||||
|
+ const char **cpus;
|
||||||
|
+ int ncpus;
|
||||||
|
unsigned int flags;
|
||||||
|
int result;
|
||||||
|
};
|
||||||
|
@@ -561,6 +563,60 @@ cpuTestCPUID(bool guest, const void *arg)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+static int
|
||||||
|
+cpuTestCPUIDBaseline(const void *arg)
|
||||||
|
+{
|
||||||
|
+ const struct data *data = arg;
|
||||||
|
+ int ret = -1;
|
||||||
|
+ virCPUDef **cpus = NULL;
|
||||||
|
+ virCPUDef *baseline = NULL;
|
||||||
|
+ g_autofree char *result = NULL;
|
||||||
|
+ size_t i;
|
||||||
|
+
|
||||||
|
+ cpus = g_new0(virCPUDef *, data->ncpus);
|
||||||
|
+ for (i = 0; i < data->ncpus; i++) {
|
||||||
|
+ g_autofree char *name = NULL;
|
||||||
|
+
|
||||||
|
+ name = g_strdup_printf("cpuid-%s-json", data->cpus[i]);
|
||||||
|
+ if (!(cpus[i] = cpuTestLoadXML(data->arch, name)))
|
||||||
|
+ goto cleanup;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ baseline = virCPUBaseline(data->arch, cpus, data->ncpus, NULL, NULL, false);
|
||||||
|
+ if (!baseline)
|
||||||
|
+ goto cleanup;
|
||||||
|
+
|
||||||
|
+ result = g_strdup_printf("cpuid-baseline-%s", data->name);
|
||||||
|
+
|
||||||
|
+ if (cpuTestCompareXML(data->arch, baseline, result) < 0)
|
||||||
|
+ goto cleanup;
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < data->ncpus; i++) {
|
||||||
|
+ virCPUCompareResult cmp;
|
||||||
|
+
|
||||||
|
+ cmp = virCPUCompare(data->arch, cpus[i], baseline, false);
|
||||||
|
+ if (cmp != VIR_CPU_COMPARE_SUPERSET &&
|
||||||
|
+ cmp != VIR_CPU_COMPARE_IDENTICAL) {
|
||||||
|
+ VIR_TEST_VERBOSE("\nbaseline CPU is incompatible with CPU %zu", i);
|
||||||
|
+ VIR_TEST_VERBOSE("%74s", "... ");
|
||||||
|
+ ret = -1;
|
||||||
|
+ goto cleanup;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ret = 0;
|
||||||
|
+
|
||||||
|
+ cleanup:
|
||||||
|
+ if (cpus) {
|
||||||
|
+ for (i = 0; i < data->ncpus; i++)
|
||||||
|
+ virCPUDefFree(cpus[i]);
|
||||||
|
+ VIR_FREE(cpus);
|
||||||
|
+ }
|
||||||
|
+ virCPUDefFree(baseline);
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
static int
|
||||||
|
cpuTestHostCPUID(const void *arg)
|
||||||
|
{
|
||||||
|
@@ -888,13 +944,13 @@ mymain(void)
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#define DO_TEST(arch, api, name, host, cpu, \
|
||||||
|
+#define DO_TEST(arch, api, name, host, cpu, cpus, ncpus, \
|
||||||
|
models, flags, result) \
|
||||||
|
do { \
|
||||||
|
struct data data = { \
|
||||||
|
arch, host, cpu, models, \
|
||||||
|
models == NULL ? NULL : #models, \
|
||||||
|
- flags, result \
|
||||||
|
+ cpus, ncpus, flags, result \
|
||||||
|
}; \
|
||||||
|
g_autofree char *testLabel = NULL; \
|
||||||
|
\
|
||||||
|
@@ -907,12 +963,12 @@ mymain(void)
|
||||||
|
#define DO_TEST_COMPARE(arch, host, cpu, result) \
|
||||||
|
DO_TEST(arch, cpuTestCompare, \
|
||||||
|
host "/" cpu " (" #result ")", \
|
||||||
|
- host, cpu, NULL, 0, result)
|
||||||
|
+ host, cpu, NULL, 0, NULL, 0, result)
|
||||||
|
|
||||||
|
#define DO_TEST_UPDATE_ONLY(arch, host, cpu) \
|
||||||
|
DO_TEST(arch, cpuTestUpdate, \
|
||||||
|
cpu " on " host, \
|
||||||
|
- host, cpu, NULL, 0, 0)
|
||||||
|
+ host, cpu, NULL, 0, NULL, 0, 0)
|
||||||
|
|
||||||
|
#define DO_TEST_UPDATE(arch, host, cpu, result) \
|
||||||
|
do { \
|
||||||
|
@@ -930,31 +986,31 @@ mymain(void)
|
||||||
|
suffix = " (migratable)"; \
|
||||||
|
label = g_strdup_printf("%s%s", name, suffix); \
|
||||||
|
DO_TEST(arch, cpuTestBaseline, label, NULL, \
|
||||||
|
- "baseline-" name, NULL, flags, result); \
|
||||||
|
+ "baseline-" name, NULL, 0, NULL, flags, result); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define DO_TEST_HASFEATURE(arch, host, feature, result) \
|
||||||
|
DO_TEST(arch, cpuTestHasFeature, \
|
||||||
|
host "/" feature " (" #result ")", \
|
||||||
|
- host, feature, NULL, 0, result)
|
||||||
|
+ host, feature, NULL, 0, NULL, 0, result)
|
||||||
|
|
||||||
|
#define DO_TEST_GUESTCPU(arch, host, cpu, models, result) \
|
||||||
|
DO_TEST(arch, cpuTestGuestCPU, \
|
||||||
|
host "/" cpu " (" #models ")", \
|
||||||
|
- host, cpu, models, 0, result)
|
||||||
|
+ host, cpu, NULL, 0, models, 0, result)
|
||||||
|
|
||||||
|
#if WITH_QEMU
|
||||||
|
# define DO_TEST_JSON(arch, host, json) \
|
||||||
|
do { \
|
||||||
|
if (json == JSON_MODELS) { \
|
||||||
|
DO_TEST(arch, cpuTestGuestCPUID, host, host, \
|
||||||
|
- NULL, NULL, 0, 0); \
|
||||||
|
+ NULL, NULL, 0, NULL, 0, 0); \
|
||||||
|
} \
|
||||||
|
if (json != JSON_NONE) { \
|
||||||
|
DO_TEST(arch, cpuTestJSONCPUID, host, host, \
|
||||||
|
- NULL, NULL, json, 0); \
|
||||||
|
+ NULL, NULL, 0, NULL, json, 0); \
|
||||||
|
DO_TEST(arch, cpuTestJSONSignature, host, host, \
|
||||||
|
- NULL, NULL, 0, 0); \
|
||||||
|
+ NULL, NULL, 0, NULL, 0, 0); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
@@ -964,18 +1020,26 @@ mymain(void)
|
||||||
|
#define DO_TEST_CPUID(arch, host, json) \
|
||||||
|
do { \
|
||||||
|
DO_TEST(arch, cpuTestHostCPUID, host, host, \
|
||||||
|
- NULL, NULL, 0, 0); \
|
||||||
|
+ NULL, NULL, 0, NULL, 0, 0); \
|
||||||
|
DO_TEST(arch, cpuTestGuestCPUID, host, host, \
|
||||||
|
- NULL, NULL, json, 0); \
|
||||||
|
+ NULL, NULL, 0, NULL, json, 0); \
|
||||||
|
DO_TEST(arch, cpuTestCPUIDSignature, host, host, \
|
||||||
|
- NULL, NULL, 0, 0); \
|
||||||
|
+ NULL, NULL, 0, NULL, 0, 0); \
|
||||||
|
DO_TEST_JSON(arch, host, json); \
|
||||||
|
if (json != JSON_NONE) { \
|
||||||
|
DO_TEST(arch, cpuTestUpdateLive, host, host, \
|
||||||
|
- NULL, NULL, json, 0); \
|
||||||
|
+ NULL, NULL, 0, NULL, json, 0); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
+#define DO_TEST_CPUID_BASELINE(arch, label, cpu1, cpu2) \
|
||||||
|
+ do { \
|
||||||
|
+ const char *cpus[] = {cpu1, cpu2}; \
|
||||||
|
+ DO_TEST(arch, cpuTestCPUIDBaseline, \
|
||||||
|
+ label " (" cpu1 ", " cpu2 ")", \
|
||||||
|
+ NULL, label, cpus, 2, NULL, 0, 0); \
|
||||||
|
+ } while (0)
|
||||||
|
+
|
||||||
|
/* host to host comparison */
|
||||||
|
DO_TEST_COMPARE(VIR_ARCH_X86_64, "host", "host", VIR_CPU_COMPARE_IDENTICAL);
|
||||||
|
DO_TEST_COMPARE(VIR_ARCH_X86_64, "host", "host-better", VIR_CPU_COMPARE_INCOMPATIBLE);
|
||||||
|
@@ -1157,6 +1221,32 @@ mymain(void)
|
||||||
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Ice-Lake-Server", JSON_MODELS);
|
||||||
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Cooperlake", JSON_MODELS);
|
||||||
|
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Ryzen+Rome",
|
||||||
|
+ "Ryzen-7-1800X-Eight-Core", "Ryzen-9-3900X-12-Core");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "EPYC+Rome",
|
||||||
|
+ "EPYC-7601-32-Core", "EPYC-7502-32-Core");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Haswell-noTSX-IBRS+Skylake",
|
||||||
|
+ "Xeon-E5-2609-v3", "Xeon-Gold-6148");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Haswell-noTSX-IBRS+Skylake-IBRS",
|
||||||
|
+ "Xeon-E5-2609-v3", "Xeon-Gold-6130");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Broadwell-IBRS+Cascadelake",
|
||||||
|
+ "Xeon-E5-2623-v4", "Xeon-Platinum-8268");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cascadelake+Skylake-IBRS",
|
||||||
|
+ "Xeon-Platinum-8268", "Xeon-Gold-6130");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cascadelake+Skylake",
|
||||||
|
+ "Xeon-Platinum-9242", "Xeon-Gold-6148");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cascadelake+Icelake",
|
||||||
|
+ "Xeon-Platinum-9242", "Ice-Lake-Server");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cooperlake+Icelake",
|
||||||
|
+ "Cooperlake", "Ice-Lake-Server");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Cooperlake+Cascadelake",
|
||||||
|
+ "Cooperlake", "Xeon-Platinum-9242");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Skylake-Client+Server",
|
||||||
|
+ "Core-i5-6600", "Xeon-Gold-6148");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Haswell-noTSX-IBRS+Broadwell",
|
||||||
|
+ "Xeon-E5-2609-v3", "Xeon-E5-2650-v4");
|
||||||
|
+ DO_TEST_CPUID_BASELINE(VIR_ARCH_X86_64, "Haswell+Skylake",
|
||||||
|
+ "Xeon-E7-8890-v3", "Xeon-Gold-5115");
|
||||||
|
cleanup:
|
||||||
|
#if WITH_QEMU
|
||||||
|
qemuTestDriverFree(&driver);
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Broadwell-IBRS+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Broadwell-IBRS+Cascadelake.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..4e3f253e9b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Broadwell-IBRS+Cascadelake.xml
|
||||||
|
@@ -0,0 +1,11 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Skylake-Client-IBRS</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='pdpe1gb'/>
|
||||||
|
+ <feature policy='disable' name='mpx'/>
|
||||||
|
+ <feature policy='disable' name='xsavec'/>
|
||||||
|
+ <feature policy='disable' name='xgetbv1'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..e372a3e446
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Cooperlake</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='mpx'/>
|
||||||
|
+ <feature policy='require' name='umip'/>
|
||||||
|
+ <feature policy='require' name='xsaves'/>
|
||||||
|
+ <feature policy='disable' name='avx512-bf16'/>
|
||||||
|
+ <feature policy='disable' name='mds-no'/>
|
||||||
|
+ <feature policy='disable' name='pschange-mc-no'/>
|
||||||
|
+ <feature policy='disable' name='taa-no'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..e559e01583
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Cascadelake-Server</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='umip'/>
|
||||||
|
+ <feature policy='require' name='pku'/>
|
||||||
|
+ <feature policy='require' name='xsaves'/>
|
||||||
|
+ <feature policy='require' name='skip-l1dfl-vmentry'/>
|
||||||
|
+ <feature policy='disable' name='avx512vnni'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..906259df0b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
|
||||||
|
@@ -0,0 +1,8 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Skylake-Server</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='clflushopt'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..46c32c996f
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
|
||||||
|
@@ -0,0 +1,17 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Cooperlake</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='vmx'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='mpx'/>
|
||||||
|
+ <feature policy='require' name='umip'/>
|
||||||
|
+ <feature policy='require' name='md-clear'/>
|
||||||
|
+ <feature policy='require' name='xsaves'/>
|
||||||
|
+ <feature policy='require' name='ibpb'/>
|
||||||
|
+ <feature policy='require' name='amd-ssbd'/>
|
||||||
|
+ <feature policy='require' name='tsx-ctrl'/>
|
||||||
|
+ <feature policy='disable' name='avx512-bf16'/>
|
||||||
|
+ <feature policy='disable' name='taa-no'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..e372a3e446
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Cooperlake</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='mpx'/>
|
||||||
|
+ <feature policy='require' name='umip'/>
|
||||||
|
+ <feature policy='require' name='xsaves'/>
|
||||||
|
+ <feature policy='disable' name='avx512-bf16'/>
|
||||||
|
+ <feature policy='disable' name='mds-no'/>
|
||||||
|
+ <feature policy='disable' name='pschange-mc-no'/>
|
||||||
|
+ <feature policy='disable' name='taa-no'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-EPYC+Rome.xml b/tests/cputestdata/x86_64-cpuid-baseline-EPYC+Rome.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..e1984b2890
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-EPYC+Rome.xml
|
||||||
|
@@ -0,0 +1,13 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>EPYC</model>
|
||||||
|
+ <vendor>AMD</vendor>
|
||||||
|
+ <feature policy='require' name='x2apic'/>
|
||||||
|
+ <feature policy='require' name='tsc-deadline'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='cmp_legacy'/>
|
||||||
|
+ <feature policy='require' name='npt'/>
|
||||||
|
+ <feature policy='require' name='nrip-save'/>
|
||||||
|
+ <feature policy='disable' name='svm'/>
|
||||||
|
+ <feature policy='disable' name='monitor'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Haswell+Skylake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Haswell+Skylake.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..e687a679b3
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Haswell+Skylake.xml
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Haswell</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='vme'/>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='f16c'/>
|
||||||
|
+ <feature policy='require' name='rdrand'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='arat'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='xsaveopt'/>
|
||||||
|
+ <feature policy='require' name='pdpe1gb'/>
|
||||||
|
+ <feature policy='require' name='abm'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Broadwell.xml b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Broadwell.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..651457b17a
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Broadwell.xml
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Haswell-noTSX</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='vme'/>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='f16c'/>
|
||||||
|
+ <feature policy='require' name='rdrand'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='arat'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='xsaveopt'/>
|
||||||
|
+ <feature policy='require' name='pdpe1gb'/>
|
||||||
|
+ <feature policy='require' name='abm'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake-IBRS.xml b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake-IBRS.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..8bda1c02e2
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake-IBRS.xml
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Haswell-noTSX-IBRS</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='vme'/>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='f16c'/>
|
||||||
|
+ <feature policy='require' name='rdrand'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='arat'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='xsaveopt'/>
|
||||||
|
+ <feature policy='require' name='pdpe1gb'/>
|
||||||
|
+ <feature policy='require' name='abm'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..651457b17a
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Haswell-noTSX-IBRS+Skylake.xml
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Haswell-noTSX</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='vme'/>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='f16c'/>
|
||||||
|
+ <feature policy='require' name='rdrand'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='arat'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='xsaveopt'/>
|
||||||
|
+ <feature policy='require' name='pdpe1gb'/>
|
||||||
|
+ <feature policy='require' name='abm'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Ryzen+Rome.xml b/tests/cputestdata/x86_64-cpuid-baseline-Ryzen+Rome.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..051402b9d5
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Ryzen+Rome.xml
|
||||||
|
@@ -0,0 +1,13 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>EPYC</model>
|
||||||
|
+ <vendor>AMD</vendor>
|
||||||
|
+ <feature policy='require' name='x2apic'/>
|
||||||
|
+ <feature policy='require' name='tsc-deadline'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='cmp_legacy'/>
|
||||||
|
+ <feature policy='require' name='npt'/>
|
||||||
|
+ <feature policy='require' name='nrip-save'/>
|
||||||
|
+ <feature policy='disable' name='sha-ni'/>
|
||||||
|
+ <feature policy='disable' name='monitor'/>
|
||||||
|
+</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml b/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..d46ff26eeb
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
|
||||||
|
@@ -0,0 +1,9 @@
|
||||||
|
+<cpu mode='custom' match='exact'>
|
||||||
|
+ <model fallback='allow'>Skylake-Client</model>
|
||||||
|
+ <vendor>Intel</vendor>
|
||||||
|
+ <feature policy='require' name='ss'/>
|
||||||
|
+ <feature policy='require' name='hypervisor'/>
|
||||||
|
+ <feature policy='require' name='tsc_adjust'/>
|
||||||
|
+ <feature policy='require' name='clflushopt'/>
|
||||||
|
+ <feature policy='require' name='pdpe1gb'/>
|
||||||
|
+</cpu>
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,334 @@
|
|||||||
|
From 039e6627a7ee53973da64405b79cc0c0f6111fc7 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <039e6627a7ee53973da64405b79cc0c0f6111fc7@dist-git>
|
||||||
|
From: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Wed, 4 May 2022 16:21:38 +0200
|
||||||
|
Subject: [PATCH] cputest: Drop some old artificial baseline tests
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
(cherry picked from commit 6aff36019bbaf643f451779621c6c88cab0e64a7)
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2084030
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
tests/cputest.c | 6 ---
|
||||||
|
.../cputestdata/x86_64-baseline-1-result.xml | 5 --
|
||||||
|
tests/cputestdata/x86_64-baseline-1.xml | 20 --------
|
||||||
|
.../cputestdata/x86_64-baseline-2-result.xml | 4 --
|
||||||
|
tests/cputestdata/x86_64-baseline-2.xml | 22 ---------
|
||||||
|
.../x86_64-baseline-5-expanded.xml | 47 -------------------
|
||||||
|
.../cputestdata/x86_64-baseline-5-result.xml | 10 ----
|
||||||
|
tests/cputestdata/x86_64-baseline-5.xml | 35 --------------
|
||||||
|
.../cputestdata/x86_64-baseline-7-result.xml | 4 --
|
||||||
|
tests/cputestdata/x86_64-baseline-7.xml | 24 ----------
|
||||||
|
.../cputestdata/x86_64-baseline-8-result.xml | 4 --
|
||||||
|
tests/cputestdata/x86_64-baseline-8.xml | 28 -----------
|
||||||
|
12 files changed, 209 deletions(-)
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-1-result.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-1.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-2-result.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-2.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-5-expanded.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-5-result.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-5.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-7-result.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-7.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-8-result.xml
|
||||||
|
delete mode 100644 tests/cputestdata/x86_64-baseline-8.xml
|
||||||
|
|
||||||
|
diff --git a/tests/cputest.c b/tests/cputest.c
|
||||||
|
index 0f0621292a..20d56836be 100644
|
||||||
|
--- a/tests/cputest.c
|
||||||
|
+++ b/tests/cputest.c
|
||||||
|
@@ -1051,18 +1051,12 @@ mymain(void)
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "incompatible-vendors", 0, -1);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "no-vendor", 0, 0);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "some-vendors", 0, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "1", 0, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "2", 0, 0);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "3", 0, 0);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "3", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "4", 0, 0);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "4", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "5", 0, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "5", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "6", 0, 0);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "6", VIR_CONNECT_BASELINE_CPU_MIGRATABLE, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "7", 0, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "8", 0, 0);
|
||||||
|
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_PPC64, "incompatible-vendors", 0, -1);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_PPC64, "no-vendor", 0, 0);
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-1-result.xml b/tests/cputestdata/x86_64-baseline-1-result.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 96c4f43b3d..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-1-result.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,5 +0,0 @@
|
||||||
|
-<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>Conroe</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <feature policy='disable' name='lahf_lm'/>
|
||||||
|
-</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-1.xml b/tests/cputestdata/x86_64-baseline-1.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 509e6a85d2..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-1.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,20 +0,0 @@
|
||||||
|
-<cpuTest>
|
||||||
|
-<cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>Penryn</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='2' cores='4' threads='1'/>
|
||||||
|
-</cpu>
|
||||||
|
-<cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>Conroe</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='1' cores='1' threads='1'/>
|
||||||
|
-</cpu>
|
||||||
|
-<cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>core2duo</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='1' cores='1' threads='1'/>
|
||||||
|
-</cpu>
|
||||||
|
-</cpuTest>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-2-result.xml b/tests/cputestdata/x86_64-baseline-2-result.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index a11352d0b1..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-2-result.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,4 +0,0 @@
|
||||||
|
-<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>core2duo</model>
|
||||||
|
- <feature policy='disable' name='nx'/>
|
||||||
|
-</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-2.xml b/tests/cputestdata/x86_64-baseline-2.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 055223fd34..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-2.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,22 +0,0 @@
|
||||||
|
-<cpuTest>
|
||||||
|
-<cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>core2duo</model>
|
||||||
|
- <topology sockets='1' cores='2' threads='1'/>
|
||||||
|
-</cpu>
|
||||||
|
-<cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>pentiumpro</model>
|
||||||
|
- <topology sockets='1' cores='2' threads='1'/>
|
||||||
|
- <feature name='mtrr'/>
|
||||||
|
- <feature name='clflush'/>
|
||||||
|
- <feature name='mca'/>
|
||||||
|
- <feature name='vme'/>
|
||||||
|
- <feature name='pse36'/>
|
||||||
|
- <feature name='pni'/>
|
||||||
|
- <feature name='monitor'/>
|
||||||
|
- <feature name='ssse3'/>
|
||||||
|
- <feature name='lm'/>
|
||||||
|
- <feature name='syscall'/>
|
||||||
|
-</cpu>
|
||||||
|
-</cpuTest>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-5-expanded.xml b/tests/cputestdata/x86_64-baseline-5-expanded.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 2c1b400150..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-5-expanded.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,47 +0,0 @@
|
||||||
|
-<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>SandyBridge</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <feature policy='require' name='aes'/>
|
||||||
|
- <feature policy='require' name='apic'/>
|
||||||
|
- <feature policy='require' name='avx'/>
|
||||||
|
- <feature policy='require' name='clflush'/>
|
||||||
|
- <feature policy='require' name='cmov'/>
|
||||||
|
- <feature policy='require' name='cx16'/>
|
||||||
|
- <feature policy='require' name='cx8'/>
|
||||||
|
- <feature policy='require' name='de'/>
|
||||||
|
- <feature policy='require' name='fpu'/>
|
||||||
|
- <feature policy='require' name='fxsr'/>
|
||||||
|
- <feature policy='require' name='hypervisor'/>
|
||||||
|
- <feature policy='require' name='lahf_lm'/>
|
||||||
|
- <feature policy='require' name='lm'/>
|
||||||
|
- <feature policy='require' name='mca'/>
|
||||||
|
- <feature policy='require' name='mce'/>
|
||||||
|
- <feature policy='require' name='mmx'/>
|
||||||
|
- <feature policy='require' name='msr'/>
|
||||||
|
- <feature policy='require' name='mtrr'/>
|
||||||
|
- <feature policy='require' name='nx'/>
|
||||||
|
- <feature policy='require' name='osxsave'/>
|
||||||
|
- <feature policy='require' name='pae'/>
|
||||||
|
- <feature policy='require' name='pat'/>
|
||||||
|
- <feature policy='require' name='pcid'/>
|
||||||
|
- <feature policy='require' name='pclmuldq'/>
|
||||||
|
- <feature policy='require' name='pge'/>
|
||||||
|
- <feature policy='require' name='pni'/>
|
||||||
|
- <feature policy='require' name='popcnt'/>
|
||||||
|
- <feature policy='require' name='pse'/>
|
||||||
|
- <feature policy='require' name='pse36'/>
|
||||||
|
- <feature policy='disable' name='rdtscp'/>
|
||||||
|
- <feature policy='require' name='sep'/>
|
||||||
|
- <feature policy='require' name='ss'/>
|
||||||
|
- <feature policy='require' name='sse'/>
|
||||||
|
- <feature policy='require' name='sse2'/>
|
||||||
|
- <feature policy='require' name='sse4.1'/>
|
||||||
|
- <feature policy='require' name='sse4.2'/>
|
||||||
|
- <feature policy='require' name='ssse3'/>
|
||||||
|
- <feature policy='require' name='syscall'/>
|
||||||
|
- <feature policy='require' name='tsc'/>
|
||||||
|
- <feature policy='require' name='tsc-deadline'/>
|
||||||
|
- <feature policy='require' name='vme'/>
|
||||||
|
- <feature policy='require' name='x2apic'/>
|
||||||
|
- <feature policy='require' name='xsave'/>
|
||||||
|
-</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-5-result.xml b/tests/cputestdata/x86_64-baseline-5-result.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 775a27de2e..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-5-result.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,10 +0,0 @@
|
||||||
|
-<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>SandyBridge</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <feature policy='require' name='vme'/>
|
||||||
|
- <feature policy='require' name='ss'/>
|
||||||
|
- <feature policy='require' name='pcid'/>
|
||||||
|
- <feature policy='require' name='osxsave'/>
|
||||||
|
- <feature policy='require' name='hypervisor'/>
|
||||||
|
- <feature policy='disable' name='rdtscp'/>
|
||||||
|
-</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-5.xml b/tests/cputestdata/x86_64-baseline-5.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 80cd533ca4..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-5.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,35 +0,0 @@
|
||||||
|
-<cpuTest>
|
||||||
|
-<cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>Westmere</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='4' cores='1' threads='1'/>
|
||||||
|
- <feature name='hypervisor'/>
|
||||||
|
- <feature name='avx'/>
|
||||||
|
- <feature name='osxsave'/>
|
||||||
|
- <feature name='xsave'/>
|
||||||
|
- <feature name='tsc-deadline'/>
|
||||||
|
- <feature name='x2apic'/>
|
||||||
|
- <feature name='pcid'/>
|
||||||
|
- <feature name='pclmuldq'/>
|
||||||
|
- <feature name='ss'/>
|
||||||
|
- <feature name='vme'/>
|
||||||
|
-</cpu>
|
||||||
|
-<cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>Nehalem</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='4' cores='1' threads='1'/>
|
||||||
|
- <feature name='aes'/>
|
||||||
|
- <feature name='hypervisor'/>
|
||||||
|
- <feature name='avx'/>
|
||||||
|
- <feature name='osxsave'/>
|
||||||
|
- <feature name='xsave'/>
|
||||||
|
- <feature name='tsc-deadline'/>
|
||||||
|
- <feature name='x2apic'/>
|
||||||
|
- <feature name='pcid'/>
|
||||||
|
- <feature name='pclmuldq'/>
|
||||||
|
- <feature name='ss'/>
|
||||||
|
- <feature name='vme'/>
|
||||||
|
-</cpu>
|
||||||
|
-</cpuTest>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-7-result.xml b/tests/cputestdata/x86_64-baseline-7-result.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 2af549e77a..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-7-result.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,4 +0,0 @@
|
||||||
|
-<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>Haswell-noTSX</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
-</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-7.xml b/tests/cputestdata/x86_64-baseline-7.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index b7e61b160c..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-7.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,24 +0,0 @@
|
||||||
|
-<cpuTest>
|
||||||
|
- <cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>SandyBridge</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='1' cores='2' threads='2'/>
|
||||||
|
- <feature name='invpcid'/>
|
||||||
|
- <feature name='erms'/>
|
||||||
|
- <feature name='bmi2'/>
|
||||||
|
- <feature name='smep'/>
|
||||||
|
- <feature name='avx2'/>
|
||||||
|
- <feature name='bmi1'/>
|
||||||
|
- <feature name='fsgsbase'/>
|
||||||
|
- <feature name='movbe'/>
|
||||||
|
- <feature name='pcid'/>
|
||||||
|
- <feature name='fma'/>
|
||||||
|
- </cpu>
|
||||||
|
- <cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>Haswell-noTSX</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='1' cores='2' threads='2'/>
|
||||||
|
- </cpu>
|
||||||
|
-</cpuTest>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-8-result.xml b/tests/cputestdata/x86_64-baseline-8-result.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index 88226b3dab..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-8-result.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,4 +0,0 @@
|
||||||
|
-<cpu mode='custom' match='exact'>
|
||||||
|
- <model fallback='allow'>Broadwell-noTSX</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
-</cpu>
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-8.xml b/tests/cputestdata/x86_64-baseline-8.xml
|
||||||
|
deleted file mode 100644
|
||||||
|
index f1ee67d542..0000000000
|
||||||
|
--- a/tests/cputestdata/x86_64-baseline-8.xml
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,28 +0,0 @@
|
||||||
|
-<cpuTest>
|
||||||
|
- <cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>SandyBridge</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='1' cores='2' threads='2'/>
|
||||||
|
- <feature name='invpcid'/>
|
||||||
|
- <feature name='erms'/>
|
||||||
|
- <feature name='bmi2'/>
|
||||||
|
- <feature name='smep'/>
|
||||||
|
- <feature name='avx2'/>
|
||||||
|
- <feature name='bmi1'/>
|
||||||
|
- <feature name='fsgsbase'/>
|
||||||
|
- <feature name='movbe'/>
|
||||||
|
- <feature name='pcid'/>
|
||||||
|
- <feature name='fma'/>
|
||||||
|
- <feature name='3dnowprefetch'/>
|
||||||
|
- <feature name='rdseed'/>
|
||||||
|
- <feature name='adx'/>
|
||||||
|
- <feature name='smap'/>
|
||||||
|
- </cpu>
|
||||||
|
- <cpu>
|
||||||
|
- <arch>x86_64</arch>
|
||||||
|
- <model>Broadwell-noTSX</model>
|
||||||
|
- <vendor>Intel</vendor>
|
||||||
|
- <topology sockets='1' cores='2' threads='2'/>
|
||||||
|
- </cpu>
|
||||||
|
-</cpuTest>
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,97 @@
|
|||||||
|
From 89272567fd9e2b87133333f5565c1d9e2befb350 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <89272567fd9e2b87133333f5565c1d9e2befb350@dist-git>
|
||||||
|
From: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Wed, 4 May 2022 16:28:03 +0200
|
||||||
|
Subject: [PATCH] cputest: Give better names to baseline tests
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
(cherry picked from commit 3daa68e26514dc114d71f4c44f7d728e93a53cd0)
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2084030
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
tests/cputest.c | 12 ++++++------
|
||||||
|
... x86_64-baseline-Westmere+Nehalem-migratable.xml} | 0
|
||||||
|
...l => x86_64-baseline-Westmere+Nehalem-result.xml} | 0
|
||||||
|
...ne-6.xml => x86_64-baseline-Westmere+Nehalem.xml} | 0
|
||||||
|
...ded.xml => x86_64-baseline-features-expanded.xml} | 0
|
||||||
|
...esult.xml => x86_64-baseline-features-result.xml} | 0
|
||||||
|
...4-baseline-4.xml => x86_64-baseline-features.xml} | 0
|
||||||
|
...anded.xml => x86_64-baseline-simple-expanded.xml} | 0
|
||||||
|
...-result.xml => x86_64-baseline-simple-result.xml} | 0
|
||||||
|
..._64-baseline-3.xml => x86_64-baseline-simple.xml} | 0
|
||||||
|
10 files changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-6-migratable.xml => x86_64-baseline-Westmere+Nehalem-migratable.xml} (100%)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-6-result.xml => x86_64-baseline-Westmere+Nehalem-result.xml} (100%)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-6.xml => x86_64-baseline-Westmere+Nehalem.xml} (100%)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-4-expanded.xml => x86_64-baseline-features-expanded.xml} (100%)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-4-result.xml => x86_64-baseline-features-result.xml} (100%)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-4.xml => x86_64-baseline-features.xml} (100%)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-3-expanded.xml => x86_64-baseline-simple-expanded.xml} (100%)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-3-result.xml => x86_64-baseline-simple-result.xml} (100%)
|
||||||
|
rename tests/cputestdata/{x86_64-baseline-3.xml => x86_64-baseline-simple.xml} (100%)
|
||||||
|
|
||||||
|
diff --git a/tests/cputest.c b/tests/cputest.c
|
||||||
|
index 20d56836be..b939e20718 100644
|
||||||
|
--- a/tests/cputest.c
|
||||||
|
+++ b/tests/cputest.c
|
||||||
|
@@ -1051,12 +1051,12 @@ mymain(void)
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "incompatible-vendors", 0, -1);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "no-vendor", 0, 0);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_X86_64, "some-vendors", 0, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "3", 0, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "3", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "4", 0, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "4", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "6", 0, 0);
|
||||||
|
- DO_TEST_BASELINE(VIR_ARCH_X86_64, "6", VIR_CONNECT_BASELINE_CPU_MIGRATABLE, 0);
|
||||||
|
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "simple", 0, 0);
|
||||||
|
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "simple", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
|
||||||
|
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "features", 0, 0);
|
||||||
|
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "features", VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, 0);
|
||||||
|
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "Westmere+Nehalem", 0, 0);
|
||||||
|
+ DO_TEST_BASELINE(VIR_ARCH_X86_64, "Westmere+Nehalem", VIR_CONNECT_BASELINE_CPU_MIGRATABLE, 0);
|
||||||
|
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_PPC64, "incompatible-vendors", 0, -1);
|
||||||
|
DO_TEST_BASELINE(VIR_ARCH_PPC64, "no-vendor", 0, 0);
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-6-migratable.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-6-migratable.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-Westmere+Nehalem-migratable.xml
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-6-result.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-6-result.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-Westmere+Nehalem-result.xml
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-6.xml b/tests/cputestdata/x86_64-baseline-Westmere+Nehalem.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-6.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-Westmere+Nehalem.xml
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-4-expanded.xml b/tests/cputestdata/x86_64-baseline-features-expanded.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-4-expanded.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-features-expanded.xml
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-4-result.xml b/tests/cputestdata/x86_64-baseline-features-result.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-4-result.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-features-result.xml
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-4.xml b/tests/cputestdata/x86_64-baseline-features.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-4.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-features.xml
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-3-expanded.xml b/tests/cputestdata/x86_64-baseline-simple-expanded.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-3-expanded.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-simple-expanded.xml
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-3-result.xml b/tests/cputestdata/x86_64-baseline-simple-result.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-3-result.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-simple-result.xml
|
||||||
|
diff --git a/tests/cputestdata/x86_64-baseline-3.xml b/tests/cputestdata/x86_64-baseline-simple.xml
|
||||||
|
similarity index 100%
|
||||||
|
rename from tests/cputestdata/x86_64-baseline-3.xml
|
||||||
|
rename to tests/cputestdata/x86_64-baseline-simple.xml
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,314 @@
|
|||||||
|
From 9f9fcbc842846c6f2579ca52190f506060e191d8 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <9f9fcbc842846c6f2579ca52190f506060e191d8@dist-git>
|
||||||
|
From: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Date: Mon, 21 Mar 2022 16:55:05 +0100
|
||||||
|
Subject: [PATCH] qemu_capabilities: Detect memory-backend-*.prealloc-threads
|
||||||
|
property
|
||||||
|
|
||||||
|
The prealloc-threads is property of memory-backend class which is
|
||||||
|
parent to the other three classes memory-backend-{ram,file,memfd}.
|
||||||
|
Therefore the property is present for all, or none if QEMU is
|
||||||
|
older than v5.0.0-rc0~75^2~1^2~3 which introduced the property.
|
||||||
|
|
||||||
|
Anyway, the .reserve property is the same story, and we chose
|
||||||
|
memory-backend-file to detect it, so stick with our earlier
|
||||||
|
decision and use the same backend to detect this new property.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
|
||||||
|
(cherry picked from commit a30dac15dcdb7a6c7a3e9b6cfc5cd77bae185081)
|
||||||
|
|
||||||
|
Conflicts:
|
||||||
|
src/qemu/qemu_capabilities.c: Context
|
||||||
|
src/qemu/qemu_capabilities.h
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
|
||||||
|
tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
|
||||||
|
|
||||||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2075569
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
---
|
||||||
|
src/qemu/qemu_capabilities.c | 2 ++
|
||||||
|
src/qemu/qemu_capabilities.h | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 1 +
|
||||||
|
tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml | 1 +
|
||||||
|
20 files changed, 21 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
|
||||||
|
index 8ae80ef8d7..c4f7db55c8 100644
|
||||||
|
--- a/src/qemu/qemu_capabilities.c
|
||||||
|
+++ b/src/qemu/qemu_capabilities.c
|
||||||
|
@@ -657,6 +657,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
|
||||||
|
|
||||||
|
/* 420 */
|
||||||
|
"blockdev-reopen.__com.redhat_rhel-av-8_2_0-api", /* QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API */
|
||||||
|
+ "memory-backend-file.prealloc-threads", /* QEMU_CAPS_MEMORY_BACKEND_PREALLOC_THREADS */
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1713,6 +1714,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMemoryBackendFile[] =
|
||||||
|
* released qemu versions. */
|
||||||
|
{ "x-use-canonical-path-for-ramblock-id", QEMU_CAPS_X_USE_CANONICAL_PATH_FOR_RAMBLOCK_ID },
|
||||||
|
{ "reserve", QEMU_CAPS_MEMORY_BACKEND_RESERVE },
|
||||||
|
+ { "prealloc-threads", QEMU_CAPS_MEMORY_BACKEND_PREALLOC_THREADS },
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMemoryBackendMemfd[] = {
|
||||||
|
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
|
||||||
|
index cde6c18b4c..8e65635e0d 100644
|
||||||
|
--- a/src/qemu/qemu_capabilities.h
|
||||||
|
+++ b/src/qemu/qemu_capabilities.h
|
||||||
|
@@ -636,6 +636,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
|
||||||
|
|
||||||
|
/* 420 */
|
||||||
|
QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API, /* downstream support for blockdev reopen in rhel-av-8.2.0 */
|
||||||
|
+ QEMU_CAPS_MEMORY_BACKEND_PREALLOC_THREADS, /* -object memory-backend-*.prealloc-threads */
|
||||||
|
|
||||||
|
QEMU_CAPS_LAST /* this must always be the last item */
|
||||||
|
} virQEMUCapsFlags;
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
|
||||||
|
index bb6a7d5ee7..3b18f160db 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
|
||||||
|
@@ -179,6 +179,7 @@
|
||||||
|
<flag name='input-linux'/>
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5000000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>61700241</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
|
||||||
|
index f8317c1117..c90f2be296 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
|
||||||
|
@@ -187,6 +187,7 @@
|
||||||
|
<flag name='input-linux'/>
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5000000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>42900241</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
|
||||||
|
index 58c7eb6651..8fbe8f114f 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
|
||||||
|
@@ -171,6 +171,7 @@
|
||||||
|
<flag name='input-linux'/>
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5000000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>0</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
|
||||||
|
index 69f49020e7..b76c4346a4 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
|
||||||
|
@@ -221,6 +221,7 @@
|
||||||
|
<flag name='input-linux'/>
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5000000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>43100241</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
|
||||||
|
index 58af90b29f..7de7c291f5 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
|
||||||
|
@@ -90,6 +90,7 @@
|
||||||
|
<flag name='rotation-rate'/>
|
||||||
|
<flag name='input-linux'/>
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5001000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>0</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
|
||||||
|
index 578e16e8b0..9b5cb3cd7a 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
|
||||||
|
@@ -224,6 +224,7 @@
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
<flag name='virtio-mem-pci'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5001000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>43100242</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
|
||||||
|
index b943eaedaf..020c04c1c4 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
|
||||||
|
@@ -184,6 +184,7 @@
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5002000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>61700243</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
|
||||||
|
index ec64e1cacf..5346b1552c 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
|
||||||
|
@@ -190,6 +190,7 @@
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5002000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>42900243</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
|
||||||
|
index a11d15f91a..9f6974f85d 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
|
||||||
|
@@ -174,6 +174,7 @@
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5002000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>0</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
|
||||||
|
index 552e1d43c9..44753b64c3 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
|
||||||
|
@@ -141,6 +141,7 @@
|
||||||
|
<flag name='query-display-options'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5002000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>39100243</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
|
||||||
|
index bcc262551a..db11c99739 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
|
||||||
|
@@ -227,6 +227,7 @@
|
||||||
|
<flag name='virtio-mem-pci'/>
|
||||||
|
<flag name='piix4.acpi-root-pci-hotplug'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>5002000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>43100243</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
|
||||||
|
index 0fefe64537..5f9a97df43 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
|
||||||
|
@@ -192,6 +192,7 @@
|
||||||
|
<flag name='set-action'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>6000000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>61700242</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
|
||||||
|
index 61685066b8..46bd1d3d2d 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
|
||||||
|
@@ -149,6 +149,7 @@
|
||||||
|
<flag name='set-action'/>
|
||||||
|
<flag name='virtio-blk.queue-size'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>6000000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>39100242</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
|
||||||
|
index 0d6763e9a3..99bbb6e237 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
|
||||||
|
@@ -236,6 +236,7 @@
|
||||||
|
<flag name='piix4.acpi-root-pci-hotplug'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
<flag name='sev-inject-launch-secret'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>6000000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>43100242</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
|
||||||
|
index 228f397c67..ff0715e605 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
|
||||||
|
@@ -240,6 +240,7 @@
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
<flag name='rbd-encryption'/>
|
||||||
|
<flag name='sev-inject-launch-secret'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>6001000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>43100243</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
|
||||||
|
index 6bf9933bc5..dd6f0e6919 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
|
||||||
|
@@ -203,6 +203,7 @@
|
||||||
|
<flag name='memory-backend-file.reserve'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
<flag name='rbd-encryption'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>6001050</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>61700244</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
|
||||||
|
index 06cd7fb396..2646cdf88f 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
|
||||||
|
@@ -199,6 +199,7 @@
|
||||||
|
<flag name='piix4.acpi-root-pci-hotplug'/>
|
||||||
|
<flag name='query-dirty-rate'/>
|
||||||
|
<flag name='rbd-encryption'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>6001050</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>42900244</microcodeVersion>
|
||||||
|
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
|
||||||
|
index 75aaeed03c..f25ec1b84a 100644
|
||||||
|
--- a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
|
||||||
|
+++ b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
|
||||||
|
@@ -241,6 +241,7 @@
|
||||||
|
<flag name='rbd-encryption'/>
|
||||||
|
<flag name='sev-guest-kernel-hashes'/>
|
||||||
|
<flag name='sev-inject-launch-secret'/>
|
||||||
|
+ <flag name='memory-backend-file.prealloc-threads'/>
|
||||||
|
<version>6002000</version>
|
||||||
|
<kvmVersion>0</kvmVersion>
|
||||||
|
<microcodeVersion>43100244</microcodeVersion>
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,66 @@
|
|||||||
|
From f9c8097e8a836052239c51552d943a76b8164de3 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <f9c8097e8a836052239c51552d943a76b8164de3@dist-git>
|
||||||
|
From: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Date: Mon, 21 Mar 2022 17:10:15 +0100
|
||||||
|
Subject: [PATCH] qemu_command: Generate prealloc-threads property
|
||||||
|
|
||||||
|
Let's generate prealloc-threads property onto the cmd line if
|
||||||
|
domain configuration requests so.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
|
||||||
|
(cherry picked from commit b8d6ecc70c8a8e9c90bab48b6829b42d8b77c748)
|
||||||
|
|
||||||
|
Conflicts:
|
||||||
|
tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args:
|
||||||
|
Upstream has moved some cmd line arguments
|
||||||
|
(v8.0.0-260-gaf23241cfe) but that is not backported.
|
||||||
|
|
||||||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2075569
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
---
|
||||||
|
src/qemu/qemu_command.c | 5 ++++-
|
||||||
|
tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args | 4 ++--
|
||||||
|
2 files changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
||||||
|
index 2acdcca2ff..d23af97e0c 100644
|
||||||
|
--- a/src/qemu/qemu_command.c
|
||||||
|
+++ b/src/qemu/qemu_command.c
|
||||||
|
@@ -3856,7 +3856,10 @@ qemuBuildMemoryBackendProps(virJSONValue **backendProps,
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
if (!priv->memPrealloc &&
|
||||||
|
- virJSONValueObjectAdd(&props, "B:prealloc", prealloc, NULL) < 0)
|
||||||
|
+ virJSONValueObjectAdd(&props,
|
||||||
|
+ "B:prealloc", prealloc,
|
||||||
|
+ "p:prealloc-threads", def->mem.allocation_threads,
|
||||||
|
+ NULL) < 0)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args b/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args
|
||||||
|
index 04a320d469..9b2e6086c3 100644
|
||||||
|
--- a/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args
|
||||||
|
+++ b/tests/qemuxml2argvdata/memfd-memory-numa.x86_64-latest.args
|
||||||
|
@@ -16,7 +16,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-instance-00000092/.config \
|
||||||
|
-m size=14680064k,slots=16,maxmem=1099511627776k \
|
||||||
|
-overcommit mem-lock=off \
|
||||||
|
-smp 8,sockets=1,dies=1,cores=8,threads=1 \
|
||||||
|
--object '{"qom-type":"memory-backend-memfd","id":"ram-node0","hugetlb":true,"hugetlbsize":2097152,"share":true,"prealloc":true,"size":15032385536,"host-nodes":[3],"policy":"preferred"}' \
|
||||||
|
+-object '{"qom-type":"memory-backend-memfd","id":"ram-node0","hugetlb":true,"hugetlbsize":2097152,"share":true,"prealloc":true,"prealloc-threads":8,"size":15032385536,"host-nodes":[3],"policy":"preferred"}' \
|
||||||
|
-numa node,nodeid=0,cpus=0-7,memdev=ram-node0 \
|
||||||
|
-uuid 126f2720-6f8e-45ab-a886-ec9277079a67 \
|
||||||
|
-display none \
|
||||||
|
@@ -29,7 +29,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-instance-00000092/.config \
|
||||||
|
-no-acpi \
|
||||||
|
-boot strict=on \
|
||||||
|
-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
|
||||||
|
--object '{"qom-type":"memory-backend-file","id":"memnvdimm0","mem-path":"/tmp/nvdimm","share":true,"prealloc":true,"size":536870912,"host-nodes":[3],"policy":"preferred"}' \
|
||||||
|
+-object '{"qom-type":"memory-backend-file","id":"memnvdimm0","mem-path":"/tmp/nvdimm","share":true,"prealloc":true,"prealloc-threads":8,"size":536870912,"host-nodes":[3],"policy":"preferred"}' \
|
||||||
|
-device nvdimm,node=0,memdev=memnvdimm0,id=nvdimm0,slot=0 \
|
||||||
|
-audiodev '{"id":"audio1","driver":"none"}' \
|
||||||
|
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
From d1a1a95343946fbe0736a14073b63831320d55d2 Mon Sep 17 00:00:00 2001
|
||||||
|
Message-Id: <d1a1a95343946fbe0736a14073b63831320d55d2@dist-git>
|
||||||
|
From: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Date: Mon, 21 Mar 2022 17:09:40 +0100
|
||||||
|
Subject: [PATCH] qemu_validate: Validate prealloc threads against qemuCpas
|
||||||
|
|
||||||
|
Only fairly new QEMUs are capable of user provided number of
|
||||||
|
preallocation threads. Validate this assumption.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
|
||||||
|
(cherry picked from commit 75a4e0165ef199809974e97b507d3953e1de01d1)
|
||||||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2075569
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
---
|
||||||
|
src/qemu/qemu_validate.c | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
|
||||||
|
index 3a69733f81..7bc14293d6 100644
|
||||||
|
--- a/src/qemu/qemu_validate.c
|
||||||
|
+++ b/src/qemu/qemu_validate.c
|
||||||
|
@@ -739,6 +739,13 @@ qemuValidateDomainDefMemory(const virDomainDef *def,
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (mem->allocation_threads > 0 &&
|
||||||
|
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_MEMORY_BACKEND_PREALLOC_THREADS)) {
|
||||||
|
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
+ _("preallocation threads are unsupported with this QEMU"));
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (mem->source == VIR_DOMAIN_MEMORY_SOURCE_ANONYMOUS) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
_("hugepages are not allowed with anonymous "
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -210,7 +210,7 @@
|
|||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 8.0.0
|
Version: 8.0.0
|
||||||
Release: 5%{?dist}%{?extra_release}
|
Release: 5.2%{?dist}%{?extra_release}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
URL: https://libvirt.org/
|
URL: https://libvirt.org/
|
||||||
|
|
||||||
@ -238,6 +238,18 @@ Patch15: libvirt-qemu_command-Generate-memory-only-after-controllers.patch
|
|||||||
Patch16: libvirt-qemu-Validate-domain-definition-even-on-migration.patch
|
Patch16: libvirt-qemu-Validate-domain-definition-even-on-migration.patch
|
||||||
Patch17: libvirt-node_device-Rework-udevKludgeStorageType.patch
|
Patch17: libvirt-node_device-Rework-udevKludgeStorageType.patch
|
||||||
Patch18: libvirt-node_device-Treat-NVMe-disks-as-regular-disks.patch
|
Patch18: libvirt-node_device-Treat-NVMe-disks-as-regular-disks.patch
|
||||||
|
Patch19: libvirt-conf-Introduce-memory-allocation-threads.patch
|
||||||
|
Patch20: libvirt-qemu_capabilities-Detect-memory-backend-.prealloc-threads-property.patch
|
||||||
|
Patch21: libvirt-qemu_validate-Validate-prealloc-threads-against-qemuCpas.patch
|
||||||
|
Patch22: libvirt-qemu_command-Generate-prealloc-threads-property.patch
|
||||||
|
Patch23: libvirt-cpu_map-Disable-cpu64-rhel-for-host-model-and-baseline.patch
|
||||||
|
Patch24: libvirt-cputest-Drop-some-old-artificial-baseline-tests.patch
|
||||||
|
Patch25: libvirt-cputest-Give-better-names-to-baseline-tests.patch
|
||||||
|
Patch26: libvirt-cputest-Add-some-real-world-baseline-tests.patch
|
||||||
|
Patch27: libvirt-cpu_x86-Consolidate-signature-match-in-x86DecodeUseCandidate.patch
|
||||||
|
Patch28: libvirt-cpu_x86-Refactor-feature-list-comparison-in-x86DecodeUseCandidate.patch
|
||||||
|
Patch29: libvirt-cpu_x86-Penalize-disabled-features-when-computing-CPU-model.patch
|
||||||
|
Patch30: libvirt-cpu_x86-Ignore-enabled-features-for-input-models-in-x86DecodeUseCandidate.patch
|
||||||
|
|
||||||
Requires: libvirt-daemon = %{version}-%{release}
|
Requires: libvirt-daemon = %{version}-%{release}
|
||||||
Requires: libvirt-daemon-config-network = %{version}-%{release}
|
Requires: libvirt-daemon-config-network = %{version}-%{release}
|
||||||
@ -2111,6 +2123,22 @@ exit 0
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue May 17 2022 Jiri Denemark <jdenemar@redhat.com> - 8.0.0-5.2.el8
|
||||||
|
- cpu_map: Disable cpu64-rhel* for host-model and baseline (rhbz#2084030)
|
||||||
|
- cputest: Drop some old artificial baseline tests (rhbz#2084030)
|
||||||
|
- cputest: Give better names to baseline tests (rhbz#2084030)
|
||||||
|
- cputest: Add some real world baseline tests (rhbz#2084030)
|
||||||
|
- cpu_x86: Consolidate signature match in x86DecodeUseCandidate (rhbz#2084030)
|
||||||
|
- cpu_x86: Refactor feature list comparison in x86DecodeUseCandidate (rhbz#2084030)
|
||||||
|
- cpu_x86: Penalize disabled features when computing CPU model (rhbz#2084030)
|
||||||
|
- cpu_x86: Ignore enabled features for input models in x86DecodeUseCandidate (rhbz#2084030)
|
||||||
|
|
||||||
|
* Wed Apr 27 2022 Jiri Denemark <jdenemar@redhat.com> - 8.0.0-5.1.el8
|
||||||
|
- conf: Introduce memory allocation threads (rhbz#2075569)
|
||||||
|
- qemu_capabilities: Detect memory-backend-*.prealloc-threads property (rhbz#2075569)
|
||||||
|
- qemu_validate: Validate prealloc threads against qemuCpas (rhbz#2075569)
|
||||||
|
- qemu_command: Generate prealloc-threads property (rhbz#2075569)
|
||||||
|
|
||||||
* Fri Feb 25 2022 Jiri Denemark <jdenemar@redhat.com> - 8.0.0-5
|
* Fri Feb 25 2022 Jiri Denemark <jdenemar@redhat.com> - 8.0.0-5
|
||||||
- node_device: Rework udevKludgeStorageType() (rhbz#2056673)
|
- node_device: Rework udevKludgeStorageType() (rhbz#2056673)
|
||||||
- node_device: Treat NVMe disks as regular disks (rhbz#2056673)
|
- node_device: Treat NVMe disks as regular disks (rhbz#2056673)
|
||||||
|
Loading…
Reference in New Issue
Block a user