[libvirt] [RFC PATCH 3/6] qemu: Introduce QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MPS

Andrea Bolognani abologna at redhat.com
Wed May 23 16:17:59 UTC 2018


Signed-off-by: Andrea Bolognani <abologna at redhat.com>
---
 src/qemu/qemu_capabilities.c                  |   8 +
 src/qemu/qemu_capabilities.h                  |   1 +
 .../caps_2.12.0.aarch64.replies               |  24 ++-
 .../caps_2.12.0.aarch64.xml                   |   2 +-
 .../caps_2.12.0.ppc64.replies                 | 175 +++++++++++++++++-
 .../caps_2.12.0.ppc64.xml                     |   2 +-
 .../caps_2.12.0.s390x.replies                 |  26 ++-
 .../caps_2.12.0.s390x.xml                     |   2 +-
 .../caps_2.12.0.x86_64.replies                |  30 +--
 .../caps_2.12.0.x86_64.xml                    |   2 +-
 10 files changed, 233 insertions(+), 39 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 8a63db5f4f..ab034b7693 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -489,6 +489,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
               "screendump_device",
               "hda-output",
               "blockdev-del",
+              "machine.pseries.cap-hpt-mps",
     );
 
 
@@ -1401,10 +1402,17 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMemoryBackendFile[] =
     { "discard-data", QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD },
 };
 
+static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsSPAPRMachine[] = {
+    { "cap-hpt-mps", QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MPS },
+};
+
 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 3e120e64c0..fecf966f05 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -473,6 +473,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_SCREENDUMP_DEVICE, /* screendump command accepts device & head */
     QEMU_CAPS_HDA_OUTPUT, /* -device hda-output */
     QEMU_CAPS_BLOCKDEV_DEL, /* blockdev-del is supported */
+    QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MPS, /* -machine pseries,cap-hpt-mps= */
 
     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 3ca0ea13fa..5bcbc3e9b7 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
@@ -5329,6 +5329,14 @@
   "id": "libvirt-36"
 }
 
+{
+    "id": "libvirt-37",
+    "error": {
+        "class": "DeviceNotFound",
+        "desc": "Class 'spapr-machine' not found"
+    }
+}
+
 {
   "return": [
     {
@@ -5623,7 +5631,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -5799,20 +5807,20 @@
       "static": false
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -6973,7 +6981,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -7035,7 +7043,7 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -18403,7 +18411,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -18419,7 +18427,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 0dbd354887..6efd4b4147 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
@@ -168,7 +168,7 @@
   <flag name='blockdev-del'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>343099</microcodeVersion>
+  <microcodeVersion>343234</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 1e93cd6dca..e71d69519d 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
@@ -5376,6 +5376,167 @@
   "id": "libvirt-37"
 }
 
+{
+  "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"
+}
+
 {
   "return": [
     {
@@ -5511,7 +5672,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -7707,20 +7868,20 @@
       "static": false
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -8876,7 +9037,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -8938,7 +9099,7 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -20306,7 +20467,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 9b08993b7e..eb89c6cd2d 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
@@ -165,7 +165,7 @@
   <flag name='blockdev-del'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>419968</microcodeVersion>
+  <microcodeVersion>423940</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 29c3403550..6591843515 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
@@ -3682,6 +3682,14 @@
   "id": "libvirt-36"
 }
 
+{
+    "id": "libvirt-37",
+    "error": {
+        "class": "DeviceNotFound",
+        "desc": "Class 'spapr-machine' not found"
+    }
+}
+
 {
   "return": [
     {
@@ -3737,7 +3745,7 @@
       "alias": "s390-ccw-virtio"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -4272,20 +4280,20 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -5410,7 +5418,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -5472,7 +5480,7 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -16840,7 +16848,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -16878,11 +16886,11 @@
       }
     }
   },
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
-  "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 df0f6e4eba..47aed54958 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
@@ -132,7 +132,7 @@
   <flag name='blockdev-del'/>
   <version>2012000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>371055</microcodeVersion>
+  <microcodeVersion>371190</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 c40046beef..34cd884f2c 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
@@ -4659,6 +4659,14 @@
   "id": "libvirt-40"
 }
 
+{
+    "id": "libvirt-41",
+    "error": {
+        "class": "DeviceNotFound",
+        "desc": "Class 'spapr-machine' not found"
+    }
+}
+
 {
   "return": [
     {
@@ -4855,7 +4863,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -5369,7 +5377,7 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -5377,7 +5385,7 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -5385,7 +5393,7 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -6672,7 +6680,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -6734,7 +6742,7 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -18102,7 +18110,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -18292,7 +18300,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -18547,7 +18555,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
@@ -18737,7 +18745,7 @@
       }
     }
   },
-  "id": "libvirt-50"
+  "id": "libvirt-51"
 }
 
 {
@@ -18992,7 +19000,7 @@
       }
     }
   },
-  "id": "libvirt-51"
+  "id": "libvirt-52"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
index 3c7dadffcd..7ebc894a0c 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
@@ -206,7 +206,7 @@
   <flag name='blockdev-del'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>390813</microcodeVersion>
+  <microcodeVersion>390948</microcodeVersion>
   <package>v2.12.0-rc0</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
-- 
2.17.0




More information about the libvir-list mailing list