Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 8 +
src/qemu/qemu_capabilities.h | 1 +
.../caps_2.12.0.aarch64.replies | 48 +++--
.../caps_2.12.0.aarch64.xml | 2 +-
.../caps_2.12.0.ppc64.replies | 197 ++++++++++++++++--
.../caps_2.12.0.ppc64.xml | 3 +-
.../caps_2.12.0.s390x.replies | 52 +++--
.../caps_2.12.0.s390x.xml | 2 +-
.../caps_2.12.0.x86_64.replies | 64 +++---
.../caps_2.12.0.x86_64.xml | 2 +-
10 files changed, 303 insertions(+), 76 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 419208ad5c..4c96038c94 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -500,6 +500,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
/* 310 */
"sev-guest",
+ "machine.pseries.cap-htm",
);
@@ -1428,10 +1429,17 @@ static struct virQEMUCapsStringFlags
virQEMUCapsObjectPropsMemoryBackendFile[] =
{ "discard-data", QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD },
};
+static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsSPAPRMachine[] = {
+ { "cap-htm", QEMU_CAPS_MACHINE_PSERIES_CAP_HTM },
+};
+
static virQEMUCapsObjectTypeProps virQEMUCapsObjectProps[] = {
{ "memory-backend-file", virQEMUCapsObjectPropsMemoryBackendFile,
ARRAY_CARDINALITY(virQEMUCapsObjectPropsMemoryBackendFile),
QEMU_CAPS_OBJECT_MEMORY_FILE },
+ { "spapr-machine", virQEMUCapsObjectPropsSPAPRMachine,
+ ARRAY_CARDINALITY(virQEMUCapsObjectPropsSPAPRMachine),
+ -1 },
};
static void
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 3519a194e9..78c4e280cd 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -484,6 +484,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check
*/
/* 310 */
QEMU_CAPS_SEV_GUEST, /* -object sev-guest,... */
+ QEMU_CAPS_MACHINE_PSERIES_CAP_HTM, /* -machine pseries.cap-htm */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
index e0b4f6da38..9a8e54c63d 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
@@ -5582,10 +5582,26 @@
}
{
- "execute": "query-machines",
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "spapr-machine"
+ },
"id": "libvirt-37"
}
+{
+ "id": "libvirt-37",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Class 'spapr-machine' not found"
+ }
+}
+
+{
+ "execute": "query-machines",
+ "id": "libvirt-38"
+}
+
{
"return": [
{
@@ -5880,12 +5896,12 @@
"cpu-max": 1
}
],
- "id": "libvirt-37"
+ "id": "libvirt-38"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-38"
+ "id": "libvirt-39"
}
{
@@ -6061,35 +6077,35 @@
"static": false
}
],
- "id": "libvirt-38"
+ "id": "libvirt-39"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-39"
+ "id": "libvirt-40"
}
{
"return": [
],
- "id": "libvirt-39"
+ "id": "libvirt-40"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-40"
+ "id": "libvirt-41"
}
{
"return": [
"emulator"
],
- "id": "libvirt-40"
+ "id": "libvirt-41"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-41"
+ "id": "libvirt-42"
}
{
@@ -7250,12 +7266,12 @@
"option": "drive"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-42"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-42"
+ "id": "libvirt-43"
}
{
@@ -7317,12 +7333,12 @@
"capability": "dirty-bitmaps"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-43"
}
{
"execute": "query-qmp-schema",
- "id": "libvirt-43"
+ "id": "libvirt-44"
}
{
@@ -18690,12 +18706,12 @@
"meta-type": "object"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-44"
}
{
"execute": "query-gic-capabilities",
- "id": "libvirt-44"
+ "id": "libvirt-45"
}
{
@@ -18711,7 +18727,7 @@
"kernel": false
}
],
- "id": "libvirt-44"
+ "id": "libvirt-45"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
index 5ed0290397..ecc029f403 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
@@ -171,7 +171,7 @@
<flag name='tpm-emulator'/>
<version>2011090</version>
<kvmVersion>0</kvmVersion>
- <microcodeVersion>347313</microcodeVersion>
+ <microcodeVersion>347550</microcodeVersion>
<package>v2.12.0-rc0</package>
<arch>aarch64</arch>
<cpu type='kvm' name='pxa262'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
index 1bd1baa8a8..4f819150fe 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
@@ -5637,10 +5637,179 @@
}
{
- "execute": "query-machines",
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "spapr-machine"
+ },
+ "id": "libvirt-38"
+}
+
+{
+ "return": [
+ {
+ "name": "graphics",
+ "description": "Set on/off to enable/disable graphics
emulation",
+ "type": "bool"
+ },
+ {
+ "name": "phandle-start",
+ "description": "The first phandle ID we may generate
dynamically",
+ "type": "int"
+ },
+ {
+ "name": "dump-guest-core",
+ "description": "Include guest memory in a core dump",
+ "type": "bool"
+ },
+ {
+ "name": "kernel-irqchip",
+ "description": "Configure KVM in-kernel irqchip",
+ "type": "on|off|split"
+ },
+ {
+ "name": "accel",
+ "description": "Accelerator list",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "description": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "dumpdtb",
+ "description": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "memory-encryption",
+ "description": "Set memory encyption object to use",
+ "type": "string"
+ },
+ {
+ "name": "igd-passthru",
+ "description": "Set on/off to enable/disable igd passthrou",
+ "type": "bool"
+ },
+ {
+ "name": "dt-compatible",
+ "description": "Overrides the \"compatible\" property of
the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "description": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "usb",
+ "description": "Set on/off to enable/disable usb",
+ "type": "bool"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "description": "Set on to disable self-describing migration",
+ "type": "bool"
+ },
+ {
+ "name": "dtb",
+ "description": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "firmware",
+ "description": "Firmware image",
+ "type": "string"
+ },
+ {
+ "name": "mem-merge",
+ "description": "Enable/disable memory merge support",
+ "type": "bool"
+ },
+ {
+ "name": "initrd",
+ "description": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "enforce-config-section",
+ "description": "Set on to enforce configuration section
migration",
+ "type": "bool"
+ },
+ {
+ "name": "kvm-shadow-mem",
+ "description": "KVM shadow MMU size",
+ "type": "int"
+ },
+ {
+ "name": "cap-ibs",
+ "description": "Indirect Branch Speculation (broken, fixed-ibs,
fixed-ccd)",
+ "type": "string"
+ },
+ {
+ "name": "cap-cfpc",
+ "description": "Cache Flush on Privilege Change (broken, workaround,
fixed)",
+ "type": "string"
+ },
+ {
+ "name": "cap-sbbc",
+ "description": "Speculation Barrier Bounds Checking (broken,
workaround, fixed)",
+ "type": "string"
+ },
+ {
+ "name": "cap-dfp",
+ "description": "Allow Decimal Floating Point (DFP)",
+ "type": "bool"
+ },
+ {
+ "name": "cap-htm",
+ "description": "Allow Hardware Transactional Memory (HTM)",
+ "type": "bool"
+ },
+ {
+ "name": "cap-vsx",
+ "description": "Allow Vector Scalar Extensions (VSX)",
+ "type": "bool"
+ },
+ {
+ "name": "cap-ibs",
+ "description": "Indirect Branch Speculation (broken, fixed-ibs,
fixed-ccd)",
+ "type": "string"
+ },
+ {
+ "name": "cap-cfpc",
+ "description": "Cache Flush on Privilege Change (broken, workaround,
fixed)",
+ "type": "string"
+ },
+ {
+ "name": "cap-sbbc",
+ "description": "Speculation Barrier Bounds Checking (broken,
workaround, fixed)",
+ "type": "string"
+ },
+ {
+ "name": "cap-dfp",
+ "description": "Allow Decimal Floating Point (DFP)",
+ "type": "bool"
+ },
+ {
+ "name": "cap-htm",
+ "description": "Allow Hardware Transactional Memory (HTM)",
+ "type": "bool"
+ },
+ {
+ "name": "cap-vsx",
+ "description": "Allow Vector Scalar Extensions (VSX)",
+ "type": "bool"
+ }
+ ],
"id": "libvirt-38"
}
+{
+ "execute": "query-machines",
+ "id": "libvirt-39"
+}
+
{
"return": [
{
@@ -5776,12 +5945,12 @@
"cpu-max": 1
}
],
- "id": "libvirt-38"
+ "id": "libvirt-39"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-39"
+ "id": "libvirt-40"
}
{
@@ -7977,35 +8146,35 @@
"static": false
}
],
- "id": "libvirt-39"
+ "id": "libvirt-40"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-40"
+ "id": "libvirt-41"
}
{
"return": [
],
- "id": "libvirt-40"
+ "id": "libvirt-41"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-41"
+ "id": "libvirt-42"
}
{
"return": [
"emulator"
],
- "id": "libvirt-41"
+ "id": "libvirt-42"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-42"
+ "id": "libvirt-43"
}
{
@@ -9161,12 +9330,12 @@
"option": "drive"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-43"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-43"
+ "id": "libvirt-44"
}
{
@@ -9228,12 +9397,12 @@
"capability": "dirty-bitmaps"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-44"
}
{
"execute": "query-qmp-schema",
- "id": "libvirt-44"
+ "id": "libvirt-45"
}
{
@@ -20601,7 +20770,7 @@
"meta-type": "object"
}
],
- "id": "libvirt-44"
+ "id": "libvirt-45"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
index c61029e479..7139179304 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
@@ -166,9 +166,10 @@
<flag name='vhost-vsock'/>
<flag name='chardev-fd-pass'/>
<flag name='tpm-emulator'/>
+ <flag name='machine.pseries.cap-htm'/>
<version>2011090</version>
<kvmVersion>0</kvmVersion>
- <microcodeVersion>424244</microcodeVersion>
+ <microcodeVersion>428334</microcodeVersion>
<package>v2.12.0-rc0</package>
<arch>ppc64</arch>
<cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
index fb57bcfd23..0a028a2fe6 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
@@ -3936,10 +3936,26 @@
}
{
- "execute": "query-machines",
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "spapr-machine"
+ },
"id": "libvirt-37"
}
+{
+ "id": "libvirt-37",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Class 'spapr-machine' not found"
+ }
+}
+
+{
+ "execute": "query-machines",
+ "id": "libvirt-38"
+}
+
{
"return": [
{
@@ -3995,12 +4011,12 @@
"alias": "s390-ccw-virtio"
}
],
- "id": "libvirt-37"
+ "id": "libvirt-38"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-38"
+ "id": "libvirt-39"
}
{
@@ -4535,35 +4551,35 @@
"migration-safe": true
}
],
- "id": "libvirt-38"
+ "id": "libvirt-39"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-39"
+ "id": "libvirt-40"
}
{
"return": [
],
- "id": "libvirt-39"
+ "id": "libvirt-40"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-40"
+ "id": "libvirt-41"
}
{
"return": [
"emulator"
],
- "id": "libvirt-40"
+ "id": "libvirt-41"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-41"
+ "id": "libvirt-42"
}
{
@@ -5688,12 +5704,12 @@
"option": "drive"
}
],
- "id": "libvirt-41"
+ "id": "libvirt-42"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-42"
+ "id": "libvirt-43"
}
{
@@ -5755,12 +5771,12 @@
"capability": "dirty-bitmaps"
}
],
- "id": "libvirt-42"
+ "id": "libvirt-43"
}
{
"execute": "query-qmp-schema",
- "id": "libvirt-43"
+ "id": "libvirt-44"
}
{
@@ -17128,7 +17144,7 @@
"meta-type": "object"
}
],
- "id": "libvirt-43"
+ "id": "libvirt-44"
}
{
@@ -17139,7 +17155,7 @@
"name": "host"
}
},
- "id": "libvirt-44"
+ "id": "libvirt-45"
}
{
@@ -17177,7 +17193,7 @@
}
}
},
- "id": "libvirt-44"
+ "id": "libvirt-45"
}
{
@@ -17191,11 +17207,11 @@
}
}
},
- "id": "libvirt-45"
+ "id": "libvirt-46"
}
{
- "id": "libvirt-45",
+ "id": "libvirt-46",
"error": {
"class": "GenericError",
"desc": "Property '.migratable' not found"
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
index 6fac6d6906..87d189e58d 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
@@ -135,7 +135,7 @@
<flag name='tpm-emulator'/>
<version>2012000</version>
<kvmVersion>0</kvmVersion>
- <microcodeVersion>375762</microcodeVersion>
+ <microcodeVersion>375999</microcodeVersion>
<package></package>
<arch>s390x</arch>
<hostCPU type='kvm' model='z14-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
index 73365126f1..6f37e4301e 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
@@ -4995,10 +4995,26 @@
}
{
- "execute": "query-machines",
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "spapr-machine"
+ },
"id": "libvirt-42"
}
+{
+ "id": "libvirt-42",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Class 'spapr-machine' not found"
+ }
+}
+
+{
+ "execute": "query-machines",
+ "id": "libvirt-43"
+}
+
{
"return": [
{
@@ -5195,12 +5211,12 @@
"cpu-max": 255
}
],
- "id": "libvirt-42"
+ "id": "libvirt-43"
}
{
"execute": "query-cpu-definitions",
- "id": "libvirt-43"
+ "id": "libvirt-44"
}
{
@@ -5714,12 +5730,12 @@
"migration-safe": true
}
],
- "id": "libvirt-43"
+ "id": "libvirt-44"
}
{
"execute": "query-tpm-models",
- "id": "libvirt-44"
+ "id": "libvirt-45"
}
{
@@ -5727,12 +5743,12 @@
"tpm-crb",
"tpm-tis"
],
- "id": "libvirt-44"
+ "id": "libvirt-45"
}
{
"execute": "query-tpm-types",
- "id": "libvirt-45"
+ "id": "libvirt-46"
}
{
@@ -5740,12 +5756,12 @@
"passthrough",
"emulator"
],
- "id": "libvirt-45"
+ "id": "libvirt-46"
}
{
"execute": "query-command-line-options",
- "id": "libvirt-46"
+ "id": "libvirt-47"
}
{
@@ -7032,12 +7048,12 @@
"option": "drive"
}
],
- "id": "libvirt-46"
+ "id": "libvirt-47"
}
{
"execute": "query-migrate-capabilities",
- "id": "libvirt-47"
+ "id": "libvirt-48"
}
{
@@ -7099,12 +7115,12 @@
"capability": "dirty-bitmaps"
}
],
- "id": "libvirt-47"
+ "id": "libvirt-48"
}
{
"execute": "query-qmp-schema",
- "id": "libvirt-48"
+ "id": "libvirt-49"
}
{
@@ -18472,7 +18488,7 @@
"meta-type": "object"
}
],
- "id": "libvirt-48"
+ "id": "libvirt-49"
}
{
@@ -18483,7 +18499,7 @@
"name": "host"
}
},
- "id": "libvirt-49"
+ "id": "libvirt-50"
}
{
@@ -18673,7 +18689,7 @@
}
}
},
- "id": "libvirt-49"
+ "id": "libvirt-50"
}
{
@@ -18865,7 +18881,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-51"
}
{
@@ -19120,7 +19136,7 @@
}
}
},
- "id": "libvirt-50"
+ "id": "libvirt-51"
}
{
@@ -19134,7 +19150,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-52"
}
{
@@ -19324,7 +19340,7 @@
}
}
},
- "id": "libvirt-51"
+ "id": "libvirt-52"
}
{
@@ -19516,7 +19532,7 @@
}
}
},
- "id": "libvirt-52"
+ "id": "libvirt-53"
}
{
@@ -19771,12 +19787,12 @@
}
}
},
- "id": "libvirt-52"
+ "id": "libvirt-53"
}
{
"execute": "query-sev-capabilities",
- "id": "libvirt-53"
+ "id": "libvirt-54"
}
{
@@ -19786,7 +19802,7 @@
"cert-chain":
"AQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAA",
"pdh":
"AQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAA"
},
- "id": "libvirt-52"
+ "id": "libvirt-54"
}
{
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
index 2167f06976..9c1f6c327c 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
@@ -213,7 +213,7 @@
<flag name='sev-guest'/>
<version>2011090</version>
<kvmVersion>0</kvmVersion>
- <microcodeVersion>415959</microcodeVersion>
+ <microcodeVersion>416196</microcodeVersion>
<package>v2.12.0-rc0</package>
<arch>x86_64</arch>
<hostCPU type='kvm' model='base' migratability='yes'>
--
2.17.1