[PATCH 0/3] util: Fix setting process affinity on BSD
by Andrea Bolognani
Commit c07cf0a68693 tried to ensure that the Linux-compatible
syscalls would not be used on FreeBSD, but something must have
changed between then and now because I can clearly see
sched_{get,set}affinity() being used instead of their cpuset_*
counterparts on FreeBSD 14.
Ensure that the BSD variants are always preferred.
Before that, fix them so that they accept either a PID or a TID.
The fact that this wasn't the case until now makes me suspect
that scenarios in which thread-level affinity is applied have
not been tested at all on the platform, because doing something
as simple as
<vcpu placement='static' cpuset='1-2'>1</vcpu>
is enough to prevent the VM from starting, and before FreeBSD
14 the Linux compatibility APIs shouldn't have been part of the
picture at all.
Andrea Bolognani (3):
util: Accept TIDs for virProcess{Get,Set}Affinity() on BSD
util: Prefer cpuset_{get,set}affinity() on BSD
util: Add debug print missing from BSD
src/util/virprocess.c | 112 +++++++++++++++++++++---------------------
1 file changed, 57 insertions(+), 55 deletions(-)
--
2.43.2
8 months, 4 weeks
[PATCH] cpu_map: Drop 'mpx' from x86 cpu models
by Tim Wiederhake
The mpx feature was removed from the corresponding qemu cpu models.
With mpx in the libvirt cpu models, libvirt believes the feature
to be implicitly enabled when creating qemu VMs, while in fact it is
disabled.
This became an issue when commit 94eacd5a5f introduced new vmx-*
features, of which some are dependent on mpx (see "feature_dependencies"
table in qemu target/i386/cpu.c), e.g. vmx-exit-clear-bndcfgs and
vmx-entry-load-bndcfgs. These features cannot be enabled by qemu
without also mpx being enabled, leading to the error message
error: Failed to create domain from testdomain.xml
error: operation failed: guest CPU doesn't match
specification: missing features: mpx,vmx-exit-clear-bndcfgs,
vmx-entry-load-bndcfgs
when trying to create a VM with a "host-model" cpu on a host that
does support mpx and the mentioned vmx-* features:
<domain>
...
<cpu mode='host-model' check='full' />
...
</domain>
Resolve the issue by removing mpx from libvirt's cpu models as well.
Signed-off-by: Tim Wiederhake <twiederh(a)redhat.com>
---
src/cpu_map/x86_Cascadelake-Server-noTSX.xml | 2 +-
src/cpu_map/x86_Cascadelake-Server.xml | 2 +-
src/cpu_map/x86_Icelake-Server-noTSX.xml | 2 +-
src/cpu_map/x86_Icelake-Server.xml | 2 +-
src/cpu_map/x86_Skylake-Client-IBRS.xml | 2 +-
src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml | 2 +-
src/cpu_map/x86_Skylake-Client.xml | 2 +-
src/cpu_map/x86_Skylake-Server-IBRS.xml | 2 +-
src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml | 2 +-
src/cpu_map/x86_Skylake-Server.xml | 2 +-
tests/cputestdata/x86_64-cpuid-Core-i5-6600-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i5-6600-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i5-6600-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-7700-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Core-i7-8700-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-guest.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-host.xml | 1 +
tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml | 1 +
tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml | 1 +
.../x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml | 1 +
tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml | 1 +
.../x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml | 1 +
tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml | 1 +
.../cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml | 1 +
tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 1 +
tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 1 +
tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 1 +
tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 1 +
.../cpu-Icelake-Server-pconfig.x86_64-latest.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-4.2.0.args | 2 +-
.../cpu-host-model-fallback-kvm.x86_64-5.0.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-4.2.0.args | 2 +-
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.0.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-4.2.0.args | 2 +-
.../cpu-host-model-nofallback-kvm.x86_64-5.0.0.args | 2 +-
66 files changed, 66 insertions(+), 17 deletions(-)
diff --git a/src/cpu_map/x86_Cascadelake-Server-noTSX.xml b/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
index bfd4629836..c669f8bc9f 100644
--- a/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
+++ b/src/cpu_map/x86_Cascadelake-Server-noTSX.xml
@@ -39,7 +39,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Cascadelake-Server.xml b/src/cpu_map/x86_Cascadelake-Server.xml
index 335e9cb584..75947ad7f2 100644
--- a/src/cpu_map/x86_Cascadelake-Server.xml
+++ b/src/cpu_map/x86_Cascadelake-Server.xml
@@ -40,7 +40,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Icelake-Server-noTSX.xml b/src/cpu_map/x86_Icelake-Server-noTSX.xml
index 7c9c32c977..fd8705f5f7 100644
--- a/src/cpu_map/x86_Icelake-Server-noTSX.xml
+++ b/src/cpu_map/x86_Icelake-Server-noTSX.xml
@@ -46,7 +46,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Icelake-Server.xml b/src/cpu_map/x86_Icelake-Server.xml
index b4685bead0..d7b0e36967 100644
--- a/src/cpu_map/x86_Icelake-Server.xml
+++ b/src/cpu_map/x86_Icelake-Server.xml
@@ -47,7 +47,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Client-IBRS.xml b/src/cpu_map/x86_Skylake-Client-IBRS.xml
index 5709e7c2f9..2d0a9eff4e 100644
--- a/src/cpu_map/x86_Skylake-Client-IBRS.xml
+++ b/src/cpu_map/x86_Skylake-Client-IBRS.xml
@@ -37,7 +37,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml b/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
index ffba34502a..855c93e3a5 100644
--- a/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
+++ b/src/cpu_map/x86_Skylake-Client-noTSX-IBRS.xml
@@ -36,7 +36,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Client.xml b/src/cpu_map/x86_Skylake-Client.xml
index 14cd57e176..b0d0cdf306 100644
--- a/src/cpu_map/x86_Skylake-Client.xml
+++ b/src/cpu_map/x86_Skylake-Client.xml
@@ -37,7 +37,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Server-IBRS.xml b/src/cpu_map/x86_Skylake-Server-IBRS.xml
index 9fb3488809..44c1eeb43d 100644
--- a/src/cpu_map/x86_Skylake-Server-IBRS.xml
+++ b/src/cpu_map/x86_Skylake-Server-IBRS.xml
@@ -38,7 +38,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml b/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
index c162c0acc3..7febb14f4f 100644
--- a/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
+++ b/src/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
@@ -37,7 +37,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/src/cpu_map/x86_Skylake-Server.xml b/src/cpu_map/x86_Skylake-Server.xml
index e022d94c84..bc3eef8034 100644
--- a/src/cpu_map/x86_Skylake-Server.xml
+++ b/src/cpu_map/x86_Skylake-Server.xml
@@ -38,7 +38,7 @@
<feature name='mce'/>
<feature name='mmx'/>
<feature name='movbe'/>
- <feature name='mpx'/>
+ <feature name='mpx' removed='yes'/>
<feature name='msr'/>
<feature name='mtrr'/>
<feature name='nx'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i5-6600-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i5-6600-guest.xml
index 5777a0bfba..823494afa0 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i5-6600-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i5-6600-guest.xml
@@ -18,6 +18,7 @@
<feature policy='require' name='pdcm'/>
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i5-6600-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i5-6600-host.xml
index c52e8db235..3511230df8 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i5-6600-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i5-6600-host.xml
@@ -20,6 +20,7 @@
<feature name='pdcm'/>
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i5-6600-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i5-6600-json.xml
index 61a52212a6..46111d8616 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i5-6600-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i5-6600-json.xml
@@ -4,6 +4,7 @@
<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='clflushopt'/>
<feature policy='require' name='xsaves'/>
<feature policy='require' name='pdpe1gb'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml
index b6e643cd08..711ccfc3ca 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml
@@ -19,6 +19,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='sgx'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='stibp'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml
index 2a7493f941..735c9417ba 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml
@@ -21,6 +21,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='sgx'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='stibp'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml
index 690081493b..068ea0fbb7 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-json.xml
@@ -5,6 +5,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='ssbd'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml
index 60bace9ed6..4f5c4103b4 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml
@@ -19,6 +19,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='sgx'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml
index 6b9323842a..ae8f3e277a 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml
@@ -21,6 +21,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='sgx'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-json.xml
index 12424bc67c..cbdde0ff15 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-json.xml
@@ -4,6 +4,7 @@
<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='clflushopt'/>
<feature policy='require' name='pdpe1gb'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
index 5ed8ac37a3..61d0f8b2a1 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml
@@ -18,6 +18,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='sgx'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='md-clear'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
index 805a31411d..5926805f28 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml
@@ -20,6 +20,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='sgx'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='md-clear'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
index e933265248..498e9deaf2 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml
@@ -5,6 +5,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml
index 6cedb93633..2d96f676ee 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml
@@ -19,6 +19,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='sgx'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='sgxlc'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml
index 0cc65b4322..cc9a9efa76 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml
@@ -21,6 +21,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='sgx'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='sgxlc'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-json.xml
index fd7539f7ce..a6f64f2020 100644
--- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-json.xml
@@ -4,6 +4,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='ssbd'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml
index 38d95680d3..7c125bbd9a 100644
--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml
@@ -21,6 +21,7 @@
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='sgx'/>
<feature policy='require' name='cmt'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='avx512ifma'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='sha-ni'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml
index ccb74f41ef..54628b7a01 100644
--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml
@@ -23,6 +23,7 @@
<feature name='tsc_adjust'/>
<feature name='sgx'/>
<feature name='cmt'/>
+ <feature name='mpx'/>
<feature name='avx512ifma'/>
<feature name='intel-pt'/>
<feature name='sha-ni'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-json.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-json.xml
index ada11d2608..7f2ca1ca36 100644
--- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-json.xml
@@ -4,6 +4,7 @@
<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='avx512ifma'/>
<feature policy='require' name='sha-ni'/>
<feature policy='require' name='stibp'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
index ea1c79c0df..0af37fb828 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
@@ -19,6 +19,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='sgx'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='md-clear'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
index d7a7f30b9e..696f23145d 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
@@ -21,6 +21,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='sgx'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='md-clear'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-json.xml
index a5591278df..624fb4692a 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-json.xml
@@ -4,6 +4,7 @@
<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='clflushopt'/>
<feature policy='require' name='md-clear'/>
<feature policy='require' name='stibp'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml
index 60bace9ed6..4f5c4103b4 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml
@@ -19,6 +19,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='sgx'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml
index d2f808f9a6..e535a014c3 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml
@@ -21,6 +21,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='sgx'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-json.xml
index ad98679027..3558b9e6af 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-json.xml
@@ -5,6 +5,7 @@
<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='clflushopt'/>
<feature policy='require' name='xsaves'/>
<feature policy='require' name='pdpe1gb'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-guest.xml
index 8f014f6e28..9947d3e81b 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-guest.xml
@@ -20,6 +20,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='cmt'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='pku'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-host.xml
index e004747ada..502a5471c0 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-host.xml
@@ -22,6 +22,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='cmt'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='pku'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-json.xml
index 7c7e95ce0d..8731e9f7f7 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-5115-json.xml
@@ -4,5 +4,6 @@
<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='clflushopt'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-guest.xml
index f4f0199607..1aab2f8251 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-guest.xml
@@ -20,6 +20,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='cmt'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='pku'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-host.xml
index 325c2fe26f..e6d2ba021f 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-host.xml
@@ -22,6 +22,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='cmt'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='pku'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-json.xml
index b482043ccf..91f82bca3d 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6130-json.xml
@@ -5,6 +5,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='pku'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml
index f31ca1ffc5..5b5d0ad700 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml
@@ -20,6 +20,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='cmt'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='pku'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml
index da7e96e533..be4129cb31 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml
@@ -22,6 +22,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='cmt'/>
+ <feature name='mpx'/>
<feature name='clflushopt'/>
<feature name='intel-pt'/>
<feature name='pku'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml
index 1dfad4a0cb..20654cd844 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml
@@ -4,5 +4,6 @@
<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='clflushopt'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml
index 8fd1611842..789aa65e33 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml
@@ -20,6 +20,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='cmt'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='pku'/>
<feature policy='require' name='ospke'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml
index 7055c72112..e2c9130fd7 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml
@@ -22,6 +22,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='cmt'/>
+ <feature name='mpx'/>
<feature name='intel-pt'/>
<feature name='pku'/>
<feature name='ospke'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml
index 78863c61d1..921ff81c56 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml
@@ -4,6 +4,7 @@
<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='pku'/>
<feature policy='require' name='xsaves'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-guest.xml
index 88c2d84d65..06f3815015 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-guest.xml
@@ -20,6 +20,7 @@
<feature policy='require' name='osxsave'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='cmt'/>
+ <feature policy='require' name='mpx'/>
<feature policy='require' name='intel-pt'/>
<feature policy='require' name='pku'/>
<feature policy='require' name='ospke'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-host.xml
index 5e59520919..4fb904fb33 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-host.xml
@@ -22,6 +22,7 @@
<feature name='osxsave'/>
<feature name='tsc_adjust'/>
<feature name='cmt'/>
+ <feature name='mpx'/>
<feature name='intel-pt'/>
<feature name='pku'/>
<feature name='ospke'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml
index ac0e520767..91fecff825 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml
@@ -5,6 +5,7 @@
<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'/>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
index 071c799ba2..ac7c8b166f 100644
--- a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Icelake.xml
@@ -4,6 +4,7 @@
<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='pku'/>
<feature policy='require' name='stibp'/>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
index 5e42876b39..841f354a6e 100644
--- a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake-IBRS.xml
@@ -4,6 +4,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='pku'/>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
index 906259df0b..0dd11218ce 100644
--- a/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cascadelake+Skylake.xml
@@ -4,5 +4,6 @@
<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='clflushopt'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
index f9e9c476b5..7f29d5c941 100644
--- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml
@@ -5,6 +5,7 @@
<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'/>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
index 071c799ba2..ac7c8b166f 100644
--- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Icelake.xml
@@ -4,6 +4,7 @@
<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='pku'/>
<feature policy='require' name='stibp'/>
diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml b/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
index d46ff26eeb..7091fec30d 100644
--- a/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
+++ b/tests/cputestdata/x86_64-cpuid-baseline-Skylake-Client+Server.xml
@@ -4,6 +4,7 @@
<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='clflushopt'/>
<feature policy='require' name='pdpe1gb'/>
</cpu>
diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
index 152f201ff9..e4c906c1df 100644
--- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
@@ -48,6 +48,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
index 8b7cf44d6d..b683b77ff9 100644
--- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
@@ -47,6 +47,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
index 1d29a40f74..95883fd2fe 100644
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
@@ -48,6 +48,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
index f3b3adb19e..524858b9cc 100644
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
@@ -47,6 +47,7 @@
<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='clflushopt'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='md-clear'/>
diff --git a/tests/qemuxmlconfdata/cpu-Icelake-Server-pconfig.x86_64-latest.args b/tests/qemuxmlconfdata/cpu-Icelake-Server-pconfig.x86_64-latest.args
index c841bb80c8..dc4a503dba 100644
--- a/tests/qemuxmlconfdata/cpu-Icelake-Server-pconfig.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/cpu-Icelake-Server-pconfig.x86_64-latest.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-test/.config \
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-test/master-key.aes"}' \
-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu Icelake-Server,intel-pt=off \
+-cpu Icelake-Server,intel-pt=off,mpx=off \
-m size=219136k \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-4.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-4.2.0.args
index f5f0e818af..d8ae902da1 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-4.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-4.2.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \
-machine pc-i440fx-4.2,usb=off,dump-guest-core=off \
-accel kvm \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,mpx=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
-m size=219136k \
-overcommit mem-lock=off \
-smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-5.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-5.0.0.args
index 699f48fbaa..d0d82fc6a1 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-5.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-5.0.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \
-machine pc-i440fx-5.0,usb=off,dump-guest-core=off \
-accel kvm \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,mpx=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
-m size=219136k \
-overcommit mem-lock=off \
-smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-4.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-4.2.0.args
index aacba803e8..13cade3398 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-4.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-4.2.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \
-machine pc-q35-4.2,usb=off,dump-guest-core=off \
-accel kvm \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,mpx=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
-m size=219136k \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.0.0.args
index a2415bb667..7c9a29f5de 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.0.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \
-machine pc-q35-5.0,usb=off,dump-guest-core=off \
-accel kvm \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,mpx=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
-m size=219136k \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-4.2.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-4.2.0.args
index f5f0e818af..d8ae902da1 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-4.2.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-4.2.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \
-machine pc-i440fx-4.2,usb=off,dump-guest-core=off \
-accel kvm \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,mpx=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
-m size=219136k \
-overcommit mem-lock=off \
-smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-5.0.0.args b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-5.0.0.args
index 699f48fbaa..d0d82fc6a1 100644
--- a/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-5.0.0.args
+++ b/tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-5.0.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \
-machine pc-i440fx-5.0,usb=off,dump-guest-core=off \
-accel kvm \
--cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
+-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,mpx=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \
-m size=219136k \
-overcommit mem-lock=off \
-smp 6,sockets=6,cores=1,threads=1 \
--
2.43.0
9 months
[PATCH v3 00/12] nodedev state and update
by Boris Fiuczynski
The series adds a dual state to the mdev node devices as these objects
can be active and defined at the same time. These two states can
become different. To be able to also introspect the persistent and
transient nodedevs filtering is added. To be able to also dump the XML
of an inactive state while the node device is active a new option is
added.
The last four patches add the capability to update a mdev node device.
This can be done on the persistent configuration, on the active
configuration or on both. To support this v1.3.0 of mdevctl is required.
nodeDeviceDefineXML() does now support modifying a persistent configuration.
Changes since v2:
* made error messages in virNodeDeviceObjUpdateModificationImpact() device
type agnostic
* renamed virNodeDeviceUpdateXML* into virNodeDeviceUpdate*
* renamed nodeDeviceDefCompareMdevs() into nodeDeviceDefValidateUpdate()
* renamed multiple local variable names
* removed method for config cloning by commenting cross config compare in
nodeDeviceDefValidateUpdate()
* changed nodeDeviceDefineXML() to modify an existing persistent configuration
Changes since v1:
* replaced spec file requirement for v1.3.0 of mdevctl by a dynamic
support check and an unsupported message if not available
* removed persisted precheck in virsh
* renamed persisted and persist into persistent
* addressed all other review comments made on v1
* added NEWS
Boris Fiuczynski (12):
virmdev: prepare type and attributes for dual state
node_device: refactor mdev attributes handling
node_device: remove unnecessary checks in virNodeDeviceDefFormat
nodedev: add an active config to mdev
tools: add option inactive to nodedev-dumpxml
nodedev: add persisted and transient filter on list
tools: add switches persisted and transient to nodedev-list
virsh: doc fix on nodedev-list
api: add virNodeDeviceUpdate()
nodedev: Implement virNodeDeviceUpdate
virsh: add nodedev-update
nodedev: allow modify on define of a persistent node device
NEWS.rst | 12 +
docs/drvnodedev.rst | 4 +-
docs/manpages/virsh.rst | 36 +-
include/libvirt/libvirt-nodedev.h | 31 ++
libvirt.spec.in | 1 +
src/access/viraccessperm.c | 1 +
src/access/viraccessperm.h | 6 +
src/conf/node_device_conf.c | 76 +--
src/conf/node_device_conf.h | 14 +-
src/conf/virnodedeviceobj.c | 50 ++
src/conf/virnodedeviceobj.h | 3 +
src/driver-nodedev.h | 6 +
src/libvirt-nodedev.c | 51 +-
src/libvirt_private.syms | 1 +
src/libvirt_public.syms | 5 +
src/node_device/node_device_driver.c | 489 ++++++++++++++----
src/node_device/node_device_driver.h | 17 +-
src/node_device/node_device_udev.c | 5 +-
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 17 +-
src/remote_protocol-structs | 6 +
src/test/test_driver.c | 6 +-
src/util/virmdev.h | 6 +
...60c_c60c_c60c_c60c_c60cc60cc60c_update.xml | 16 +
tests/nodedevmdevctldata/mdevctl-modify.argv | 25 +
tests/nodedevmdevctldata/mdevctl-modify.json | 4 +
tests/nodedevmdevctltest.c | 94 +++-
...v_c60cc60c_c60c_c60c_c60c_c60cc60cc60c.xml | 14 +
...d_b7f0_4fea_b468_f1da537d301b_inactive.xml | 1 +
...v_c60cc60c_c60c_c60c_c60c_c60cc60cc60c.xml | 10 +
...c_c60c_c60c_c60c_c60cc60cc60c_inactive.xml | 9 +
...9_36ea_4111_8f0a_8c9a70e21366_inactive.xml | 1 +
...9_495e_4243_ad9f_beb3f14c23d9_inactive.xml | 1 +
...4_f554_4dc1_809d_b2a01e8e48ad_inactive.xml | 8 +
...6_1ca8_49ac_b176_871d16c13076_inactive.xml | 1 +
tests/nodedevxml2xmltest.c | 59 ++-
tools/virsh-nodedev.c | 140 ++++-
37 files changed, 1067 insertions(+), 160 deletions(-)
create mode 100644 tests/nodedevmdevctldata/mdev_c60cc60c_c60c_c60c_c60c_c60cc60cc60c_update.xml
create mode 100644 tests/nodedevmdevctldata/mdevctl-modify.argv
create mode 100644 tests/nodedevmdevctldata/mdevctl-modify.json
create mode 100644 tests/nodedevschemadata/mdev_c60cc60c_c60c_c60c_c60c_c60cc60cc60c.xml
create mode 120000 tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b_inactive.xml
create mode 100644 tests/nodedevxml2xmlout/mdev_c60cc60c_c60c_c60c_c60c_c60cc60cc60c.xml
create mode 100644 tests/nodedevxml2xmlout/mdev_c60cc60c_c60c_c60c_c60c_c60cc60cc60c_inactive.xml
create mode 120000 tests/nodedevxml2xmlout/mdev_d069d019_36ea_4111_8f0a_8c9a70e21366_inactive.xml
create mode 120000 tests/nodedevxml2xmlout/mdev_d2441d39_495e_4243_ad9f_beb3f14c23d9_inactive.xml
create mode 100644 tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad_inactive.xml
create mode 120000 tests/nodedevxml2xmlout/mdev_fedc4916_1ca8_49ac_b176_871d16c13076_inactive.xml
--
2.42.0
9 months
[PATCH v2 0/2] domain_validate: Account for NVDIMM label size properly when checking for memory conflicts
by Michal Privoznik
v2 of:
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/WP...
diff to v1:
- Amended commit message to 1/2 (appended Fixes: with respective commits),
- Added new test case
Michal Prívozník (2):
domain_validate: Account for NVDIMM label size properly when checking
for memory conflicts
qemuxmlconftest: Introduce memory-hotplug-nvdimm-overlap test case
src/conf/domain_validate.c | 50 +++++++++++-
...-hotplug-nvdimm-overlap.x86_64-latest.args | 40 ++++++++++
...y-hotplug-nvdimm-overlap.x86_64-latest.xml | 1 +
.../memory-hotplug-nvdimm-overlap.xml | 77 +++++++++++++++++++
tests/qemuxmlconftest.c | 4 +
5 files changed, 170 insertions(+), 2 deletions(-)
create mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-overlap.x86_64-latest.args
create mode 120000 tests/qemuxmlconfdata/memory-hotplug-nvdimm-overlap.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-overlap.xml
--
2.43.0
9 months
[PATCH] virfile: switch to virReportSystemError in VIR_CLOSE() cond.
by Adam Julis
VIR_CLOSE also set errno, so it's not nessesary use virReportError with explicit error code
Signed-off-by: Adam Julis <ajulis(a)redhat.com>
---
src/util/virfile.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virfile.c b/src/util/virfile.c
index 9463833d31..deaf4555fd 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -467,7 +467,7 @@ virFileWrapperFdNew(int *fd, const char *name, unsigned int flags)
goto error;
if (VIR_CLOSE(pipefd[!output]) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("unable to close pipe"));
+ virReportSystemError(errno, "%s", _("unable to close pipe"));
goto error;
}
--
2.43.0
9 months
[PATCH] qemu: Fix guest-sync response time in qga command
by ray
The current implementation sets the guest-sync timeout to the
smaller value between the default value (QEMU_AGENT_WAIT_TIME)
and agent->timeout, without considering the timeout passed
via the qga command.
This patch enhances the guest-sync timeout logic to use the
minimum value among the default value, agent->timeout, and
the timeout passed via the qga command.
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/590
Signed-off-by: ray <honglei.wang(a)smartx.com>
---
src/qemu/qemu_agent.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index f9bcf38dfb..47d735dfa3 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -835,6 +835,7 @@ qemuAgentGuestSyncSend(qemuAgent *agent,
/**
* qemuAgentGuestSync:
* @agent: agent object
+ * @seconds: qemu agent command timeout value
*
* Send guest-sync with unique ID
* and wait for reply. If we get one, check if
@@ -844,9 +845,9 @@ qemuAgentGuestSyncSend(qemuAgent *agent,
* -1 otherwise
*/
static int
-qemuAgentGuestSync(qemuAgent *agent)
+qemuAgentGuestSync(qemuAgent *agent, int seconds)
{
- int timeout = VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT;
+ int timeout = QEMU_AGENT_WAIT_TIME;
int rc;
if (agent->inSync)
@@ -854,9 +855,15 @@ qemuAgentGuestSync(qemuAgent *agent)
/* if user specified a custom agent timeout that is lower than the
* default timeout, use the shorter timeout instead */
- if ((agent->timeout >= 0) && (agent->timeout < QEMU_AGENT_WAIT_TIME))
+ if ((agent->timeout >= 0) && (agent->timeout < timeout))
timeout = agent->timeout;
+ /* If user specified a timeout parameter smaller than both default
+ * value and agent->timeout in qga APIs(such as qemu-agent-command),
+ * use the parameter timeout value */
+ if ((seconds >= 0) && (seconds < timeout))
+ timeout = seconds;
+
if ((rc = qemuAgentGuestSyncSend(agent, timeout, true)) < 0)
return -1;
@@ -1022,7 +1029,7 @@ qemuAgentCommandFull(qemuAgent *agent,
goto cleanup;
}
- if (qemuAgentGuestSync(agent) < 0)
+ if (qemuAgentGuestSync(agent, seconds) < 0)
goto cleanup;
if (!(cmdstr = virJSONValueToString(cmd, false)))
--
2.43.0
9 months
[PATCH v4 00/12] nodedev state and update
by Boris Fiuczynski
The series adds a dual state to the mdev node devices as these objects
can be active and defined at the same time. These two states can
become different. To be able to also introspect the persistent and
transient nodedevs filtering is added. To be able to also dump the XML
of an inactive state while the node device is active a new option is
added.
The last four patches add the capability to update a mdev node device.
This can be done on the persistent configuration, on the active
configuration or on both. To support this v1.3.0 of mdevctl is required.
nodeDeviceDefineXML() does now support modifying a persistent configuration.
Changes since v3:
* replaced in all patches occurrences of persisted with persistent
Changes since v2:
* made error messages in virNodeDeviceObjUpdateModificationImpact() device
type agnostic
* renamed virNodeDeviceUpdateXML* into virNodeDeviceUpdate*
* renamed nodeDeviceDefCompareMdevs() into nodeDeviceDefValidateUpdate()
* renamed multiple local variable names
* removed method for config cloning by commenting cross config compare in
nodeDeviceDefValidateUpdate()
* changed nodeDeviceDefineXML() to modify an existing persistent configuration
Changes since v1:
* replaced spec file requirement for v1.3.0 of mdevctl by a dynamic
support check and an unsupported message if not available
* removed persisted precheck in virsh
* renamed persisted and persist into persistent
* addressed all other review comments made on v1
* added NEWS
Boris Fiuczynski (12):
virmdev: prepare type and attributes for dual state
node_device: refactor mdev attributes handling
node_device: remove unnecessary checks in virNodeDeviceDefFormat
nodedev: add an active config to mdev
tools: add option inactive to nodedev-dumpxml
nodedev: add persistent and transient filter on list
tools: add switches persistent and transient to nodedev-list
virsh: doc fix on nodedev-list
api: add virNodeDeviceUpdate()
nodedev: Implement virNodeDeviceUpdate
virsh: add nodedev-update
nodedev: allow modify on define of a persistent node device
NEWS.rst | 12 +
docs/drvnodedev.rst | 4 +-
docs/manpages/virsh.rst | 36 +-
include/libvirt/libvirt-nodedev.h | 31 ++
libvirt.spec.in | 1 +
src/access/viraccessperm.c | 1 +
src/access/viraccessperm.h | 6 +
src/conf/node_device_conf.c | 76 +--
src/conf/node_device_conf.h | 14 +-
src/conf/virnodedeviceobj.c | 50 ++
src/conf/virnodedeviceobj.h | 3 +
src/driver-nodedev.h | 6 +
src/libvirt-nodedev.c | 51 +-
src/libvirt_private.syms | 1 +
src/libvirt_public.syms | 5 +
src/node_device/node_device_driver.c | 489 ++++++++++++++----
src/node_device/node_device_driver.h | 17 +-
src/node_device/node_device_udev.c | 5 +-
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 17 +-
src/remote_protocol-structs | 6 +
src/test/test_driver.c | 6 +-
src/util/virmdev.h | 6 +
...60c_c60c_c60c_c60c_c60cc60cc60c_update.xml | 16 +
tests/nodedevmdevctldata/mdevctl-modify.argv | 25 +
tests/nodedevmdevctldata/mdevctl-modify.json | 4 +
tests/nodedevmdevctltest.c | 94 +++-
...v_c60cc60c_c60c_c60c_c60c_c60cc60cc60c.xml | 14 +
...d_b7f0_4fea_b468_f1da537d301b_inactive.xml | 1 +
...v_c60cc60c_c60c_c60c_c60c_c60cc60cc60c.xml | 10 +
...c_c60c_c60c_c60c_c60cc60cc60c_inactive.xml | 9 +
...9_36ea_4111_8f0a_8c9a70e21366_inactive.xml | 1 +
...9_495e_4243_ad9f_beb3f14c23d9_inactive.xml | 1 +
...4_f554_4dc1_809d_b2a01e8e48ad_inactive.xml | 8 +
...6_1ca8_49ac_b176_871d16c13076_inactive.xml | 1 +
tests/nodedevxml2xmltest.c | 59 ++-
tools/virsh-nodedev.c | 140 ++++-
37 files changed, 1067 insertions(+), 160 deletions(-)
create mode 100644 tests/nodedevmdevctldata/mdev_c60cc60c_c60c_c60c_c60c_c60cc60cc60c_update.xml
create mode 100644 tests/nodedevmdevctldata/mdevctl-modify.argv
create mode 100644 tests/nodedevmdevctldata/mdevctl-modify.json
create mode 100644 tests/nodedevschemadata/mdev_c60cc60c_c60c_c60c_c60c_c60cc60cc60c.xml
create mode 120000 tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b_inactive.xml
create mode 100644 tests/nodedevxml2xmlout/mdev_c60cc60c_c60c_c60c_c60c_c60cc60cc60c.xml
create mode 100644 tests/nodedevxml2xmlout/mdev_c60cc60c_c60c_c60c_c60c_c60cc60cc60c_inactive.xml
create mode 120000 tests/nodedevxml2xmlout/mdev_d069d019_36ea_4111_8f0a_8c9a70e21366_inactive.xml
create mode 120000 tests/nodedevxml2xmlout/mdev_d2441d39_495e_4243_ad9f_beb3f14c23d9_inactive.xml
create mode 100644 tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad_inactive.xml
create mode 120000 tests/nodedevxml2xmlout/mdev_fedc4916_1ca8_49ac_b176_871d16c13076_inactive.xml
--
2.42.0
9 months
[PATCH v2 0/4] Rewrite x86 feature sync script
by Tim Wiederhake
Previously, sync_qemu_features_i386.py would only detect
differences between libvirt's and qemu's list of x86 features.
Adding those features to libvirt was a manual and error prone
task. Additionally, we had to keep a list of non-feature cpu
properties that qemu reported.
Replace this script with a version that reads the feature
names and their cpuid / msr data from qemu source code directly
and generate the libvirt feature list, thus avoiding potential
for human error.
v1: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/OV...
changes since v1:
* rebased to current master (some conflicts in tests/ due to 8c07850c18)
* dropped patch 4 ("cpu_map: Remove unused alias information")
* adjusted patch 5 to generate "<alias .../>" entries
Tim Wiederhake (4):
cpu_map: Sort cpu features
cpu_map: Format register values
cpu_map: Format comments
cpu_map: Rewrite feature sync script
src/cpu_map/sync_qemu_features_i386.py | 627 ++++++++++----
src/cpu_map/x86_features.xml | 807 +++++++++---------
...4-baseline-Westmere+Nehalem-migratable.xml | 4 +-
...86_64-baseline-Westmere+Nehalem-result.xml | 4 +-
.../x86_64-baseline-features-result.xml | 4 +-
.../x86_64-cpuid-A10-5800K-guest.xml | 8 +-
.../x86_64-cpuid-A10-5800K-host.xml | 8 +-
.../x86_64-cpuid-A10-5800K-json.xml | 8 +-
.../x86_64-cpuid-Atom-D510-guest.xml | 16 +-
.../x86_64-cpuid-Atom-D510-host.xml | 16 +-
.../x86_64-cpuid-Atom-N450-guest.xml | 14 +-
.../x86_64-cpuid-Atom-N450-host.xml | 14 +-
.../x86_64-cpuid-Atom-P5362-guest.xml | 12 +-
.../x86_64-cpuid-Atom-P5362-host.xml | 18 +-
.../x86_64-cpuid-Atom-P5362-json.xml | 8 +-
.../x86_64-cpuid-Cooperlake-guest.xml | 12 +-
.../x86_64-cpuid-Cooperlake-host.xml | 12 +-
.../x86_64-cpuid-Cooperlake-json.xml | 8 +-
.../x86_64-cpuid-Core-i5-2500-guest.xml | 14 +-
.../x86_64-cpuid-Core-i5-2500-host.xml | 14 +-
.../x86_64-cpuid-Core-i5-2500-json.xml | 4 +-
.../x86_64-cpuid-Core-i5-2540M-guest.xml | 14 +-
.../x86_64-cpuid-Core-i5-2540M-host.xml | 14 +-
.../x86_64-cpuid-Core-i5-2540M-json.xml | 4 +-
.../x86_64-cpuid-Core-i5-4670T-guest.xml | 16 +-
.../x86_64-cpuid-Core-i5-4670T-host.xml | 16 +-
.../x86_64-cpuid-Core-i5-4670T-json.xml | 6 +-
.../x86_64-cpuid-Core-i5-650-guest.xml | 14 +-
.../x86_64-cpuid-Core-i5-650-host.xml | 14 +-
.../x86_64-cpuid-Core-i5-650-json.xml | 4 +-
.../x86_64-cpuid-Core-i5-6600-guest.xml | 12 +-
.../x86_64-cpuid-Core-i5-6600-host.xml | 12 +-
.../x86_64-cpuid-Core-i5-6600-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-2600-guest.xml | 14 +-
.../x86_64-cpuid-Core-i7-2600-host.xml | 14 +-
.../x86_64-cpuid-Core-i7-2600-json.xml | 4 +-
...6_64-cpuid-Core-i7-2600-xsaveopt-guest.xml | 14 +-
...86_64-cpuid-Core-i7-2600-xsaveopt-host.xml | 14 +-
...86_64-cpuid-Core-i7-2600-xsaveopt-json.xml | 4 +-
.../x86_64-cpuid-Core-i7-3520M-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-3520M-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-3740QM-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-3740QM-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-3740QM-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-3770-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-3770-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-3770-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-4510U-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-4510U-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-4510U-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-4600U-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-4600U-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-4600U-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-5600U-arat-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-arat-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-arat-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-5600U-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-ibrs-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-ibrs-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-ibrs-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-5600U-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-7600U-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-7600U-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-7600U-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-7700-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-7700-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-7700-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-8550U-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-8550U-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-8550U-json.xml | 8 +-
.../x86_64-cpuid-Core-i7-8700-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-8700-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-8700-json.xml | 2 +-
.../x86_64-cpuid-Core2-E6850-guest.xml | 14 +-
.../x86_64-cpuid-Core2-E6850-host.xml | 14 +-
.../x86_64-cpuid-Core2-E6850-json.xml | 4 +-
.../x86_64-cpuid-Core2-Q9500-guest.xml | 14 +-
.../x86_64-cpuid-Core2-Q9500-host.xml | 14 +-
.../x86_64-cpuid-EPYC-7502-32-Core-guest.xml | 2 +-
.../x86_64-cpuid-EPYC-7502-32-Core-host.xml | 2 +-
.../x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 2 +-
.../x86_64-cpuid-EPYC-7601-32-Core-host.xml | 2 +-
..._64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml | 2 +-
...6_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml | 2 +-
...6_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml | 2 +-
.../x86_64-cpuid-FX-8150-guest.xml | 8 +-
.../cputestdata/x86_64-cpuid-FX-8150-host.xml | 8 +-
..._64-cpuid-Hygon-C86-7185-32-core-guest.xml | 2 +-
...6_64-cpuid-Hygon-C86-7185-32-core-host.xml | 2 +-
.../x86_64-cpuid-Ice-Lake-Server-guest.xml | 12 +-
.../x86_64-cpuid-Ice-Lake-Server-host.xml | 12 +-
.../x86_64-cpuid-Ice-Lake-Server-json.xml | 2 +-
.../x86_64-cpuid-Opteron-1352-guest.xml | 12 +-
.../x86_64-cpuid-Opteron-1352-host.xml | 12 +-
.../x86_64-cpuid-Opteron-2350-guest.xml | 12 +-
.../x86_64-cpuid-Opteron-2350-host.xml | 12 +-
.../x86_64-cpuid-Opteron-2350-json.xml | 10 +-
.../x86_64-cpuid-Opteron-6234-guest.xml | 8 +-
.../x86_64-cpuid-Opteron-6234-host.xml | 8 +-
.../x86_64-cpuid-Opteron-6234-json.xml | 8 +-
.../x86_64-cpuid-Opteron-6282-guest.xml | 8 +-
.../x86_64-cpuid-Opteron-6282-host.xml | 8 +-
.../x86_64-cpuid-Pentium-P6100-guest.xml | 14 +-
.../x86_64-cpuid-Pentium-P6100-host.xml | 14 +-
.../x86_64-cpuid-Phenom-B95-guest.xml | 12 +-
.../x86_64-cpuid-Phenom-B95-host.xml | 16 +-
.../x86_64-cpuid-Phenom-B95-json.xml | 12 +-
...4-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 2 +-
...64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 2 +-
...6_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml | 2 +-
...86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml | 2 +-
.../x86_64-cpuid-Xeon-5110-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-5110-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E3-1225-v5-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-E3-1225-v5-host.xml | 12 +-
.../x86_64-cpuid-Xeon-E3-1225-v5-json.xml | 2 +-
.../x86_64-cpuid-Xeon-E3-1245-v5-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-E3-1245-v5-host.xml | 12 +-
.../x86_64-cpuid-Xeon-E3-1245-v5-json.xml | 2 +-
.../x86_64-cpuid-Xeon-E5-2609-v3-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2609-v3-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2609-v3-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2623-v4-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2623-v4-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2623-v4-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2630-v3-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2630-v3-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2630-v3-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2630-v4-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2630-v4-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2630-v4-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2650-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-E5-2650-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E5-2650-json.xml | 4 +-
.../x86_64-cpuid-Xeon-E5-2650-v3-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2650-v3-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2650-v3-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2650-v4-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2650-v4-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2650-v4-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E7-4820-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-E7-4820-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E7-4820-json.xml | 4 +-
.../x86_64-cpuid-Xeon-E7-4830-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-E7-4830-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E7-4830-json.xml | 4 +-
.../x86_64-cpuid-Xeon-E7-8890-v3-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E7-8890-v3-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E7-8890-v3-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E7540-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-E7540-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E7540-json.xml | 4 +-
.../x86_64-cpuid-Xeon-Gold-5115-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-5115-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-5115-json.xml | 2 +-
.../x86_64-cpuid-Xeon-Gold-6130-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-6130-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-6130-json.xml | 2 +-
.../x86_64-cpuid-Xeon-Gold-6148-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-6148-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-6148-json.xml | 2 +-
.../x86_64-cpuid-Xeon-Platinum-8268-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Platinum-8268-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Platinum-8268-json.xml | 2 +-
.../x86_64-cpuid-Xeon-Platinum-9242-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Platinum-9242-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 8 +-
.../x86_64-cpuid-Xeon-W3520-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-W3520-host.xml | 14 +-
.../x86_64-cpuid-Xeon-W3520-json.xml | 4 +-
.../x86_64-cpuid-Xeon-X5460-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-X5460-host.xml | 14 +-
...id-baseline-Broadwell-IBRS+Cascadelake.xml | 6 +-
..._64-cpuid-baseline-Cascadelake+Icelake.xml | 2 +-
...puid-baseline-Cascadelake+Skylake-IBRS.xml | 2 +-
..._64-cpuid-baseline-Cascadelake+Skylake.xml | 2 +-
...-cpuid-baseline-Cooperlake+Cascadelake.xml | 8 +-
...6_64-cpuid-baseline-Cooperlake+Icelake.xml | 2 +-
.../x86_64-cpuid-baseline-Haswell+Skylake.xml | 6 +-
...-baseline-Haswell-noTSX-IBRS+Broadwell.xml | 6 +-
...seline-Haswell-noTSX-IBRS+Skylake-IBRS.xml | 6 +-
...id-baseline-Haswell-noTSX-IBRS+Skylake.xml | 6 +-
...4-cpuid-baseline-Skylake-Client+Server.xml | 2 +-
.../x86_64-host+guest,model486-result.xml | 18 +-
.../x86_64-host+guest,models-result.xml | 4 +-
..._64-host+host+host-model,models-result.xml | 12 +-
.../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 8 +-
.../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 6 +-
tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 8 +-
.../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 8 +-
.../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 6 +-
tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 8 +-
.../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 6 +-
.../qemu_7.2.0-tcg.x86_64+hvf.xml | 6 +-
.../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 6 +-
...-host-model-fallback-kvm.x86_64-4.2.0.args | 2 +-
...-host-model-fallback-kvm.x86_64-5.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-4.2.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-5.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-5.1.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-5.2.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-6.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-6.1.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-6.2.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-7.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-7.1.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-7.2.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-8.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-8.1.0.args | 2 +-
...host-model-fallback-tcg.x86_64-latest.args | 2 +-
.../cpu-host-model-kvm.x86_64-4.2.0.args | 2 +-
.../cpu-host-model-kvm.x86_64-5.0.0.args | 2 +-
...ost-model-nofallback-kvm.x86_64-4.2.0.args | 2 +-
...ost-model-nofallback-kvm.x86_64-5.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-4.2.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-5.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-5.1.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-5.2.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-6.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-6.1.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-6.2.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-7.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-7.1.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-7.2.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-8.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-8.1.0.args | 2 +-
...st-model-nofallback-tcg.x86_64-latest.args | 2 +-
.../cpu-host-model-tcg.x86_64-4.2.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-5.0.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-5.1.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-5.2.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-6.0.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-6.1.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-6.2.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-7.0.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-7.1.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-7.2.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-8.0.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-8.1.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-latest.args | 2 +-
251 files changed, 1881 insertions(+), 1577 deletions(-)
--
2.43.0
9 months
[PATCH 0/9] docs: Various fixes, mostly around :since: tags
by Andrea Bolognani
The way we use :since: is awfully inconsistent. This series doesn't
try to fix everything, but takes care of at least a few low-hanging
fruits plus a bunch of odds and ends.
Abridged version, with the full one available from
https://gitlab.com/abologna/libvirt/-/commits/docs-rst-since
Andrea Bolognani (9):
docs: Format lists of files better
docs: Remove unnecessary whitespace
docs: Fix list of values
docs: Don't use "line blocks"
docs: Fix a few weird :since: tags
docs: Leave kernel version out of :since:
docs: Rewrite a few awkward sections
docs: Other fixes to :since: tags
syntax-check: Validate :since: tags
build-aux/syntax-check.mk | 5 +
docs/api_extension.rst | 27 +-
docs/bugs.rst | 14 +-
docs/drvbhyve.rst | 30 +-
docs/drvesx.rst | 19 +-
docs/drvnodedev.rst | 2 +-
docs/drvqemu.rst | 2 +-
docs/drvxen.rst | 2 +-
docs/firewall.rst | 23 +-
docs/formatcaps.rst | 8 +-
docs/formatdomain.rst | 510 ++++++++++++++++---------------
docs/formatnetwork.rst | 81 ++---
docs/formatnetworkport.rst | 2 +-
docs/formatnode.rst | 6 +-
docs/formatnwfilter.rst | 143 ++++-----
docs/formatsecret.rst | 10 +-
docs/formatsnapshot.rst | 4 +-
docs/formatstorage.rst | 29 +-
docs/formatstorageencryption.rst | 8 +-
docs/hooks.rst | 168 +++++-----
20 files changed, 563 insertions(+), 530 deletions(-)
--
2.43.2
9 months
[PATCH v2] virsh-completer: modify and fix bug in virshPoolTypeCompleter, now used for more commands
by Adam Julis
Signed-off-by: Adam Julis <ajulis(a)redhat.com>
---
v2:
- instead new completer is used already existing virshPoolTypeCompleter
- added flag VIRSH_POOL_TYPE_COMPLETER_COMMA for the completer
- fixed bug in pool-list --type command
v1:
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/K...
tools/virsh-completer-domain.h | 4 ++++
tools/virsh-completer-pool.c | 14 +++++++++-----
tools/virsh-pool.c | 3 +++
3 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/tools/virsh-completer-domain.h b/tools/virsh-completer-domain.h
index 27cf963912..fe4af07937 100644
--- a/tools/virsh-completer-domain.h
+++ b/tools/virsh-completer-domain.h
@@ -31,6 +31,10 @@ enum {
VIRSH_DOMAIN_INTERFACE_COMPLETER_MAC = 1 << 0, /* Return just MACs */
};
+enum {
+ VIRSH_POOL_TYPE_COMPLETER_COMMA = 1 << 0,
+};
+
char **
virshDomainInterfaceCompleter(vshControl *ctl,
const vshCmd *cmd,
diff --git a/tools/virsh-completer-pool.c b/tools/virsh-completer-pool.c
index 0600394411..abad0fca1b 100644
--- a/tools/virsh-completer-pool.c
+++ b/tools/virsh-completer-pool.c
@@ -93,13 +93,17 @@ virshPoolTypeCompleter(vshControl *ctl,
g_auto(GStrv) tmp = NULL;
const char *type_str = NULL;
- virCheckFlags(0, NULL);
-
- if (vshCommandOptStringQuiet(ctl, cmd, "type", &type_str) < 0)
- return NULL;
+ virCheckFlags(VIRSH_POOL_TYPE_COMPLETER_COMMA, NULL);
tmp = virshEnumComplete(VIR_STORAGE_POOL_LAST,
virStoragePoolTypeToString);
- return virshCommaStringListComplete(type_str, (const char **)tmp);
+ if (flags & VIRSH_POOL_TYPE_COMPLETER_COMMA){
+ if (vshCommandOptStringQuiet(ctl, cmd, "type", &type_str) < 0)
+ return NULL;
+
+ return virshCommaStringListComplete(type_str, (const char **)tmp);
+ }
+
+ return g_steal_pointer(&tmp);
}
diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index 36f00cf643..6936406087 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -1088,6 +1088,7 @@ static const vshCmdOptDef opts_pool_list[] = {
},
{.name = "type",
.type = VSH_OT_STRING,
+ .completer_flags = VIRSH_POOL_TYPE_COMPLETER_COMMA,
.completer = virshPoolTypeCompleter,
.help = N_("only list pool of specified type(s) (if supported)")
},
@@ -1414,6 +1415,7 @@ static const vshCmdOptDef opts_find_storage_pool_sources_as[] = {
{.name = "type",
.type = VSH_OT_DATA,
.flags = VSH_OFLAG_REQ,
+ .completer = virshPoolTypeCompleter,
.help = N_("type of storage pool sources to find")
},
{.name = "host",
@@ -1501,6 +1503,7 @@ static const vshCmdOptDef opts_find_storage_pool_sources[] = {
{.name = "type",
.type = VSH_OT_DATA,
.flags = VSH_OFLAG_REQ,
+ .completer = virshPoolTypeCompleter,
.help = N_("type of storage pool sources to discover")
},
{.name = "srcSpec",
--
2.43.0
9 months