Changeset
src/qemu/qemu_capabilities.c                       | 269 +++++----
src/qemu/qemu_capabilities.h                       |   1 +
src/qemu/qemu_command.c                            |   6 +
src/qemu/qemu_monitor.c                            |  21 +-
src/qemu/qemu_monitor.h                            |   5 +-
src/qemu/qemu_monitor_json.c                       |  62 ++-
src/qemu/qemu_monitor_json.h                       |   6 +-
.../qemucapabilitiesdata/caps_2.1.1.x86_64.replies |  20 +-
tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |   2 +-
.../caps_2.10.0.aarch64.replies                    |  30 +-
tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |   2 +-
.../qemucapabilitiesdata/caps_2.10.0.ppc64.replies |  28 +-
tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |   2 +-
.../qemucapabilitiesdata/caps_2.10.0.s390x.replies |  32 +-
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |   2 +-
.../caps_2.10.0.x86_64.replies                     | 540 +++++++++---------
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |   2 +-
.../qemucapabilitiesdata/caps_2.11.0.s390x.replies |  26 +-
tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |   2 +-
.../caps_2.12.0.aarch64.replies                    |  24 +-
tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |   2 +-
.../qemucapabilitiesdata/caps_2.12.0.ppc64.replies |  22 +-
tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |   2 +-
.../qemucapabilitiesdata/caps_2.12.0.s390x.replies |  24 +-
.../caps_2.12.0.x86_64.replies                     | 612 +++++++++++----------
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |   3 +-
.../qemucapabilitiesdata/caps_2.4.0.x86_64.replies |  20 +-
tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |   2 +-
.../qemucapabilitiesdata/caps_2.5.0.x86_64.replies |  22 +-
tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |   2 +-
.../caps_2.6.0.aarch64.replies                     |  30 +-
tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |   2 +-
.../qemucapabilitiesdata/caps_2.6.0.ppc64.replies  |  28 +-
tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml    |   2 +-
.../qemucapabilitiesdata/caps_2.6.0.x86_64.replies |  22 +-
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |   2 +-
.../qemucapabilitiesdata/caps_2.7.0.s390x.replies  |  28 +-
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml    |   2 +-
.../qemucapabilitiesdata/caps_2.7.0.x86_64.replies |  22 +-
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |   2 +-
.../qemucapabilitiesdata/caps_2.8.0.s390x.replies  |  32 +-
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml    |   2 +-
.../qemucapabilitiesdata/caps_2.8.0.x86_64.replies |  22 +-
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |   2 +-
.../qemucapabilitiesdata/caps_2.9.0.ppc64.replies  |  28 +-
tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml    |   2 +-
.../qemucapabilitiesdata/caps_2.9.0.s390x.replies  |  32 +-
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml    |   2 +-
.../qemucapabilitiesdata/caps_2.9.0.x86_64.replies | 536 +++++++++---------
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |   2 +-
50 files changed, 1458 insertions(+), 1135 deletions(-)
Git apply log
Switched to a new branch 'cover.1523551063.git.mprivozn@redhat.com'
Applying: qemu: Rename qemuMonitorGetObjectProps to qemuMonitorGetDeviceProps
Applying: qemu_capabilities: s/ObjectProps/DeviceProps/g
Applying: qemu_capabilities: Separate out device props fetching
Applying: qemu_monitor: Introduce qemuMonitorGetObjectProps
Applying: qemu_capabilities: Introduce QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD
Applying: tests: Update qemucapabilitiesdata
Applying: qemu: Enable memory-backend-file.discard-data whenever possible
To https://github.com/patchew-project/libvirt
 * [new tag]         patchew/cover.1523551063.git.mprivozn@redhat.com -> patchew/cover.1523551063.git.mprivozn@redhat.com
Test passed: syntax-check

loading

[libvirt] [PATCH v1 0/7] Enable memory-backend-file.discard-data
Posted by Michal Privoznik, 14 weeks ago
Qemu introduced this in 11ae6ed8affdd13. A small refactor is needed
however.

Michal Privoznik (7):
  qemu: Rename qemuMonitorGetObjectProps to qemuMonitorGetDeviceProps
  qemu_capabilities: s/ObjectProps/DeviceProps/g
  qemu_capabilities: Separate out device props fetching
  qemu_monitor: Introduce qemuMonitorGetObjectProps
  qemu_capabilities: Introduce QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD
  tests: Update qemucapabilitiesdata
  qemu: Enable memory-backend-file.discard-data whenever possible

 src/qemu/qemu_capabilities.c                       | 269 +++++----
 src/qemu/qemu_capabilities.h                       |   1 +
 src/qemu/qemu_command.c                            |   6 +
 src/qemu/qemu_monitor.c                            |  21 +-
 src/qemu/qemu_monitor.h                            |   5 +-
 src/qemu/qemu_monitor_json.c                       |  62 ++-
 src/qemu/qemu_monitor_json.h                       |   6 +-
 .../qemucapabilitiesdata/caps_2.1.1.x86_64.replies |  20 +-
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |   2 +-
 .../caps_2.10.0.aarch64.replies                    |  30 +-
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |   2 +-
 .../qemucapabilitiesdata/caps_2.10.0.ppc64.replies |  28 +-
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.10.0.s390x.replies |  32 +-
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |   2 +-
 .../caps_2.10.0.x86_64.replies                     | 540 +++++++++---------
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |   2 +-
 .../qemucapabilitiesdata/caps_2.11.0.s390x.replies |  26 +-
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |   2 +-
 .../caps_2.12.0.aarch64.replies                    |  24 +-
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |   2 +-
 .../qemucapabilitiesdata/caps_2.12.0.ppc64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.12.0.s390x.replies |  24 +-
 .../caps_2.12.0.x86_64.replies                     | 612 +++++++++++----------
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |   3 +-
 .../qemucapabilitiesdata/caps_2.4.0.x86_64.replies |  20 +-
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.5.0.x86_64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |   2 +-
 .../caps_2.6.0.aarch64.replies                     |  30 +-
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |   2 +-
 .../qemucapabilitiesdata/caps_2.6.0.ppc64.replies  |  28 +-
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.6.0.x86_64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.7.0.s390x.replies  |  28 +-
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.7.0.x86_64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.8.0.s390x.replies  |  32 +-
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.8.0.x86_64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.9.0.ppc64.replies  |  28 +-
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.9.0.s390x.replies  |  32 +-
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.9.0.x86_64.replies | 536 +++++++++---------
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |   2 +-
 50 files changed, 1458 insertions(+), 1135 deletions(-)

-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH v1 1/7] qemu: Rename qemuMonitorGetObjectProps to qemuMonitorGetDeviceProps
Posted by Michal Privoznik, 14 weeks ago
This function is indeed getting -device properties and not
-object properties. The current name is misleading.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/qemu/qemu_capabilities.c | 2 +-
 src/qemu/qemu_monitor.c      | 8 ++++----
 src/qemu/qemu_monitor.h      | 4 ++--
 src/qemu/qemu_monitor_json.c | 6 +++---
 src/qemu/qemu_monitor_json.h | 4 ++--
 5 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 27180e8509..407c3229c3 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2091,7 +2091,7 @@ virQEMUCapsProbeQMPObjects(virQEMUCapsPtr qemuCaps,
         if (cap >= 0 && !virQEMUCapsGet(qemuCaps, cap))
             continue;
 
-        if ((nvalues = qemuMonitorGetObjectProps(mon,
+        if ((nvalues = qemuMonitorGetDeviceProps(mon,
                                                  type,
                                                  &values)) < 0)
             return -1;
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 7b647525b3..8a4350f6b2 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3942,15 +3942,15 @@ qemuMonitorGetObjectTypes(qemuMonitorPtr mon,
 
 
 int
-qemuMonitorGetObjectProps(qemuMonitorPtr mon,
-                          const char *type,
+qemuMonitorGetDeviceProps(qemuMonitorPtr mon,
+                          const char *device,
                           char ***props)
 {
-    VIR_DEBUG("type=%s props=%p", type, props);
+    VIR_DEBUG("device=%s props=%p", device, props);
 
     QEMU_CHECK_MONITOR_JSON(mon);
 
-    return qemuMonitorJSONGetObjectProps(mon, type, props);
+    return qemuMonitorJSONGetDeviceProps(mon, device, props);
 }
 
 
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index d04148e568..b797ea800e 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1094,8 +1094,8 @@ int qemuMonitorGetKVMState(qemuMonitorPtr mon,
 
 int qemuMonitorGetObjectTypes(qemuMonitorPtr mon,
                               char ***types);
-int qemuMonitorGetObjectProps(qemuMonitorPtr mon,
-                              const char *type,
+int qemuMonitorGetDeviceProps(qemuMonitorPtr mon,
+                              const char *device,
                               char ***props);
 char *qemuMonitorGetTargetArch(qemuMonitorPtr mon);
 
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 57c2c4de0f..a90762a4ff 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -6033,8 +6033,8 @@ int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
 #undef MAKE_SET_CMD
 
 
-int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
-                                  const char *type,
+int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
+                                  const char *device,
                                   char ***props)
 {
     int ret = -1;
@@ -6048,7 +6048,7 @@ int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
     *props = NULL;
 
     if (!(cmd = qemuMonitorJSONMakeCommand("device-list-properties",
-                                           "s:typename", type,
+                                           "s:typename", device,
                                            NULL)))
         return -1;
 
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index 045df4919f..df91b0b5dc 100644
--- a/src/qemu/qemu_monitor_json.h
+++ b/src/qemu/qemu_monitor_json.h
@@ -441,8 +441,8 @@ int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
                                      qemuMonitorJSONObjectPropertyPtr prop)
     ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
 
-int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
-                                  const char *type,
+int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
+                                  const char *device,
                                   char ***props)
     ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
 char *qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon);
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v1 1/7] qemu: Rename qemuMonitorGetObjectProps to qemuMonitorGetDeviceProps
Posted by Peter Krempa, 13 weeks ago
On Thu, Apr 12, 2018 at 18:39:46 +0200, Michal Privoznik wrote:
> This function is indeed getting -device properties and not
> -object properties. The current name is misleading.
> 
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---

ACK
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH v1 2/7] qemu_capabilities: s/ObjectProps/DeviceProps/g
Posted by Michal Privoznik, 14 weeks ago
So far all the properties we are trying to fetch are device
properties, i.e. -device $dev on qemu command line. Change
misleading variable names to express what's queried for better.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/qemu/qemu_capabilities.c | 202 +++++++++++++++++++++----------------------
 1 file changed, 101 insertions(+), 101 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 407c3229c3..1d2110eef3 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1106,14 +1106,14 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
     { "pcie-pci-bridge", QEMU_CAPS_DEVICE_PCIE_PCI_BRIDGE },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBalloon[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioBalloon[] = {
     { "deflate-on-oom", QEMU_CAPS_VIRTIO_BALLOON_AUTODEFLATE },
     { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY },
     { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM },
     { "ats", QEMU_CAPS_VIRTIO_PCI_ATS },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioBlk[] = {
     { "bootindex", QEMU_CAPS_BOOTINDEX },
     { "ioeventfd", QEMU_CAPS_VIRTIO_IOEVENTFD },
     { "event_idx", QEMU_CAPS_VIRTIO_BLK_EVENT_IDX },
@@ -1126,7 +1126,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = {
     { "ats", QEMU_CAPS_VIRTIO_PCI_ATS },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioNet[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioNet[] = {
     { "tx", QEMU_CAPS_VIRTIO_TX_ALG },
     { "event_idx", QEMU_CAPS_VIRTIO_NET_EVENT_IDX },
     { "rx_queue_size", QEMU_CAPS_VIRTIO_NET_RX_QUEUE_SIZE },
@@ -1137,87 +1137,87 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioNet[] = {
     { "ats", QEMU_CAPS_VIRTIO_PCI_ATS },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsSpaprPCIHostBridge[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsSpaprPCIHostBridge[] = {
     { "numa_node", QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioSCSI[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioSCSI[] = {
     { "iothread", QEMU_CAPS_VIRTIO_SCSI_IOTHREAD },
     { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY },
     { "iommu_platform", QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM },
     { "ats", QEMU_CAPS_VIRTIO_PCI_ATS },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsPCIAssign[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsPCIAssign[] = {
     { "configfd", QEMU_CAPS_PCI_CONFIGFD },
     { "bootindex", QEMU_CAPS_PCI_BOOTINDEX },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVfioPCI[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVfioPCI[] = {
     { "bootindex", QEMU_CAPS_VFIO_PCI_BOOTINDEX },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsSCSIDisk[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsSCSIDisk[] = {
     { "channel", QEMU_CAPS_SCSI_DISK_CHANNEL },
     { "wwn", QEMU_CAPS_SCSI_DISK_WWN },
     { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsIDEDrive[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsIDEDrive[] = {
     { "wwn", QEMU_CAPS_IDE_DRIVE_WWN },
     { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsPiix4PM[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsPiix4PM[] = {
     { "disable_s3", QEMU_CAPS_PIIX_DISABLE_S3 },
     { "disable_s4", QEMU_CAPS_PIIX_DISABLE_S4 },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsUSBRedir[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsUSBRedir[] = {
     { "filter", QEMU_CAPS_USB_REDIR_FILTER },
     { "bootindex", QEMU_CAPS_USB_REDIR_BOOTINDEX },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsUSBHost[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsUSBHost[] = {
     { "bootindex", QEMU_CAPS_USB_HOST_BOOTINDEX },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsSCSIGeneric[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsSCSIGeneric[] = {
     { "bootindex", QEMU_CAPS_DEVICE_SCSI_GENERIC_BOOTINDEX },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsI440FXPCIHost[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsI440FXPCIHost[] = {
     { "pci-hole64-size", QEMU_CAPS_I440FX_PCI_HOLE64_SIZE },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsQ35PCIHost[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsQ35PCIHost[] = {
     { "pci-hole64-size", QEMU_CAPS_Q35_PCI_HOLE64_SIZE },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsUSBStorage[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsUSBStorage[] = {
     { "removable", QEMU_CAPS_USB_STORAGE_REMOVABLE },
     { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsKVMPit[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsKVMPit[] = {
     { "lost_tick_policy", QEMU_CAPS_KVM_PIT_TICK_POLICY },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVGA[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVGA[] = {
     { "vgamem_mb", QEMU_CAPS_VGA_VGAMEM },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVmwareSvga[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVmwareSvga[] = {
     { "vgamem_mb", QEMU_CAPS_VMWARE_SVGA_VGAMEM },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsQxl[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsQxl[] = {
     { "vgamem_mb", QEMU_CAPS_QXL_VGAMEM },
     { "vram64_size_mb", QEMU_CAPS_QXL_VRAM64 },
     { "max_outputs", QEMU_CAPS_QXL_MAX_OUTPUTS },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioGpu[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioGpu[] = {
     { "virgl", QEMU_CAPS_VIRTIO_GPU_VIRGL },
     { "max_outputs", QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS },
     { "disable-legacy", QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY },
@@ -1225,16 +1225,16 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioGpu[] = {
     { "ats", QEMU_CAPS_VIRTIO_PCI_ATS },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsICH9[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsICH9[] = {
     { "disable_s3", QEMU_CAPS_ICH9_DISABLE_S3 },
     { "disable_s4", QEMU_CAPS_ICH9_DISABLE_S4 },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsUSBNECXHCI[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsUSBNECXHCI[] = {
     { "p3", QEMU_CAPS_NEC_USB_XHCI_PORTS },
 };
 
-static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsIntelIOMMU[] = {
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsIntelIOMMU[] = {
     { "intremap", QEMU_CAPS_INTEL_IOMMU_INTREMAP },
     { "caching-mode", QEMU_CAPS_INTEL_IOMMU_CACHING_MODE },
     { "eim", QEMU_CAPS_INTEL_IOMMU_EIM },
@@ -1257,108 +1257,108 @@ struct virQEMUCapsObjectTypeProps {
     int capsCondition;
 };
 
-static struct virQEMUCapsObjectTypeProps virQEMUCapsObjectProps[] = {
-    { "virtio-blk-pci", virQEMUCapsObjectPropsVirtioBlk,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioBlk),
+static struct virQEMUCapsObjectTypeProps virQEMUCapsDeviceProps[] = {
+    { "virtio-blk-pci", virQEMUCapsDevicePropsVirtioBlk,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBlk),
       -1 },
-    { "virtio-net-pci", virQEMUCapsObjectPropsVirtioNet,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioNet),
+    { "virtio-net-pci", virQEMUCapsDevicePropsVirtioNet,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioNet),
       QEMU_CAPS_DEVICE_VIRTIO_NET },
-    { "virtio-scsi-pci", virQEMUCapsObjectPropsVirtioSCSI,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioSCSI),
+    { "virtio-scsi-pci", virQEMUCapsDevicePropsVirtioSCSI,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioSCSI),
       QEMU_CAPS_VIRTIO_SCSI },
-    { "virtio-blk-ccw", virQEMUCapsObjectPropsVirtioBlk,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioBlk),
+    { "virtio-blk-ccw", virQEMUCapsDevicePropsVirtioBlk,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBlk),
       QEMU_CAPS_VIRTIO_CCW },
-    { "virtio-net-ccw", virQEMUCapsObjectPropsVirtioNet,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioNet),
+    { "virtio-net-ccw", virQEMUCapsDevicePropsVirtioNet,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioNet),
       QEMU_CAPS_DEVICE_VIRTIO_NET },
-    { "virtio-scsi-ccw", virQEMUCapsObjectPropsVirtioSCSI,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioSCSI),
+    { "virtio-scsi-ccw", virQEMUCapsDevicePropsVirtioSCSI,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioSCSI),
       QEMU_CAPS_VIRTIO_SCSI },
-    { "virtio-blk-s390", virQEMUCapsObjectPropsVirtioBlk,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioBlk),
+    { "virtio-blk-s390", virQEMUCapsDevicePropsVirtioBlk,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBlk),
       QEMU_CAPS_VIRTIO_S390 },
-    { "virtio-net-s390", virQEMUCapsObjectPropsVirtioNet,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioNet),
+    { "virtio-net-s390", virQEMUCapsDevicePropsVirtioNet,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioNet),
       QEMU_CAPS_DEVICE_VIRTIO_NET },
-    { "pci-assign", virQEMUCapsObjectPropsPCIAssign,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsPCIAssign),
+    { "pci-assign", virQEMUCapsDevicePropsPCIAssign,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsPCIAssign),
       -1 },
-    { "kvm-pci-assign", virQEMUCapsObjectPropsPCIAssign,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsPCIAssign),
+    { "kvm-pci-assign", virQEMUCapsDevicePropsPCIAssign,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsPCIAssign),
       -1 },
-    { "vfio-pci", virQEMUCapsObjectPropsVfioPCI,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVfioPCI),
+    { "vfio-pci", virQEMUCapsDevicePropsVfioPCI,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVfioPCI),
       QEMU_CAPS_DEVICE_VFIO_PCI },
-    { "scsi-disk", virQEMUCapsObjectPropsSCSIDisk,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsSCSIDisk),
+    { "scsi-disk", virQEMUCapsDevicePropsSCSIDisk,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsSCSIDisk),
       -1 },
-    { "ide-drive", virQEMUCapsObjectPropsIDEDrive,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsIDEDrive),
+    { "ide-drive", virQEMUCapsDevicePropsIDEDrive,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsIDEDrive),
       -1 },
-    { "PIIX4_PM", virQEMUCapsObjectPropsPiix4PM,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsPiix4PM),
+    { "PIIX4_PM", virQEMUCapsDevicePropsPiix4PM,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsPiix4PM),
       -1 },
-    { "usb-redir", virQEMUCapsObjectPropsUSBRedir,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsUSBRedir),
+    { "usb-redir", virQEMUCapsDevicePropsUSBRedir,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsUSBRedir),
       QEMU_CAPS_USB_REDIR },
-    { "usb-host", virQEMUCapsObjectPropsUSBHost,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsUSBHost),
+    { "usb-host", virQEMUCapsDevicePropsUSBHost,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsUSBHost),
       -1 },
-    { "scsi-generic", virQEMUCapsObjectPropsSCSIGeneric,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsSCSIGeneric),
+    { "scsi-generic", virQEMUCapsDevicePropsSCSIGeneric,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsSCSIGeneric),
       QEMU_CAPS_DEVICE_SCSI_GENERIC },
-    { "i440FX-pcihost", virQEMUCapsObjectPropsI440FXPCIHost,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsI440FXPCIHost),
+    { "i440FX-pcihost", virQEMUCapsDevicePropsI440FXPCIHost,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsI440FXPCIHost),
       -1 },
-    { "q35-pcihost", virQEMUCapsObjectPropsQ35PCIHost,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsQ35PCIHost),
+    { "q35-pcihost", virQEMUCapsDevicePropsQ35PCIHost,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsQ35PCIHost),
       -1 },
-    { "usb-storage", virQEMUCapsObjectPropsUSBStorage,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsUSBStorage),
+    { "usb-storage", virQEMUCapsDevicePropsUSBStorage,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsUSBStorage),
       QEMU_CAPS_DEVICE_USB_STORAGE },
-    { "kvm-pit", virQEMUCapsObjectPropsKVMPit,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsKVMPit),
+    { "kvm-pit", virQEMUCapsDevicePropsKVMPit,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsKVMPit),
       -1 },
-    { "VGA", virQEMUCapsObjectPropsVGA,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVGA),
+    { "VGA", virQEMUCapsDevicePropsVGA,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVGA),
       QEMU_CAPS_DEVICE_VGA },
-    { "vmware-svga", virQEMUCapsObjectPropsVmwareSvga,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVmwareSvga),
+    { "vmware-svga", virQEMUCapsDevicePropsVmwareSvga,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVmwareSvga),
       QEMU_CAPS_DEVICE_VMWARE_SVGA },
-    { "qxl", virQEMUCapsObjectPropsQxl,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsQxl),
+    { "qxl", virQEMUCapsDevicePropsQxl,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsQxl),
       QEMU_CAPS_DEVICE_QXL },
-    { "virtio-gpu-pci", virQEMUCapsObjectPropsVirtioGpu,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioGpu),
+    { "virtio-gpu-pci", virQEMUCapsDevicePropsVirtioGpu,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioGpu),
       QEMU_CAPS_DEVICE_VIRTIO_GPU },
-    { "virtio-gpu-device", virQEMUCapsObjectPropsVirtioGpu,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioGpu),
+    { "virtio-gpu-device", virQEMUCapsDevicePropsVirtioGpu,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioGpu),
       QEMU_CAPS_DEVICE_VIRTIO_GPU },
-    { "ICH9-LPC", virQEMUCapsObjectPropsICH9,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsICH9),
+    { "ICH9-LPC", virQEMUCapsDevicePropsICH9,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsICH9),
       -1 },
-    { "virtio-balloon-pci", virQEMUCapsObjectPropsVirtioBalloon,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioBalloon),
+    { "virtio-balloon-pci", virQEMUCapsDevicePropsVirtioBalloon,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBalloon),
       -1 },
-    { "virtio-balloon-ccw", virQEMUCapsObjectPropsVirtioBalloon,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioBalloon),
+    { "virtio-balloon-ccw", virQEMUCapsDevicePropsVirtioBalloon,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBalloon),
       -1 },
-    { "virtio-balloon-device", virQEMUCapsObjectPropsVirtioBalloon,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioBalloon),
+    { "virtio-balloon-device", virQEMUCapsDevicePropsVirtioBalloon,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBalloon),
       -1 },
-    { "nec-usb-xhci", virQEMUCapsObjectPropsUSBNECXHCI,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsUSBNECXHCI),
+    { "nec-usb-xhci", virQEMUCapsDevicePropsUSBNECXHCI,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsUSBNECXHCI),
       QEMU_CAPS_NEC_USB_XHCI },
-    { "intel-iommu", virQEMUCapsObjectPropsIntelIOMMU,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsIntelIOMMU),
+    { "intel-iommu", virQEMUCapsDevicePropsIntelIOMMU,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsIntelIOMMU),
       QEMU_CAPS_DEVICE_INTEL_IOMMU },
-    { "spapr-pci-host-bridge", virQEMUCapsObjectPropsSpaprPCIHostBridge,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsSpaprPCIHostBridge),
+    { "spapr-pci-host-bridge", virQEMUCapsDevicePropsSpaprPCIHostBridge,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsSpaprPCIHostBridge),
       QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE },
-    { "virtio-gpu-ccw", virQEMUCapsObjectPropsVirtioGpu,
-      ARRAY_CARDINALITY(virQEMUCapsObjectPropsVirtioGpu),
+    { "virtio-gpu-ccw", virQEMUCapsDevicePropsVirtioGpu,
+      ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioGpu),
       QEMU_CAPS_DEVICE_VIRTIO_GPU_CCW },
 };
 
@@ -2069,7 +2069,7 @@ virQEMUCapsProbeQMPEvents(virQEMUCapsPtr qemuCaps,
 
 
 static int
-virQEMUCapsProbeQMPObjects(virQEMUCapsPtr qemuCaps,
+virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps,
                            qemuMonitorPtr mon)
 {
     int nvalues;
@@ -2084,20 +2084,20 @@ virQEMUCapsProbeQMPObjects(virQEMUCapsPtr qemuCaps,
                                   nvalues, values);
     virStringListFreeCount(values, nvalues);
 
-    for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsObjectProps); i++) {
-        const char *type = virQEMUCapsObjectProps[i].type;
-        int cap = virQEMUCapsObjectProps[i].capsCondition;
+    for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsDeviceProps); i++) {
+        const char *device = virQEMUCapsDeviceProps[i].type;
+        int cap = virQEMUCapsDeviceProps[i].capsCondition;
 
         if (cap >= 0 && !virQEMUCapsGet(qemuCaps, cap))
             continue;
 
         if ((nvalues = qemuMonitorGetDeviceProps(mon,
-                                                 type,
+                                                 device,
                                                  &values)) < 0)
             return -1;
         virQEMUCapsProcessStringFlags(qemuCaps,
-                                      virQEMUCapsObjectProps[i].nprops,
-                                      virQEMUCapsObjectProps[i].props,
+                                      virQEMUCapsDeviceProps[i].nprops,
+                                      virQEMUCapsDeviceProps[i].props,
                                       nvalues, values);
         virStringListFreeCount(values, nvalues);
     }
@@ -3874,7 +3874,7 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
 
     if (virQEMUCapsProbeQMPEvents(qemuCaps, mon) < 0)
         goto cleanup;
-    if (virQEMUCapsProbeQMPObjects(qemuCaps, mon) < 0)
+    if (virQEMUCapsProbeQMPDevices(qemuCaps, mon) < 0)
         goto cleanup;
     if (virQEMUCapsProbeQMPMachineTypes(qemuCaps, mon) < 0)
         goto cleanup;
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH v1 3/7] qemu_capabilities: Separate out device props fetching
Posted by Michal Privoznik, 14 weeks ago
The code is written generic enough to be reused. Move it into a
separate function.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/qemu/qemu_capabilities.c | 62 ++++++++++++++++++++++++++++++--------------
 1 file changed, 42 insertions(+), 20 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 1d2110eef3..2d36aeaa54 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1250,14 +1250,19 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
     { "blockdev-add/arg-type/+qcow2/encrypt/+luks/key-secret", QEMU_CAPS_QCOW2_LUKS },
 };
 
-struct virQEMUCapsObjectTypeProps {
+typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
+struct _virQEMUCapsObjectTypeProps {
     const char *type;
     struct virQEMUCapsStringFlags *props;
     size_t nprops;
     int capsCondition;
 };
 
-static struct virQEMUCapsObjectTypeProps virQEMUCapsDeviceProps[] = {
+typedef int (*virQEMUCapsObjectTypePropsCB)(qemuMonitorPtr mon,
+                                            const char *type,
+                                            char ***props);
+
+static virQEMUCapsObjectTypeProps virQEMUCapsDeviceProps[] = {
     { "virtio-blk-pci", virQEMUCapsDevicePropsVirtioBlk,
       ARRAY_CARDINALITY(virQEMUCapsDevicePropsVirtioBlk),
       -1 },
@@ -2067,6 +2072,35 @@ virQEMUCapsProbeQMPEvents(virQEMUCapsPtr qemuCaps,
     return 0;
 }
 
+static int
+virQEMUCapsProbeQMPGenericProps(virQEMUCapsPtr qemuCaps,
+                                qemuMonitorPtr mon,
+                                virQEMUCapsObjectTypeProps *props,
+                                size_t nprops,
+                                virQEMUCapsObjectTypePropsCB propsGetCB)
+{
+    int nvalues;
+    char **values;
+    size_t i;
+
+    for (i = 0; i < nprops; i++) {
+        const char *type = props[i].type;
+        int cap = props[i].capsCondition;
+
+        if (cap >= 0 && !virQEMUCapsGet(qemuCaps, cap))
+            continue;
+
+        if ((nvalues = propsGetCB(mon, type, &values)) < 0)
+            return -1;
+        virQEMUCapsProcessStringFlags(qemuCaps,
+                                      props[i].nprops,
+                                      props[i].props,
+                                      nvalues, values);
+        virStringListFreeCount(values, nvalues);
+    }
+
+    return 0;
+}
 
 static int
 virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps,
@@ -2074,7 +2108,6 @@ virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps,
 {
     int nvalues;
     char **values;
-    size_t i;
 
     if ((nvalues = qemuMonitorGetObjectTypes(mon, &values)) < 0)
         return -1;
@@ -2084,23 +2117,12 @@ virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps,
                                   nvalues, values);
     virStringListFreeCount(values, nvalues);
 
-    for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsDeviceProps); i++) {
-        const char *device = virQEMUCapsDeviceProps[i].type;
-        int cap = virQEMUCapsDeviceProps[i].capsCondition;
-
-        if (cap >= 0 && !virQEMUCapsGet(qemuCaps, cap))
-            continue;
-
-        if ((nvalues = qemuMonitorGetDeviceProps(mon,
-                                                 device,
-                                                 &values)) < 0)
-            return -1;
-        virQEMUCapsProcessStringFlags(qemuCaps,
-                                      virQEMUCapsDeviceProps[i].nprops,
-                                      virQEMUCapsDeviceProps[i].props,
-                                      nvalues, values);
-        virStringListFreeCount(values, nvalues);
-    }
+    if (virQEMUCapsProbeQMPGenericProps(qemuCaps,
+                                        mon,
+                                        virQEMUCapsDeviceProps,
+                                        ARRAY_CARDINALITY(virQEMUCapsDeviceProps),
+                                        qemuMonitorGetDeviceProps) < 0)
+        return -1;
 
     /* Prefer -chardev spicevmc (detected earlier) over -device spicevmc */
     if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_SPICEVMC))
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH v1 4/7] qemu_monitor: Introduce qemuMonitorGetObjectProps
Posted by Michal Privoznik, 14 weeks ago
Now that we've gotten rid of misleading names we can introduce
qemuMonitorGetObjectProps() function which queries -object
properties. Again, some parts of code can be reused.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/qemu/qemu_monitor.c      | 13 ++++++++++
 src/qemu/qemu_monitor.h      |  3 +++
 src/qemu/qemu_monitor_json.c | 62 ++++++++++++++++++++++++++++++++++----------
 src/qemu/qemu_monitor_json.h |  4 +++
 4 files changed, 68 insertions(+), 14 deletions(-)

diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 8a4350f6b2..278c2ec517 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3954,6 +3954,19 @@ qemuMonitorGetDeviceProps(qemuMonitorPtr mon,
 }
 
 
+int
+qemuMonitorGetObjectProps(qemuMonitorPtr mon,
+                          const char *object,
+                          char ***props)
+{
+    VIR_DEBUG("object=%s props=%p", object, props);
+
+    QEMU_CHECK_MONITOR_JSON(mon);
+
+    return qemuMonitorJSONGetObjectProps(mon, object, props);
+}
+
+
 char *
 qemuMonitorGetTargetArch(qemuMonitorPtr mon)
 {
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index b797ea800e..94620b2b76 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1097,6 +1097,9 @@ int qemuMonitorGetObjectTypes(qemuMonitorPtr mon,
 int qemuMonitorGetDeviceProps(qemuMonitorPtr mon,
                               const char *device,
                               char ***props);
+int qemuMonitorGetObjectProps(qemuMonitorPtr mon,
+                              const char *object,
+                              char ***props);
 char *qemuMonitorGetTargetArch(qemuMonitorPtr mon);
 
 int qemuMonitorNBDServerStart(qemuMonitorPtr mon,
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index a90762a4ff..31992c5bee 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -6033,29 +6033,23 @@ int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
 #undef MAKE_SET_CMD
 
 
-int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
-                                  const char *device,
-                                  char ***props)
+static int
+qemuMonitorJSONParsePropsList(qemuMonitorPtr mon,
+                              virJSONValuePtr cmd,
+                              char ***props)
 {
-    int ret = -1;
-    virJSONValuePtr cmd;
     virJSONValuePtr reply = NULL;
     virJSONValuePtr data;
     char **proplist = NULL;
     ssize_t n = 0;
     size_t i;
-
-    *props = NULL;
-
-    if (!(cmd = qemuMonitorJSONMakeCommand("device-list-properties",
-                                           "s:typename", device,
-                                           NULL)))
-        return -1;
+    int ret = -1;
 
     if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
         goto cleanup;
 
-    if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) {
+    if (qemuMonitorJSONHasError(reply, "DeviceNotFound") ||
+        qemuMonitorJSONHasError(reply, "CommandNotFound")) {
         ret = 0;
         goto cleanup;
     }
@@ -6090,12 +6084,52 @@ int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
 
  cleanup:
     virStringListFree(proplist);
-    virJSONValueFree(cmd);
     virJSONValueFree(reply);
     return ret;
 }
 
 
+int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
+                                  const char *device,
+                                  char ***props)
+{
+    int ret = -1;
+    virJSONValuePtr cmd;
+
+    *props = NULL;
+
+    if (!(cmd = qemuMonitorJSONMakeCommand("device-list-properties",
+                                           "s:typename", device,
+                                           NULL)))
+        return -1;
+
+    ret = qemuMonitorJSONParsePropsList(mon, cmd, props);
+    virJSONValueFree(cmd);
+    return ret;
+}
+
+
+int
+qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
+                              const char *object,
+                              char ***props)
+{
+    int ret = -1;
+    virJSONValuePtr cmd;
+
+    *props = NULL;
+
+    if (!(cmd = qemuMonitorJSONMakeCommand("qom-list-properties",
+                                           "s:typename", object,
+                                           NULL)))
+        return -1;
+
+    ret = qemuMonitorJSONParsePropsList(mon, cmd, props);
+    virJSONValueFree(cmd);
+    return ret;
+}
+
+
 char *
 qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon)
 {
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index df91b0b5dc..e2826ae4c6 100644
--- a/src/qemu/qemu_monitor_json.h
+++ b/src/qemu/qemu_monitor_json.h
@@ -445,6 +445,10 @@ int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
                                   const char *device,
                                   char ***props)
     ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
+int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
+                                  const char *object,
+                                  char ***props)
+    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
 char *qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon);
 
 int qemuMonitorJSONNBDServerStart(qemuMonitorPtr mon,
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH v1 5/7] qemu_capabilities: Introduce QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD
Posted by Michal Privoznik, 14 weeks ago
This capability tracks if memory-backend-file has discard-data
attribute or not.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/qemu/qemu_capabilities.c | 17 +++++++++++++++++
 src/qemu/qemu_capabilities.h |  1 +
 2 files changed, 18 insertions(+)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 2d36aeaa54..8117252789 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -468,6 +468,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
               "virtio-tablet-ccw",
               "qcow2-luks",
               "pcie-pci-bridge",
+              "memory-backend-file.discard-data",
     );
 
 
@@ -1367,6 +1368,15 @@ static virQEMUCapsObjectTypeProps virQEMUCapsDeviceProps[] = {
       QEMU_CAPS_DEVICE_VIRTIO_GPU_CCW },
 };
 
+static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMemoryBackendFile[] = {
+    { "discard-data", QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD },
+};
+
+static virQEMUCapsObjectTypeProps virQEMUCapsObjectProps[] = {
+    { "memory-backend-file", virQEMUCapsObjectPropsMemoryBackendFile,
+      ARRAY_CARDINALITY(virQEMUCapsObjectPropsMemoryBackendFile),
+      QEMU_CAPS_OBJECT_MEMORY_FILE },
+};
 
 static void
 virQEMUCapsProcessStringFlags(virQEMUCapsPtr qemuCaps,
@@ -2128,6 +2138,13 @@ virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps,
     if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_SPICEVMC))
         virQEMUCapsClear(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC);
 
+    if (virQEMUCapsProbeQMPGenericProps(qemuCaps,
+                                        mon,
+                                        virQEMUCapsObjectProps,
+                                        ARRAY_CARDINALITY(virQEMUCapsObjectProps),
+                                        qemuMonitorGetObjectProps) < 0)
+        return -1;
+
     return 0;
 }
 
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 3a8ffcd0e7..189ed45de3 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -452,6 +452,7 @@ typedef enum {
     QEMU_CAPS_DEVICE_VIRTIO_TABLET_CCW, /* -device virtio-tablet-ccw */
     QEMU_CAPS_QCOW2_LUKS, /* qcow2 format support LUKS encryption */
     QEMU_CAPS_DEVICE_PCIE_PCI_BRIDGE, /* -device pcie-pci-bridge */
+    QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD, /* -object memory-backend-dile,discard-data= */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v1 5/7] qemu_capabilities: Introduce QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD
Posted by Peter Krempa, 13 weeks ago
On Thu, Apr 12, 2018 at 18:39:50 +0200, Michal Privoznik wrote:
> This capability tracks if memory-backend-file has discard-data
> attribute or not.

Neither this nor the next commit mention that they need to be squashed
together. Since tests are broken otherwise, you really need to do that.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH v1 6/7] tests: Update qemucapabilitiesdata
Posted by Michal Privoznik, 14 weeks ago
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 .../qemucapabilitiesdata/caps_2.1.1.x86_64.replies |  20 +-
 tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml   |   2 +-
 .../caps_2.10.0.aarch64.replies                    |  30 +-
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml |   2 +-
 .../qemucapabilitiesdata/caps_2.10.0.ppc64.replies |  28 +-
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.10.0.s390x.replies |  32 +-
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   |   2 +-
 .../caps_2.10.0.x86_64.replies                     | 540 +++++++++---------
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |   2 +-
 .../qemucapabilitiesdata/caps_2.11.0.s390x.replies |  26 +-
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml   |   2 +-
 .../caps_2.12.0.aarch64.replies                    |  24 +-
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml |   2 +-
 .../qemucapabilitiesdata/caps_2.12.0.ppc64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.12.0.s390x.replies |  24 +-
 .../caps_2.12.0.x86_64.replies                     | 612 +++++++++++----------
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml  |   3 +-
 .../qemucapabilitiesdata/caps_2.4.0.x86_64.replies |  20 +-
 tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.5.0.x86_64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml   |   2 +-
 .../caps_2.6.0.aarch64.replies                     |  30 +-
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml  |   2 +-
 .../qemucapabilitiesdata/caps_2.6.0.ppc64.replies  |  28 +-
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.6.0.x86_64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.7.0.s390x.replies  |  28 +-
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.7.0.x86_64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.8.0.s390x.replies  |  32 +-
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.8.0.x86_64.replies |  22 +-
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |   2 +-
 .../qemucapabilitiesdata/caps_2.9.0.ppc64.replies  |  28 +-
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.9.0.s390x.replies  |  32 +-
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.9.0.x86_64.replies | 536 +++++++++---------
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |   2 +-
 43 files changed, 1223 insertions(+), 1000 deletions(-)

diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies
index 543bce9def..eeb5dd2582 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies
@@ -2523,6 +2523,14 @@
   "id": "libvirt-36"
 }
 
+{
+    "id": "libvirt-37",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -2625,7 +2633,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -2706,21 +2714,21 @@
       "name": "qemu64"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -3580,7 +3588,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -3602,7 +3610,7 @@
       "capability": "zero-blocks"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index ca98ee14db..bc82624335 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -160,7 +160,7 @@
   <flag name='isa-serial'/>
   <version>2001001</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>58992</microcodeVersion>
+  <microcodeVersion>59147</microcodeVersion>
   <package></package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='Opteron_G5'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
index 11171d5b3f..8fc07248c3 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
@@ -4948,6 +4948,14 @@
   "id": "libvirt-35"
 }
 
+{
+    "id": "libvirt-36",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -5212,7 +5220,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -5378,12 +5386,6 @@
       "static": false
     }
   ],
-  "id": "libvirt-37"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-38"
 }
 
@@ -5393,6 +5395,12 @@
   "id": "libvirt-39"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-40"
+}
+
 {
   "return": [
     {
@@ -6535,7 +6543,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -6585,7 +6593,7 @@
       "capability": "return-path"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -16308,7 +16316,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -16324,7 +16332,7 @@
       "kernel": true
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index 1b3080a788..2d28d89cb5 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
@@ -183,7 +183,7 @@
   <flag name='qcow2-luks'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>303541</microcodeVersion>
+  <microcodeVersion>303696</microcodeVersion>
   <package> (v2.10.0)</package>
   <arch>aarch64</arch>
   <cpu type='kvm' name='pxa262'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies
index 980f8ecc11..72dbc07c0e 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies
@@ -5135,6 +5135,14 @@
   "id": "libvirt-36"
 }
 
+{
+    "id": "libvirt-37",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -5250,7 +5258,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -7426,12 +7434,6 @@
       "static": false
     }
   ],
-  "id": "libvirt-38"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-39"
 }
 
@@ -7441,6 +7443,12 @@
   "id": "libvirt-40"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-41"
+}
+
 {
   "return": [
     {
@@ -8578,7 +8586,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -8628,7 +8636,7 @@
       "capability": "return-path"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -18351,7 +18359,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
index 3f518f9207..60df4c97e3 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
@@ -182,7 +182,7 @@
   <flag name='qcow2-luks'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>382824</microcodeVersion>
+  <microcodeVersion>382979</microcodeVersion>
   <package> (v2.10.0)</package>
   <arch>ppc64</arch>
   <cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
index 534756f0b3..4e43cc44c6 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
@@ -3402,6 +3402,14 @@
   "id": "libvirt-33"
 }
 
+{
+    "id": "libvirt-34",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3447,7 +3455,7 @@
       "cpu-max": 248
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -3981,12 +3989,6 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-35"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-36"
 }
 
@@ -3996,6 +3998,12 @@
   "id": "libvirt-37"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-38"
+}
+
 {
   "return": [
     {
@@ -5098,7 +5106,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -5148,7 +5156,7 @@
       "capability": "return-path"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -14871,7 +14879,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -14911,11 +14919,11 @@
       }
     }
   },
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
-  "id": "libvirt-42",
+  "id": "libvirt-43",
   "error": {
     "class": "GenericError",
     "desc": "Property '.migratable' not found"
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
index b1b6d66c67..b5a0701c47 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
@@ -143,7 +143,7 @@
   <flag name='qcow2-luks'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>303326</microcodeVersion>
+  <microcodeVersion>303481</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='z14-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
index 6c6ecc2687..8606336fe2 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
@@ -4471,6 +4471,14 @@
   "id": "libvirt-39"
 }
 
+{
+    "id": "libvirt-40",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -4657,7 +4665,7 @@
       "alias": "q35"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -4992,21 +5000,21 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -6285,7 +6293,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -6335,7 +6343,7 @@
       "capability": "return-path"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -16058,185 +16066,6 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-46"
-}
-
-{
-  "return": {
-    "model": {
-      "name": "base",
-      "props": {
-        "cmov": true,
-        "ia64": false,
-        "aes": true,
-        "mmx": true,
-        "rdpid": false,
-        "arat": true,
-        "pause-filter": false,
-        "xsavec": false,
-        "osxsave": false,
-        "kvm-asyncpf": true,
-        "perfctr-core": false,
-        "mpx": false,
-        "pbe": false,
-        "avx512cd": false,
-        "decodeassists": false,
-        "sse4.1": true,
-        "family": 6,
-        "avx512f": false,
-        "msr": true,
-        "mce": true,
-        "mca": true,
-        "xcrypt": false,
-        "min-level": 13,
-        "xgetbv1": false,
-        "cid": false,
-        "ds": false,
-        "fxsr": true,
-        "xsaveopt": true,
-        "xtpr": false,
-        "avx512vl": false,
-        "avx512-vpopcntdq": false,
-        "phe": false,
-        "extapic": false,
-        "3dnowprefetch": false,
-        "cr8legacy": false,
-        "xcrypt-en": false,
-        "pn": false,
-        "dca": false,
-        "vendor": "GenuineIntel",
-        "pku": false,
-        "smx": false,
-        "cmp-legacy": false,
-        "avx512-4fmaps": false,
-        "vmcb-clean": false,
-        "hle": false,
-        "3dnowext": false,
-        "npt": false,
-        "clwb": false,
-        "lbrv": false,
-        "adx": false,
-        "ss": true,
-        "pni": true,
-        "svm-lock": false,
-        "smep": true,
-        "smap": false,
-        "pfthreshold": false,
-        "x2apic": true,
-        "avx512vbmi": false,
-        "flushbyasid": false,
-        "f16c": true,
-        "ace2-en": false,
-        "pae": true,
-        "pat": true,
-        "sse": true,
-        "phe-en": false,
-        "kvm-nopiodelay": true,
-        "tm": false,
-        "kvmclock-stable-bit": true,
-        "hypervisor": true,
-        "pcommit": false,
-        "syscall": true,
-        "avx512dq": false,
-        "svm": false,
-        "invtsc": false,
-        "sse2": true,
-        "est": false,
-        "avx512ifma": false,
-        "tm2": false,
-        "kvm-pv-eoi": true,
-        "cx8": true,
-        "kvm-mmu": false,
-        "sse4.2": true,
-        "pge": true,
-        "pdcm": false,
-        "model": 60,
-        "movbe": true,
-        "nrip-save": false,
-        "ssse3": true,
-        "sse4a": false,
-        "invpcid": true,
-        "pdpe1gb": true,
-        "tsc-deadline": true,
-        "fma": true,
-        "cx16": true,
-        "de": true,
-        "stepping": 3,
-        "xsave": true,
-        "clflush": true,
-        "skinit": false,
-        "tsc": true,
-        "tce": false,
-        "fpu": true,
-        "ds-cpl": false,
-        "ibs": false,
-        "fma4": false,
-        "la57": false,
-        "osvw": false,
-        "apic": true,
-        "pmm": false,
-        "tsc-adjust": true,
-        "kvm-steal-time": true,
-        "kvmclock": true,
-        "lwp": false,
-        "xop": false,
-        "avx": true,
-        "ospke": false,
-        "acpi": false,
-        "avx512bw": false,
-        "ace2": false,
-        "fsgsbase": true,
-        "ht": false,
-        "nx": true,
-        "pclmulqdq": true,
-        "mmxext": false,
-        "popcnt": true,
-        "xsaves": false,
-        "lm": true,
-        "umip": false,
-        "pse": true,
-        "avx2": true,
-        "sep": true,
-        "nodeid-msr": false,
-        "misalignsse": false,
-        "min-xlevel": 2147483656,
-        "bmi1": true,
-        "bmi2": true,
-        "kvm-pv-unhalt": true,
-        "tsc-scale": false,
-        "topoext": false,
-        "clflushopt": false,
-        "monitor": false,
-        "avx512er": false,
-        "pmm-en": false,
-        "pcid": true,
-        "3dnow": false,
-        "erms": true,
-        "lahf-lm": true,
-        "fxsr-opt": false,
-        "xstore": false,
-        "rtm": false,
-        "lmce": true,
-        "perfctr-nb": false,
-        "rdrand": true,
-        "rdseed": false,
-        "avx512-4vnniw": false,
-        "vme": true,
-        "vmx": true,
-        "dtes64": false,
-        "mtrr": true,
-        "rdtscp": true,
-        "pse36": true,
-        "tbm": false,
-        "wdt": false,
-        "model-id": "Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz",
-        "sha-ni": false,
-        "abm": true,
-        "avx512pf": false,
-        "xstore-en": false
-      }
-    }
-  },
   "id": "libvirt-47"
 }
 
@@ -16245,111 +16074,80 @@
     "model": {
       "name": "base",
       "props": {
-        "phys-bits": 0,
-        "core-id": -1,
-        "xlevel": 2147483656,
         "cmov": true,
         "ia64": false,
         "aes": true,
         "mmx": true,
-        "arat": true,
         "rdpid": false,
+        "arat": true,
         "pause-filter": false,
         "xsavec": false,
         "osxsave": false,
-        "tsc-frequency": 0,
-        "xd": true,
-        "hv-vendor-id": "",
         "kvm-asyncpf": true,
-        "kvm_asyncpf": true,
-        "perfctr_core": false,
         "perfctr-core": false,
         "mpx": false,
+        "pbe": false,
         "avx512cd": false,
         "decodeassists": false,
-        "pbe": false,
-        "sse4_1": true,
         "sse4.1": true,
-        "sse4-1": true,
         "family": 6,
-        "vmware-cpuid-freq": true,
         "avx512f": false,
-        "xcrypt": false,
-        "hv-runtime": false,
         "msr": true,
         "mce": true,
         "mca": true,
-        "thread-id": -1,
+        "xcrypt": false,
         "min-level": 13,
         "xgetbv1": false,
         "cid": false,
-        "hv-relaxed": false,
-        "fxsr": true,
         "ds": false,
-        "hv-crash": false,
+        "fxsr": true,
         "xsaveopt": true,
         "xtpr": false,
+        "avx512vl": false,
         "avx512-vpopcntdq": false,
         "phe": false,
-        "avx512vl": false,
         "extapic": false,
         "3dnowprefetch": false,
         "cr8legacy": false,
-        "cpuid-0xb": true,
         "xcrypt-en": false,
-        "kvm_pv_eoi": true,
-        "apic-id": 4294967295,
         "pn": false,
         "dca": false,
         "vendor": "GenuineIntel",
         "pku": false,
         "smx": false,
         "cmp-legacy": false,
-        "cmp_legacy": false,
-        "node-id": -1,
         "avx512-4fmaps": false,
         "vmcb-clean": false,
-        "vmcb_clean": false,
-        "3dnowext": false,
         "hle": false,
+        "3dnowext": false,
         "npt": false,
-        "memory": "/machine/unattached/system[0]",
         "clwb": false,
         "lbrv": false,
         "adx": false,
         "ss": true,
         "pni": true,
-        "svm_lock": false,
         "svm-lock": false,
         "smep": true,
-        "pfthreshold": false,
         "smap": false,
+        "pfthreshold": false,
         "x2apic": true,
         "avx512vbmi": false,
-        "hv-stimer": false,
-        "i64": true,
         "flushbyasid": false,
         "f16c": true,
         "ace2-en": false,
-        "pat": true,
         "pae": true,
+        "pat": true,
         "sse": true,
         "phe-en": false,
         "kvm-nopiodelay": true,
-        "kvm_nopiodelay": true,
         "tm": false,
         "kvmclock-stable-bit": true,
         "hypervisor": true,
-        "socket-id": -1,
         "pcommit": false,
         "syscall": true,
-        "level": 13,
         "avx512dq": false,
         "svm": false,
-        "full-cpuid-auto-level": true,
-        "hv-reset": false,
         "invtsc": false,
-        "sse3": true,
         "sse2": true,
         "est": false,
         "avx512ifma": false,
@@ -16357,62 +16155,44 @@
         "kvm-pv-eoi": true,
         "cx8": true,
         "kvm-mmu": false,
-        "kvm_mmu": false,
-        "sse4_2": true,
         "sse4.2": true,
-        "sse4-2": true,
         "pge": true,
-        "fill-mtrr-mask": true,
         "pdcm": false,
-        "nodeid_msr": false,
         "model": 60,
         "movbe": true,
         "nrip-save": false,
-        "nrip_save": false,
-        "sse4a": false,
         "ssse3": true,
-        "kvm_pv_unhalt": true,
+        "sse4a": false,
         "invpcid": true,
         "pdpe1gb": true,
         "tsc-deadline": true,
         "fma": true,
         "cx16": true,
         "de": true,
-        "enforce": false,
         "stepping": 3,
         "xsave": true,
         "clflush": true,
         "skinit": false,
-        "tce": false,
         "tsc": true,
+        "tce": false,
         "fpu": true,
         "ds-cpl": false,
-        "ds_cpl": false,
         "ibs": false,
-        "host-phys-bits": false,
         "fma4": false,
         "la57": false,
         "osvw": false,
-        "check": true,
-        "hv-spinlocks": -1,
-        "pmm": false,
         "apic": true,
-        "pmu": false,
-        "min-xlevel2": 0,
+        "pmm": false,
         "tsc-adjust": true,
-        "tsc_adjust": true,
         "kvm-steal-time": true,
-        "kvm_steal_time": true,
         "kvmclock": true,
-        "l3-cache": true,
         "lwp": false,
         "xop": false,
         "avx": true,
         "ospke": false,
-        "ace2": false,
         "acpi": false,
         "avx512bw": false,
-        "hv-vapic": false,
+        "ace2": false,
         "fsgsbase": true,
         "ht": false,
         "nx": true,
@@ -16420,28 +16200,20 @@
         "mmxext": false,
         "popcnt": true,
         "xsaves": false,
-        "tcg-cpuid": true,
         "lm": true,
         "umip": false,
-        "avx2": true,
         "pse": true,
+        "avx2": true,
         "sep": true,
-        "pclmuldq": true,
         "nodeid-msr": false,
-        "kvm": true,
         "misalignsse": false,
         "min-xlevel": 2147483656,
-        "bmi2": true,
         "bmi1": true,
+        "bmi2": true,
         "kvm-pv-unhalt": true,
-        "realized": false,
-        "tsc_scale": false,
         "tsc-scale": false,
         "topoext": false,
-        "hv-vpindex": false,
-        "xlevel2": 0,
         "clflushopt": false,
-        "kvm-no-smi-migration": false,
         "monitor": false,
         "avx512er": false,
         "pmm-en": false,
@@ -16449,17 +16221,11 @@
         "3dnow": false,
         "erms": true,
         "lahf-lm": true,
-        "lahf_lm": true,
-        "xstore": false,
-        "hv-synic": false,
         "fxsr-opt": false,
-        "fxsr_opt": false,
+        "xstore": false,
         "rtm": false,
         "lmce": true,
-        "hv-time": false,
         "perfctr-nb": false,
-        "perfctr_nb": false,
-        "ffxsr": false,
         "rdrand": true,
         "rdseed": false,
         "avx512-4vnniw": false,
@@ -16471,7 +16237,6 @@
         "pse36": true,
         "tbm": false,
         "wdt": false,
-        "pause_filter": false,
         "model-id": "Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz",
         "sha-ni": false,
         "abm": true,
@@ -16483,6 +16248,249 @@
   "id": "libvirt-48"
 }
 
+{
+  "return": {
+    "model": {
+      "name": "base",
+      "props": {
+        "phys-bits": 0,
+        "core-id": -1,
+        "xlevel": 2147483656,
+        "cmov": true,
+        "ia64": false,
+        "aes": true,
+        "mmx": true,
+        "arat": true,
+        "rdpid": false,
+        "pause-filter": false,
+        "xsavec": false,
+        "osxsave": false,
+        "tsc-frequency": 0,
+        "xd": true,
+        "hv-vendor-id": "",
+        "kvm-asyncpf": true,
+        "kvm_asyncpf": true,
+        "perfctr_core": false,
+        "perfctr-core": false,
+        "mpx": false,
+        "avx512cd": false,
+        "decodeassists": false,
+        "pbe": false,
+        "sse4_1": true,
+        "sse4.1": true,
+        "sse4-1": true,
+        "family": 6,
+        "vmware-cpuid-freq": true,
+        "avx512f": false,
+        "xcrypt": false,
+        "hv-runtime": false,
+        "msr": true,
+        "mce": true,
+        "mca": true,
+        "thread-id": -1,
+        "min-level": 13,
+        "xgetbv1": false,
+        "cid": false,
+        "hv-relaxed": false,
+        "fxsr": true,
+        "ds": false,
+        "hv-crash": false,
+        "xsaveopt": true,
+        "xtpr": false,
+        "avx512-vpopcntdq": false,
+        "phe": false,
+        "avx512vl": false,
+        "extapic": false,
+        "3dnowprefetch": false,
+        "cr8legacy": false,
+        "cpuid-0xb": true,
+        "xcrypt-en": false,
+        "kvm_pv_eoi": true,
+        "apic-id": 4294967295,
+        "pn": false,
+        "dca": false,
+        "vendor": "GenuineIntel",
+        "pku": false,
+        "smx": false,
+        "cmp-legacy": false,
+        "cmp_legacy": false,
+        "node-id": -1,
+        "avx512-4fmaps": false,
+        "vmcb-clean": false,
+        "vmcb_clean": false,
+        "3dnowext": false,
+        "hle": false,
+        "npt": false,
+        "memory": "/machine/unattached/system[0]",
+        "clwb": false,
+        "lbrv": false,
+        "adx": false,
+        "ss": true,
+        "pni": true,
+        "svm_lock": false,
+        "svm-lock": false,
+        "smep": true,
+        "pfthreshold": false,
+        "smap": false,
+        "x2apic": true,
+        "avx512vbmi": false,
+        "hv-stimer": false,
+        "i64": true,
+        "flushbyasid": false,
+        "f16c": true,
+        "ace2-en": false,
+        "pat": true,
+        "pae": true,
+        "sse": true,
+        "phe-en": false,
+        "kvm-nopiodelay": true,
+        "kvm_nopiodelay": true,
+        "tm": false,
+        "kvmclock-stable-bit": true,
+        "hypervisor": true,
+        "socket-id": -1,
+        "pcommit": false,
+        "syscall": true,
+        "level": 13,
+        "avx512dq": false,
+        "svm": false,
+        "full-cpuid-auto-level": true,
+        "hv-reset": false,
+        "invtsc": false,
+        "sse3": true,
+        "sse2": true,
+        "est": false,
+        "avx512ifma": false,
+        "tm2": false,
+        "kvm-pv-eoi": true,
+        "cx8": true,
+        "kvm-mmu": false,
+        "kvm_mmu": false,
+        "sse4_2": true,
+        "sse4.2": true,
+        "sse4-2": true,
+        "pge": true,
+        "fill-mtrr-mask": true,
+        "pdcm": false,
+        "nodeid_msr": false,
+        "model": 60,
+        "movbe": true,
+        "nrip-save": false,
+        "nrip_save": false,
+        "sse4a": false,
+        "ssse3": true,
+        "kvm_pv_unhalt": true,
+        "invpcid": true,
+        "pdpe1gb": true,
+        "tsc-deadline": true,
+        "fma": true,
+        "cx16": true,
+        "de": true,
+        "enforce": false,
+        "stepping": 3,
+        "xsave": true,
+        "clflush": true,
+        "skinit": false,
+        "tce": false,
+        "tsc": true,
+        "fpu": true,
+        "ds-cpl": false,
+        "ds_cpl": false,
+        "ibs": false,
+        "host-phys-bits": false,
+        "fma4": false,
+        "la57": false,
+        "osvw": false,
+        "check": true,
+        "hv-spinlocks": -1,
+        "pmm": false,
+        "apic": true,
+        "pmu": false,
+        "min-xlevel2": 0,
+        "tsc-adjust": true,
+        "tsc_adjust": true,
+        "kvm-steal-time": true,
+        "kvm_steal_time": true,
+        "kvmclock": true,
+        "l3-cache": true,
+        "lwp": false,
+        "xop": false,
+        "avx": true,
+        "ospke": false,
+        "ace2": false,
+        "acpi": false,
+        "avx512bw": false,
+        "hv-vapic": false,
+        "fsgsbase": true,
+        "ht": false,
+        "nx": true,
+        "pclmulqdq": true,
+        "mmxext": false,
+        "popcnt": true,
+        "xsaves": false,
+        "tcg-cpuid": true,
+        "lm": true,
+        "umip": false,
+        "avx2": true,
+        "pse": true,
+        "sep": true,
+        "pclmuldq": true,
+        "nodeid-msr": false,
+        "kvm": true,
+        "misalignsse": false,
+        "min-xlevel": 2147483656,
+        "bmi2": true,
+        "bmi1": true,
+        "kvm-pv-unhalt": true,
+        "realized": false,
+        "tsc_scale": false,
+        "tsc-scale": false,
+        "topoext": false,
+        "hv-vpindex": false,
+        "xlevel2": 0,
+        "clflushopt": false,
+        "kvm-no-smi-migration": false,
+        "monitor": false,
+        "avx512er": false,
+        "pmm-en": false,
+        "pcid": true,
+        "3dnow": false,
+        "erms": true,
+        "lahf-lm": true,
+        "lahf_lm": true,
+        "xstore": false,
+        "hv-synic": false,
+        "fxsr-opt": false,
+        "fxsr_opt": false,
+        "rtm": false,
+        "lmce": true,
+        "hv-time": false,
+        "perfctr-nb": false,
+        "perfctr_nb": false,
+        "ffxsr": false,
+        "rdrand": true,
+        "rdseed": false,
+        "avx512-4vnniw": false,
+        "vme": true,
+        "vmx": true,
+        "dtes64": false,
+        "mtrr": true,
+        "rdtscp": true,
+        "pse36": true,
+        "tbm": false,
+        "wdt": false,
+        "pause_filter": false,
+        "model-id": "Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz",
+        "sha-ni": false,
+        "abm": true,
+        "avx512pf": false,
+        "xstore-en": false
+      }
+    }
+  },
+  "id": "libvirt-49"
+}
+
 {
   "return": {
     "model": {
@@ -16659,7 +16667,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
@@ -16902,7 +16910,7 @@
       }
     }
   },
-  "id": "libvirt-50"
+  "id": "libvirt-51"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
index cad21498e1..6ec971a33a 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
@@ -226,7 +226,7 @@
   <flag name='qcow2-luks'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>344938</microcodeVersion>
+  <microcodeVersion>345093</microcodeVersion>
   <package> (v2.10.0)</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
index 2de256009e..ee64b5b81d 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
@@ -3521,6 +3521,14 @@
   "id": "libvirt-34"
 }
 
+{
+    "id": "libvirt-35",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3571,7 +3579,7 @@
       "cpu-max": 248
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -4105,20 +4113,20 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -5239,7 +5247,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -5297,7 +5305,7 @@
       "capability": "x-multifd"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -15165,7 +15173,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -15204,11 +15212,11 @@
       }
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
-  "id": "libvirt-43",
+  "id": "libvirt-44",
   "error": {
     "class": "GenericError",
     "desc": "Property '.migratable' not found"
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
index 3a77b04d4f..ccc9e599a5 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
@@ -147,7 +147,7 @@
   <flag name='qcow2-luks'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>342058</microcodeVersion>
+  <microcodeVersion>342213</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='z14-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
index 3512d88b67..0dd0c4eb04 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
@@ -5275,6 +5275,14 @@
   "id": "libvirt-35"
 }
 
+{
+    "id": "libvirt-36",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -5569,7 +5577,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -5745,20 +5753,20 @@
       "static": false
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -6919,7 +6927,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -6981,7 +6989,7 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -18349,7 +18357,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -18365,7 +18373,7 @@
       "kernel": false
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
index b9c589e092..63e3f891c3 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
@@ -185,7 +185,7 @@
   <flag name='pcie-pci-bridge'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>342346</microcodeVersion>
+  <microcodeVersion>342501</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 2166b34973..e1e8863f39 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
@@ -5322,6 +5322,14 @@
   "id": "libvirt-36"
 }
 
+{
+    "id": "libvirt-37",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -5457,7 +5465,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -7653,20 +7661,20 @@
       "static": false
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -8822,7 +8830,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -8884,7 +8892,7 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -20252,7 +20260,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
index 8094139624..455b6441b4 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
@@ -182,7 +182,7 @@
   <flag name='qcow2-luks'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>419215</microcodeVersion>
+  <microcodeVersion>419370</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 c4e44c6d0f..3c1832800b 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
@@ -3614,6 +3614,14 @@
   "id": "libvirt-34"
 }
 
+{
+    "id": "libvirt-35",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3669,7 +3677,7 @@
       "alias": "s390-ccw-virtio"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -6324,20 +6332,20 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -7493,7 +7501,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -7555,7 +7563,7 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -18923,11 +18931,11 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
-  "id": "libvirt-42",
+  "id": "libvirt-43",
   "error": {
     "class": "GenericError",
     "desc": "The CPU definition 'max' is unknown."
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
index c086e04afd..c40046beef 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
@@ -4605,6 +4605,60 @@
   "id": "libvirt-39"
 }
 
+{
+  "return": [
+    {
+      "name": "policy",
+      "type": "HostMemPolicy"
+    },
+    {
+      "name": "dump",
+      "type": "bool"
+    },
+    {
+      "name": "share",
+      "type": "bool"
+    },
+    {
+      "name": "prealloc",
+      "type": "bool"
+    },
+    {
+      "name": "size",
+      "type": "int"
+    },
+    {
+      "name": "host-nodes",
+      "type": "int"
+    },
+    {
+      "name": "id",
+      "type": "string"
+    },
+    {
+      "name": "merge",
+      "type": "bool"
+    },
+    {
+      "name": "align",
+      "type": "int"
+    },
+    {
+      "name": "mem-path",
+      "type": "string"
+    },
+    {
+      "name": "discard-data",
+      "type": "bool"
+    },
+    {
+      "name": "type",
+      "type": "string"
+    }
+  ],
+  "id": "libvirt-40"
+}
+
 {
   "return": [
     {
@@ -4801,7 +4855,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -5315,7 +5369,7 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -5323,7 +5377,7 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -5331,7 +5385,7 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -6618,7 +6672,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -6680,7 +6734,7 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -18048,196 +18102,6 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-46"
-}
-
-{
-  "return": {
-    "model": {
-      "name": "base",
-      "props": {
-        "cmov": true,
-        "ia64": false,
-        "aes": true,
-        "mmx": true,
-        "rdpid": false,
-        "arat": true,
-        "gfni": false,
-        "pause-filter": false,
-        "xsavec": false,
-        "intel-pt": false,
-        "osxsave": false,
-        "kvm-asyncpf": true,
-        "perfctr-core": false,
-        "mpx": false,
-        "pbe": false,
-        "avx512cd": false,
-        "decodeassists": false,
-        "sse4.1": true,
-        "family": 6,
-        "avx512f": false,
-        "msr": true,
-        "mce": true,
-        "mca": true,
-        "xcrypt": false,
-        "min-level": 13,
-        "xgetbv1": false,
-        "cid": false,
-        "ds": false,
-        "fxsr": true,
-        "xsaveopt": true,
-        "xtpr": false,
-        "avx512vl": false,
-        "avx512-vpopcntdq": false,
-        "phe": false,
-        "extapic": false,
-        "3dnowprefetch": false,
-        "avx512vbmi2": false,
-        "cr8legacy": false,
-        "xcrypt-en": false,
-        "pn": false,
-        "dca": false,
-        "vendor": "GenuineIntel",
-        "pku": false,
-        "smx": false,
-        "cmp-legacy": false,
-        "avx512-4fmaps": false,
-        "vmcb-clean": false,
-        "hle": false,
-        "3dnowext": false,
-        "npt": false,
-        "clwb": false,
-        "lbrv": false,
-        "adx": false,
-        "ss": true,
-        "pni": true,
-        "svm-lock": false,
-        "smep": true,
-        "smap": false,
-        "pfthreshold": false,
-        "x2apic": true,
-        "avx512vbmi": false,
-        "avx512vnni": false,
-        "flushbyasid": false,
-        "f16c": true,
-        "ace2-en": false,
-        "pae": true,
-        "pat": true,
-        "sse": true,
-        "phe-en": false,
-        "kvm-nopiodelay": true,
-        "tm": false,
-        "kvmclock-stable-bit": true,
-        "hypervisor": true,
-        "pcommit": false,
-        "syscall": true,
-        "avx512dq": false,
-        "svm": false,
-        "invtsc": false,
-        "sse2": true,
-        "est": false,
-        "avx512ifma": false,
-        "tm2": false,
-        "kvm-pv-eoi": true,
-        "cx8": true,
-        "kvm-mmu": false,
-        "sse4.2": true,
-        "pge": true,
-        "avx512bitalg": false,
-        "pdcm": false,
-        "model": 63,
-        "movbe": true,
-        "nrip-save": false,
-        "ssse3": true,
-        "sse4a": false,
-        "invpcid": true,
-        "pdpe1gb": true,
-        "tsc-deadline": true,
-        "fma": true,
-        "cx16": true,
-        "de": true,
-        "stepping": 2,
-        "xsave": true,
-        "clflush": true,
-        "skinit": false,
-        "tsc": true,
-        "tce": false,
-        "fpu": true,
-        "ds-cpl": false,
-        "ibs": false,
-        "fma4": false,
-        "la57": false,
-        "osvw": false,
-        "apic": true,
-        "pmm": false,
-        "spec-ctrl": false,
-        "tsc-adjust": true,
-        "kvm-steal-time": true,
-        "kvmclock": true,
-        "lwp": false,
-        "xop": false,
-        "ibpb": false,
-        "avx": true,
-        "ospke": false,
-        "acpi": false,
-        "avx512bw": false,
-        "ace2": false,
-        "fsgsbase": true,
-        "ht": false,
-        "nx": true,
-        "pclmulqdq": true,
-        "mmxext": false,
-        "popcnt": true,
-        "vaes": false,
-        "xsaves": false,
-        "lm": true,
-        "umip": false,
-        "pse": true,
-        "avx2": true,
-        "sep": true,
-        "nodeid-msr": false,
-        "misalignsse": false,
-        "min-xlevel": 2147483656,
-        "bmi1": true,
-        "bmi2": true,
-        "kvm-pv-unhalt": true,
-        "tsc-scale": false,
-        "topoext": false,
-        "clflushopt": false,
-        "monitor": false,
-        "avx512er": false,
-        "pmm-en": false,
-        "pcid": true,
-        "3dnow": false,
-        "erms": true,
-        "lahf-lm": true,
-        "vpclmulqdq": false,
-        "fxsr-opt": false,
-        "xstore": false,
-        "rtm": false,
-        "kvm-hint-dedicated": true,
-        "lmce": true,
-        "perfctr-nb": false,
-        "rdrand": true,
-        "rdseed": false,
-        "avx512-4vnniw": false,
-        "vme": true,
-        "vmx": false,
-        "dtes64": false,
-        "mtrr": true,
-        "rdtscp": true,
-        "pse36": true,
-        "kvm-pv-tlb-flush": false,
-        "tbm": false,
-        "wdt": false,
-        "model-id": "Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz",
-        "sha-ni": false,
-        "abm": true,
-        "avx512pf": false,
-        "xstore-en": false
-      }
-    }
-  },
   "id": "libvirt-47"
 }
 
@@ -18246,9 +18110,6 @@
     "model": {
       "name": "base",
       "props": {
-        "phys-bits": 0,
-        "core-id": -1,
-        "xlevel": 2147483656,
         "cmov": true,
         "ia64": false,
         "aes": true,
@@ -18260,34 +18121,22 @@
         "xsavec": false,
         "intel-pt": false,
         "osxsave": false,
-        "tsc-frequency": 0,
-        "xd": true,
-        "hv-vendor-id": "",
         "kvm-asyncpf": true,
-        "kvm_asyncpf": true,
-        "perfctr_core": false,
         "perfctr-core": false,
         "mpx": false,
         "pbe": false,
-        "decodeassists": false,
         "avx512cd": false,
-        "sse4_1": true,
+        "decodeassists": false,
         "sse4.1": true,
-        "sse4-1": true,
         "family": 6,
-        "vmware-cpuid-freq": true,
         "avx512f": false,
         "msr": true,
         "mce": true,
         "mca": true,
-        "hv-runtime": false,
         "xcrypt": false,
-        "thread-id": -1,
         "min-level": 13,
         "xgetbv1": false,
         "cid": false,
-        "hv-relaxed": false,
-        "hv-crash": false,
         "ds": false,
         "fxsr": true,
         "xsaveopt": true,
@@ -18299,83 +18148,60 @@
         "3dnowprefetch": false,
         "avx512vbmi2": false,
         "cr8legacy": false,
-        "cpuid-0xb": true,
         "xcrypt-en": false,
-        "kvm_pv_eoi": true,
-        "apic-id": 4294967295,
         "pn": false,
         "dca": false,
         "vendor": "GenuineIntel",
         "pku": false,
         "smx": false,
-        "cmp_legacy": false,
         "cmp-legacy": false,
-        "node-id": -1,
         "avx512-4fmaps": false,
-        "vmcb_clean": false,
         "vmcb-clean": false,
-        "3dnowext": false,
         "hle": false,
+        "3dnowext": false,
         "npt": false,
-        "memory": "/machine/unattached/system[0]",
         "clwb": false,
         "lbrv": false,
         "adx": false,
         "ss": true,
         "pni": true,
-        "svm_lock": false,
         "svm-lock": false,
-        "pfthreshold": false,
         "smep": true,
         "smap": false,
+        "pfthreshold": false,
         "x2apic": true,
         "avx512vbmi": false,
         "avx512vnni": false,
-        "hv-stimer": false,
-        "i64": true,
         "flushbyasid": false,
         "f16c": true,
         "ace2-en": false,
-        "pat": true,
         "pae": true,
+        "pat": true,
         "sse": true,
         "phe-en": false,
-        "kvm_nopiodelay": true,
         "kvm-nopiodelay": true,
         "tm": false,
         "kvmclock-stable-bit": true,
         "hypervisor": true,
-        "socket-id": -1,
         "pcommit": false,
         "syscall": true,
-        "level": 13,
         "avx512dq": false,
         "svm": false,
-        "full-cpuid-auto-level": true,
-        "hv-reset": false,
         "invtsc": false,
-        "sse3": true,
         "sse2": true,
         "est": false,
         "avx512ifma": false,
         "tm2": false,
         "kvm-pv-eoi": true,
         "cx8": true,
-        "kvm_mmu": false,
         "kvm-mmu": false,
-        "sse4_2": true,
         "sse4.2": true,
-        "sse4-2": true,
         "pge": true,
-        "fill-mtrr-mask": true,
         "avx512bitalg": false,
-        "nodeid_msr": false,
         "pdcm": false,
-        "movbe": true,
         "model": 63,
-        "nrip_save": false,
+        "movbe": true,
         "nrip-save": false,
-        "kvm_pv_unhalt": true,
         "ssse3": true,
         "sse4a": false,
         "invpcid": true,
@@ -18384,7 +18210,6 @@
         "fma": true,
         "cx16": true,
         "de": true,
-        "enforce": false,
         "stepping": 2,
         "xsave": true,
         "clflush": true,
@@ -18392,66 +18217,47 @@
         "tsc": true,
         "tce": false,
         "fpu": true,
-        "ibs": false,
-        "ds_cpl": false,
         "ds-cpl": false,
-        "host-phys-bits": false,
+        "ibs": false,
         "fma4": false,
         "la57": false,
         "osvw": false,
-        "check": true,
-        "hv-spinlocks": -1,
-        "pmu": false,
-        "pmm": false,
         "apic": true,
+        "pmm": false,
         "spec-ctrl": false,
-        "min-xlevel2": 0,
         "tsc-adjust": true,
-        "tsc_adjust": true,
         "kvm-steal-time": true,
-        "kvm_steal_time": true,
         "kvmclock": true,
-        "l3-cache": true,
         "lwp": false,
-        "ibpb": false,
         "xop": false,
+        "ibpb": false,
         "avx": true,
         "ospke": false,
-        "ace2": false,
-        "avx512bw": false,
         "acpi": false,
-        "hv-vapic": false,
+        "avx512bw": false,
+        "ace2": false,
         "fsgsbase": true,
         "ht": false,
         "nx": true,
         "pclmulqdq": true,
         "mmxext": false,
-        "vaes": false,
         "popcnt": true,
+        "vaes": false,
         "xsaves": false,
-        "tcg-cpuid": true,
         "lm": true,
         "umip": false,
         "pse": true,
         "avx2": true,
         "sep": true,
-        "pclmuldq": true,
-        "x-hv-max-vps": -1,
         "nodeid-msr": false,
-        "kvm": true,
         "misalignsse": false,
         "min-xlevel": 2147483656,
-        "kvm-pv-unhalt": true,
-        "bmi2": true,
         "bmi1": true,
-        "realized": false,
-        "tsc_scale": false,
+        "bmi2": true,
+        "kvm-pv-unhalt": true,
         "tsc-scale": false,
         "topoext": false,
-        "hv-vpindex": false,
-        "xlevel2": 0,
         "clflushopt": false,
-        "kvm-no-smi-migration": false,
         "monitor": false,
         "avx512er": false,
         "pmm-en": false,
@@ -18459,24 +18265,18 @@
         "3dnow": false,
         "erms": true,
         "lahf-lm": true,
-        "lahf_lm": true,
         "vpclmulqdq": false,
         "fxsr-opt": false,
-        "hv-synic": false,
         "xstore": false,
-        "fxsr_opt": false,
-        "kvm-hint-dedicated": true,
         "rtm": false,
+        "kvm-hint-dedicated": true,
         "lmce": true,
-        "hv-time": false,
         "perfctr-nb": false,
-        "perfctr_nb": false,
-        "ffxsr": false,
         "rdrand": true,
         "rdseed": false,
         "avx512-4vnniw": false,
-        "vmx": false,
         "vme": true,
+        "vmx": false,
         "dtes64": false,
         "mtrr": true,
         "rdtscp": true,
@@ -18484,9 +18284,8 @@
         "kvm-pv-tlb-flush": false,
         "tbm": false,
         "wdt": false,
-        "pause_filter": false,
-        "sha-ni": false,
         "model-id": "Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz",
+        "sha-ni": false,
         "abm": true,
         "avx512pf": false,
         "xstore-en": false
@@ -18496,6 +18295,261 @@
   "id": "libvirt-48"
 }
 
+{
+  "return": {
+    "model": {
+      "name": "base",
+      "props": {
+        "phys-bits": 0,
+        "core-id": -1,
+        "xlevel": 2147483656,
+        "cmov": true,
+        "ia64": false,
+        "aes": true,
+        "mmx": true,
+        "rdpid": false,
+        "arat": true,
+        "gfni": false,
+        "pause-filter": false,
+        "xsavec": false,
+        "intel-pt": false,
+        "osxsave": false,
+        "tsc-frequency": 0,
+        "xd": true,
+        "hv-vendor-id": "",
+        "kvm-asyncpf": true,
+        "kvm_asyncpf": true,
+        "perfctr_core": false,
+        "perfctr-core": false,
+        "mpx": false,
+        "pbe": false,
+        "decodeassists": false,
+        "avx512cd": false,
+        "sse4_1": true,
+        "sse4.1": true,
+        "sse4-1": true,
+        "family": 6,
+        "vmware-cpuid-freq": true,
+        "avx512f": false,
+        "msr": true,
+        "mce": true,
+        "mca": true,
+        "hv-runtime": false,
+        "xcrypt": false,
+        "thread-id": -1,
+        "min-level": 13,
+        "xgetbv1": false,
+        "cid": false,
+        "hv-relaxed": false,
+        "hv-crash": false,
+        "ds": false,
+        "fxsr": true,
+        "xsaveopt": true,
+        "xtpr": false,
+        "avx512vl": false,
+        "avx512-vpopcntdq": false,
+        "phe": false,
+        "extapic": false,
+        "3dnowprefetch": false,
+        "avx512vbmi2": false,
+        "cr8legacy": false,
+        "cpuid-0xb": true,
+        "xcrypt-en": false,
+        "kvm_pv_eoi": true,
+        "apic-id": 4294967295,
+        "pn": false,
+        "dca": false,
+        "vendor": "GenuineIntel",
+        "pku": false,
+        "smx": false,
+        "cmp_legacy": false,
+        "cmp-legacy": false,
+        "node-id": -1,
+        "avx512-4fmaps": false,
+        "vmcb_clean": false,
+        "vmcb-clean": false,
+        "3dnowext": false,
+        "hle": false,
+        "npt": false,
+        "memory": "/machine/unattached/system[0]",
+        "clwb": false,
+        "lbrv": false,
+        "adx": false,
+        "ss": true,
+        "pni": true,
+        "svm_lock": false,
+        "svm-lock": false,
+        "pfthreshold": false,
+        "smep": true,
+        "smap": false,
+        "x2apic": true,
+        "avx512vbmi": false,
+        "avx512vnni": false,
+        "hv-stimer": false,
+        "i64": true,
+        "flushbyasid": false,
+        "f16c": true,
+        "ace2-en": false,
+        "pat": true,
+        "pae": true,
+        "sse": true,
+        "phe-en": false,
+        "kvm_nopiodelay": true,
+        "kvm-nopiodelay": true,
+        "tm": false,
+        "kvmclock-stable-bit": true,
+        "hypervisor": true,
+        "socket-id": -1,
+        "pcommit": false,
+        "syscall": true,
+        "level": 13,
+        "avx512dq": false,
+        "svm": false,
+        "full-cpuid-auto-level": true,
+        "hv-reset": false,
+        "invtsc": false,
+        "sse3": true,
+        "sse2": true,
+        "est": false,
+        "avx512ifma": false,
+        "tm2": false,
+        "kvm-pv-eoi": true,
+        "cx8": true,
+        "kvm_mmu": false,
+        "kvm-mmu": false,
+        "sse4_2": true,
+        "sse4.2": true,
+        "sse4-2": true,
+        "pge": true,
+        "fill-mtrr-mask": true,
+        "avx512bitalg": false,
+        "nodeid_msr": false,
+        "pdcm": false,
+        "movbe": true,
+        "model": 63,
+        "nrip_save": false,
+        "nrip-save": false,
+        "kvm_pv_unhalt": true,
+        "ssse3": true,
+        "sse4a": false,
+        "invpcid": true,
+        "pdpe1gb": true,
+        "tsc-deadline": true,
+        "fma": true,
+        "cx16": true,
+        "de": true,
+        "enforce": false,
+        "stepping": 2,
+        "xsave": true,
+        "clflush": true,
+        "skinit": false,
+        "tsc": true,
+        "tce": false,
+        "fpu": true,
+        "ibs": false,
+        "ds_cpl": false,
+        "ds-cpl": false,
+        "host-phys-bits": false,
+        "fma4": false,
+        "la57": false,
+        "osvw": false,
+        "check": true,
+        "hv-spinlocks": -1,
+        "pmu": false,
+        "pmm": false,
+        "apic": true,
+        "spec-ctrl": false,
+        "min-xlevel2": 0,
+        "tsc-adjust": true,
+        "tsc_adjust": true,
+        "kvm-steal-time": true,
+        "kvm_steal_time": true,
+        "kvmclock": true,
+        "l3-cache": true,
+        "lwp": false,
+        "ibpb": false,
+        "xop": false,
+        "avx": true,
+        "ospke": false,
+        "ace2": false,
+        "avx512bw": false,
+        "acpi": false,
+        "hv-vapic": false,
+        "fsgsbase": true,
+        "ht": false,
+        "nx": true,
+        "pclmulqdq": true,
+        "mmxext": false,
+        "vaes": false,
+        "popcnt": true,
+        "xsaves": false,
+        "tcg-cpuid": true,
+        "lm": true,
+        "umip": false,
+        "pse": true,
+        "avx2": true,
+        "sep": true,
+        "pclmuldq": true,
+        "x-hv-max-vps": -1,
+        "nodeid-msr": false,
+        "kvm": true,
+        "misalignsse": false,
+        "min-xlevel": 2147483656,
+        "kvm-pv-unhalt": true,
+        "bmi2": true,
+        "bmi1": true,
+        "realized": false,
+        "tsc_scale": false,
+        "tsc-scale": false,
+        "topoext": false,
+        "hv-vpindex": false,
+        "xlevel2": 0,
+        "clflushopt": false,
+        "kvm-no-smi-migration": false,
+        "monitor": false,
+        "avx512er": false,
+        "pmm-en": false,
+        "pcid": true,
+        "3dnow": false,
+        "erms": true,
+        "lahf-lm": true,
+        "lahf_lm": true,
+        "vpclmulqdq": false,
+        "fxsr-opt": false,
+        "hv-synic": false,
+        "xstore": false,
+        "fxsr_opt": false,
+        "kvm-hint-dedicated": true,
+        "rtm": false,
+        "lmce": true,
+        "hv-time": false,
+        "perfctr-nb": false,
+        "perfctr_nb": false,
+        "ffxsr": false,
+        "rdrand": true,
+        "rdseed": false,
+        "avx512-4vnniw": false,
+        "vmx": false,
+        "vme": true,
+        "dtes64": false,
+        "mtrr": true,
+        "rdtscp": true,
+        "pse36": true,
+        "kvm-pv-tlb-flush": false,
+        "tbm": false,
+        "wdt": false,
+        "pause_filter": false,
+        "sha-ni": false,
+        "model-id": "Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz",
+        "abm": true,
+        "avx512pf": false,
+        "xstore-en": false
+      }
+    }
+  },
+  "id": "libvirt-49"
+}
+
 {
   "return": {
     "model": {
@@ -18683,7 +18737,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
@@ -18938,7 +18992,7 @@
       }
     }
   },
-  "id": "libvirt-50"
+  "id": "libvirt-51"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
index 9d477f7fec..aec866d1ae 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
@@ -221,9 +221,10 @@
   <flag name='dump-completed'/>
   <flag name='qcow2-luks'/>
   <flag name='pcie-pci-bridge'/>
+  <flag name='memory-backend-file.discard-data'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>390060</microcodeVersion>
+  <microcodeVersion>390813</microcodeVersion>
   <package>v2.12.0-rc0</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies
index 68ecb0c17d..b11dcc4421 100644
--- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies
@@ -3114,6 +3114,14 @@
   "id": "libvirt-39"
 }
 
+{
+    "id": "libvirt-40",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3240,7 +3248,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -3330,21 +3338,21 @@
       "name": "qemu64"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -4352,7 +4360,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -4382,7 +4390,7 @@
       "capability": "events"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
index a94a47ee5d..1ae2f31ea0 100644
--- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
@@ -185,7 +185,7 @@
   <flag name='isa-serial'/>
   <version>2004000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>75406</microcodeVersion>
+  <microcodeVersion>75561</microcodeVersion>
   <package></package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='Opteron_G5'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies
index 5bc505abb3..e2012d0e3b 100644
--- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies
@@ -3277,6 +3277,14 @@
   "id": "libvirt-39"
 }
 
+{
+    "id": "libvirt-40",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3411,7 +3419,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -3501,21 +3509,21 @@
       "name": "qemu64"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -4560,7 +4568,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -4594,7 +4602,7 @@
       "capability": "x-postcopy-ram"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -12139,7 +12147,7 @@
       "meta-type": "array"
     }
   ],
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
index 7576e0b1dd..58a9289375 100644
--- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
@@ -191,7 +191,7 @@
   <flag name='isa-serial'/>
   <version>2005000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>216528</microcodeVersion>
+  <microcodeVersion>216683</microcodeVersion>
   <package></package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='Opteron_G5'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies
index 0ec7193b09..b3aecdcf5a 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies
@@ -3619,6 +3619,14 @@
   "id": "libvirt-35"
 }
 
+{
+    "id": "libvirt-36",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3791,7 +3799,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -3890,12 +3898,6 @@
       "name": "pxa270"
     }
   ],
-  "id": "libvirt-37"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-38"
 }
 
@@ -3905,6 +3907,12 @@
   "id": "libvirt-39"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-40"
+}
+
 {
   "return": [
     {
@@ -4874,7 +4882,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -4908,7 +4916,7 @@
       "capability": "postcopy-ram"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -12913,7 +12921,7 @@
       "meta-type": "array"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -12929,7 +12937,7 @@
       "kernel": true
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
index 34bc3919ea..de809b0213 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
@@ -171,7 +171,7 @@
   <flag name='dump-completed'/>
   <version>2006000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>228241</microcodeVersion>
+  <microcodeVersion>228396</microcodeVersion>
   <package></package>
   <arch>aarch64</arch>
   <cpu type='kvm' name='pxa262'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies
index d4a893bb4d..5eddbbab71 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies
@@ -3815,6 +3815,14 @@
   "id": "libvirt-36"
 }
 
+{
+    "id": "libvirt-37",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3884,7 +3892,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -5186,12 +5194,6 @@
       "name": "MPC8541E_v11"
     }
   ],
-  "id": "libvirt-38"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-39"
 }
 
@@ -5201,6 +5203,12 @@
   "id": "libvirt-40"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-41"
+}
+
 {
   "return": [
     {
@@ -6165,7 +6173,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -6199,7 +6207,7 @@
       "capability": "postcopy-ram"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -14204,7 +14212,7 @@
       "meta-type": "array"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
index 9ae59448ba..7b9d0ed479 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
@@ -166,7 +166,7 @@
   <flag name='dump-completed'/>
   <version>2006000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>263005</microcodeVersion>
+  <microcodeVersion>263160</microcodeVersion>
   <package></package>
   <arch>ppc64</arch>
   <cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies
index 73a22ed0bb..c4cc9fdb7a 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies
@@ -3359,6 +3359,14 @@
   "id": "libvirt-39"
 }
 
+{
+    "id": "libvirt-40",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3469,7 +3477,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -3559,21 +3567,21 @@
       "name": "qemu64"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -4667,7 +4675,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -4701,7 +4709,7 @@
       "capability": "postcopy-ram"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -12706,7 +12714,7 @@
       "meta-type": "array"
     }
   ],
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
index 748b5ebc56..3bd327e783 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
@@ -202,7 +202,7 @@
   <flag name='dump-completed'/>
   <version>2006000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>227332</microcodeVersion>
+  <microcodeVersion>227487</microcodeVersion>
   <package></package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='Opteron_G5'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies
index 61fbd9a667..a8491bed7a 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies
@@ -2547,6 +2547,14 @@
   "id": "libvirt-33"
 }
 
+{
+    "id": "libvirt-34",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -2577,7 +2585,7 @@
       "cpu-max": 248
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -2586,12 +2594,6 @@
       "name": "host"
     }
   ],
-  "id": "libvirt-35"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-36"
 }
 
@@ -2601,6 +2603,12 @@
   "id": "libvirt-37"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-38"
+}
+
 {
   "return": [
     {
@@ -3534,7 +3542,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -3568,7 +3576,7 @@
       "capability": "postcopy-ram"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -11924,7 +11932,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
index c35cade3df..19a74bf7be 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
@@ -133,7 +133,7 @@
   <flag name='dump-completed'/>
   <version>2007000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>216732</microcodeVersion>
+  <microcodeVersion>216887</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <cpu type='kvm' name='host'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies
index eaa84d3381..2a34dc5ca8 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies
@@ -3554,6 +3554,14 @@
   "id": "libvirt-39"
 }
 
+{
+    "id": "libvirt-40",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3700,7 +3708,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -3793,21 +3801,21 @@
       "name": "qemu64"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -4905,7 +4913,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -4939,7 +4947,7 @@
       "capability": "postcopy-ram"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -13295,7 +13303,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
index b9e5b31108..158b0c0b3c 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
@@ -206,7 +206,7 @@
   <flag name='dump-completed'/>
   <version>2007000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>239029</microcodeVersion>
+  <microcodeVersion>239184</microcodeVersion>
   <package> (v2.7.0)</package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='Opteron_G5'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
index 818118caf2..f9bb30e734 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
@@ -2820,6 +2820,14 @@
   "id": "libvirt-33"
 }
 
+{
+    "id": "libvirt-34",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -2855,7 +2863,7 @@
       "alias": "s390-ccw-virtio"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -3181,12 +3189,6 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-35"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-36"
 }
 
@@ -3196,6 +3198,12 @@
   "id": "libvirt-37"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-38"
+}
+
 {
   "return": [
     {
@@ -4154,7 +4162,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -4192,7 +4200,7 @@
       "capability": "x-colo"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -12962,7 +12970,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -12988,11 +12996,11 @@
       }
     }
   },
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
-  "id": "libvirt-42",
+  "id": "libvirt-43",
   "error": {
     "class": "GenericError",
     "desc": "Property '.migratable' not found"
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
index 82d7dd7916..1c28b8957a 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
@@ -135,7 +135,7 @@
   <flag name='dump-completed'/>
   <version>2007093</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>241633</microcodeVersion>
+  <microcodeVersion>241788</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='zEC12.2-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies
index 30d28c7b5f..965848eff2 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies
@@ -3696,6 +3696,14 @@
   "id": "libvirt-39"
 }
 
+{
+    "id": "libvirt-40",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3862,7 +3870,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -4068,21 +4076,21 @@
       "static": false
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -5205,7 +5213,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -5243,7 +5251,7 @@
       "capability": "x-colo"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -14013,7 +14021,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
index 2cdd492316..f80562ced5 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
@@ -208,7 +208,7 @@
   <flag name='dump-completed'/>
   <version>2008000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>255684</microcodeVersion>
+  <microcodeVersion>255839</microcodeVersion>
   <package> (v2.8.0)</package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='host' usable='yes'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies
index f367da8d2b..2783fa3673 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies
@@ -4317,6 +4317,14 @@
   "id": "libvirt-36"
 }
 
+{
+    "id": "libvirt-37",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -4427,7 +4435,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -6603,12 +6611,6 @@
       "static": false
     }
   ],
-  "id": "libvirt-38"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-39"
 }
 
@@ -6618,6 +6620,12 @@
   "id": "libvirt-40"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-41"
+}
+
 {
   "return": [
     {
@@ -7725,7 +7733,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -7767,7 +7775,7 @@
       "capability": "release-ram"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -17053,7 +17061,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
index 7c8973ae05..d053f7760d 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
@@ -174,7 +174,7 @@
   <flag name='dump-completed'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>346538</microcodeVersion>
+  <microcodeVersion>346693</microcodeVersion>
   <package> (v2.9.0)</package>
   <arch>ppc64</arch>
   <cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies
index cbacec6d02..d59fafd776 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies
@@ -3101,6 +3101,14 @@
   "id": "libvirt-33"
 }
 
+{
+    "id": "libvirt-34",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -3141,7 +3149,7 @@
       "cpu-max": 248
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -3531,12 +3539,6 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-35"
-}
-
-{
-  "return": [
-  ],
   "id": "libvirt-36"
 }
 
@@ -3546,6 +3548,12 @@
   "id": "libvirt-37"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-38"
+}
+
 {
   "return": [
     {
@@ -4618,7 +4626,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -4660,7 +4668,7 @@
       "capability": "release-ram"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -13946,7 +13954,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -13973,11 +13981,11 @@
       }
     }
   },
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
-  "id": "libvirt-42",
+  "id": "libvirt-43",
   "error": {
     "class": "GenericError",
     "desc": "Property '.migratable' not found"
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
index d99924f996..dc16ba8b22 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
@@ -138,7 +138,7 @@
   <flag name='dump-completed'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>265051</microcodeVersion>
+  <microcodeVersion>265206</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='z13.2-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
index 5da1b41c2e..287b754425 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
@@ -4015,6 +4015,14 @@
   "id": "libvirt-39"
 }
 
+{
+    "id": "libvirt-40",
+    "error": {
+        "class": "CommandNotFound",
+        "desc": "The command qom-list-properties has not been found"
+    }
+}
+
 {
   "return": [
     {
@@ -4191,7 +4199,7 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -4473,21 +4481,21 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -5736,7 +5744,7 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -5778,7 +5786,7 @@
       "capability": "release-ram"
     }
   ],
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -15064,185 +15072,6 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-46"
-}
-
-{
-  "return": {
-    "model": {
-      "name": "base",
-      "props": {
-        "cmov": true,
-        "ia64": false,
-        "aes": true,
-        "mmx": true,
-        "rdpid": false,
-        "arat": true,
-        "pause-filter": false,
-        "xsavec": true,
-        "osxsave": false,
-        "kvm-asyncpf": true,
-        "perfctr-core": false,
-        "mpx": true,
-        "pbe": false,
-        "avx512cd": false,
-        "decodeassists": false,
-        "sse4.1": true,
-        "family": 6,
-        "avx512f": false,
-        "msr": true,
-        "mce": true,
-        "mca": true,
-        "xcrypt": false,
-        "min-level": 13,
-        "xgetbv1": true,
-        "cid": false,
-        "ds": false,
-        "fxsr": true,
-        "xsaveopt": true,
-        "xtpr": false,
-        "avx512vl": false,
-        "avx512-vpopcntdq": false,
-        "phe": false,
-        "extapic": false,
-        "3dnowprefetch": true,
-        "cr8legacy": false,
-        "xcrypt-en": false,
-        "pn": false,
-        "dca": false,
-        "vendor": "GenuineIntel",
-        "pku": false,
-        "smx": false,
-        "cmp-legacy": false,
-        "avx512-4fmaps": false,
-        "vmcb-clean": false,
-        "hle": true,
-        "3dnowext": false,
-        "npt": false,
-        "clwb": false,
-        "lbrv": false,
-        "adx": true,
-        "ss": true,
-        "pni": true,
-        "svm-lock": false,
-        "smep": true,
-        "smap": true,
-        "pfthreshold": false,
-        "x2apic": true,
-        "avx512vbmi": false,
-        "flushbyasid": false,
-        "f16c": true,
-        "ace2-en": false,
-        "pae": true,
-        "pat": true,
-        "sse": true,
-        "phe-en": false,
-        "kvm-nopiodelay": true,
-        "tm": false,
-        "kvmclock-stable-bit": true,
-        "hypervisor": true,
-        "pcommit": false,
-        "syscall": true,
-        "avx512dq": false,
-        "svm": false,
-        "invtsc": false,
-        "sse2": true,
-        "est": false,
-        "avx512ifma": false,
-        "tm2": false,
-        "kvm-pv-eoi": true,
-        "cx8": true,
-        "kvm-mmu": false,
-        "sse4.2": true,
-        "pge": true,
-        "pdcm": false,
-        "model": 94,
-        "movbe": true,
-        "nrip-save": false,
-        "ssse3": true,
-        "sse4a": false,
-        "invpcid": true,
-        "pdpe1gb": true,
-        "tsc-deadline": true,
-        "fma": true,
-        "cx16": true,
-        "de": true,
-        "stepping": 3,
-        "xsave": true,
-        "clflush": true,
-        "skinit": false,
-        "tsc": true,
-        "tce": false,
-        "fpu": true,
-        "ds-cpl": false,
-        "ibs": false,
-        "fma4": false,
-        "la57": false,
-        "osvw": false,
-        "apic": true,
-        "pmm": false,
-        "tsc-adjust": true,
-        "kvm-steal-time": true,
-        "kvmclock": true,
-        "lwp": false,
-        "xop": false,
-        "avx": true,
-        "ospke": false,
-        "acpi": false,
-        "avx512bw": false,
-        "ace2": false,
-        "fsgsbase": true,
-        "ht": false,
-        "nx": true,
-        "pclmulqdq": true,
-        "mmxext": false,
-        "popcnt": true,
-        "xsaves": true,
-        "lm": true,
-        "umip": false,
-        "pse": true,
-        "avx2": true,
-        "sep": true,
-        "nodeid-msr": false,
-        "misalignsse": false,
-        "min-xlevel": 2147483656,
-        "bmi1": true,
-        "bmi2": true,
-        "kvm-pv-unhalt": true,
-        "tsc-scale": false,
-        "topoext": false,
-        "clflushopt": true,
-        "monitor": false,
-        "avx512er": false,
-        "pmm-en": false,
-        "pcid": true,
-        "3dnow": false,
-        "erms": true,
-        "lahf-lm": true,
-        "fxsr-opt": false,
-        "xstore": false,
-        "rtm": true,
-        "lmce": true,
-        "perfctr-nb": false,
-        "rdrand": true,
-        "rdseed": true,
-        "avx512-4vnniw": false,
-        "vme": true,
-        "vmx": true,
-        "dtes64": false,
-        "mtrr": true,
-        "rdtscp": true,
-        "pse36": true,
-        "tbm": false,
-        "wdt": false,
-        "model-id": "Intel(R) Xeon(R) CPU E3-1245 v5 @ 3.50GHz",
-        "sha-ni": false,
-        "abm": true,
-        "avx512pf": false,
-        "xstore-en": false
-      }
-    }
-  },
   "id": "libvirt-47"
 }
 
@@ -15251,110 +15080,80 @@
     "model": {
       "name": "base",
       "props": {
-        "phys-bits": 0,
-        "core-id": -1,
-        "xlevel": 2147483656,
         "cmov": true,
         "ia64": false,
         "aes": true,
         "mmx": true,
-        "arat": true,
         "rdpid": false,
+        "arat": true,
         "pause-filter": false,
         "xsavec": true,
         "osxsave": false,
-        "tsc-frequency": 0,
-        "xd": true,
-        "hv-vendor-id": "",
         "kvm-asyncpf": true,
-        "kvm_asyncpf": true,
-        "perfctr_core": false,
         "perfctr-core": false,
         "mpx": true,
+        "pbe": false,
         "avx512cd": false,
         "decodeassists": false,
-        "pbe": false,
-        "sse4_1": true,
         "sse4.1": true,
-        "sse4-1": true,
         "family": 6,
-        "vmware-cpuid-freq": true,
         "avx512f": false,
-        "xcrypt": false,
-        "hv-runtime": false,
         "msr": true,
         "mce": true,
         "mca": true,
-        "thread-id": -1,
+        "xcrypt": false,
         "min-level": 13,
         "xgetbv1": true,
         "cid": false,
-        "hv-relaxed": false,
-        "fxsr": true,
         "ds": false,
-        "hv-crash": false,
+        "fxsr": true,
         "xsaveopt": true,
         "xtpr": false,
+        "avx512vl": false,
         "avx512-vpopcntdq": false,
         "phe": false,
-        "avx512vl": false,
         "extapic": false,
         "3dnowprefetch": true,
         "cr8legacy": false,
-        "cpuid-0xb": true,
         "xcrypt-en": false,
-        "kvm_pv_eoi": true,
-        "apic-id": 4294967295,
         "pn": false,
         "dca": false,
         "vendor": "GenuineIntel",
         "pku": false,
         "smx": false,
         "cmp-legacy": false,
-        "cmp_legacy": false,
         "avx512-4fmaps": false,
         "vmcb-clean": false,
-        "vmcb_clean": false,
-        "3dnowext": false,
         "hle": true,
+        "3dnowext": false,
         "npt": false,
-        "memory": "/machine/unattached/system[0]",
         "clwb": false,
         "lbrv": false,
         "adx": true,
         "ss": true,
         "pni": true,
-        "svm_lock": false,
         "svm-lock": false,
         "smep": true,
-        "pfthreshold": false,
         "smap": true,
+        "pfthreshold": false,
         "x2apic": true,
         "avx512vbmi": false,
-        "hv-stimer": false,
-        "i64": true,
         "flushbyasid": false,
         "f16c": true,
         "ace2-en": false,
-        "pat": true,
         "pae": true,
+        "pat": true,
         "sse": true,
         "phe-en": false,
         "kvm-nopiodelay": true,
-        "kvm_nopiodelay": true,
         "tm": false,
         "kvmclock-stable-bit": true,
         "hypervisor": true,
-        "socket-id": -1,
         "pcommit": false,
         "syscall": true,
-        "level": 13,
         "avx512dq": false,
         "svm": false,
-        "full-cpuid-auto-level": true,
-        "hv-reset": false,
         "invtsc": false,
-        "sse3": true,
         "sse2": true,
         "est": false,
         "avx512ifma": false,
@@ -15362,62 +15161,44 @@
         "kvm-pv-eoi": true,
         "cx8": true,
         "kvm-mmu": false,
-        "kvm_mmu": false,
-        "sse4_2": true,
         "sse4.2": true,
-        "sse4-2": true,
         "pge": true,
-        "fill-mtrr-mask": true,
         "pdcm": false,
-        "nodeid_msr": false,
         "model": 94,
         "movbe": true,
         "nrip-save": false,
-        "nrip_save": false,
-        "sse4a": false,
         "ssse3": true,
-        "kvm_pv_unhalt": true,
+        "sse4a": false,
         "invpcid": true,
         "pdpe1gb": true,
         "tsc-deadline": true,
         "fma": true,
         "cx16": true,
         "de": true,
-        "enforce": false,
         "stepping": 3,
         "xsave": true,
         "clflush": true,
         "skinit": false,
-        "tce": false,
         "tsc": true,
+        "tce": false,
         "fpu": true,
         "ds-cpl": false,
-        "ds_cpl": false,
         "ibs": false,
-        "host-phys-bits": false,
         "fma4": false,
         "la57": false,
         "osvw": false,
-        "check": true,
-        "hv-spinlocks": -1,
-        "pmm": false,
         "apic": true,
-        "pmu": false,
-        "min-xlevel2": 0,
+        "pmm": false,
         "tsc-adjust": true,
-        "tsc_adjust": true,
         "kvm-steal-time": true,
-        "kvm_steal_time": true,
         "kvmclock": true,
-        "l3-cache": true,
         "lwp": false,
         "xop": false,
         "avx": true,
         "ospke": false,
-        "ace2": false,
         "acpi": false,
         "avx512bw": false,
-        "hv-vapic": false,
+        "ace2": false,
         "fsgsbase": true,
         "ht": false,
         "nx": true,
@@ -15427,25 +15208,18 @@
         "xsaves": true,
         "lm": true,
         "umip": false,
-        "avx2": true,
         "pse": true,
+        "avx2": true,
         "sep": true,
-        "pclmuldq": true,
         "nodeid-msr": false,
-        "kvm": true,
         "misalignsse": false,
         "min-xlevel": 2147483656,
-        "bmi2": true,
         "bmi1": true,
+        "bmi2": true,
         "kvm-pv-unhalt": true,
-        "realized": false,
-        "tsc_scale": false,
         "tsc-scale": false,
         "topoext": false,
-        "hv-vpindex": false,
-        "xlevel2": 0,
         "clflushopt": true,
-        "kvm-no-smi-migration": false,
         "monitor": false,
         "avx512er": false,
         "pmm-en": false,
@@ -15453,17 +15227,11 @@
         "3dnow": false,
         "erms": true,
         "lahf-lm": true,
-        "lahf_lm": true,
-        "xstore": false,
-        "hv-synic": false,
         "fxsr-opt": false,
-        "fxsr_opt": false,
+        "xstore": false,
         "rtm": true,
         "lmce": true,
-        "hv-time": false,
         "perfctr-nb": false,
-        "perfctr_nb": false,
-        "ffxsr": false,
         "rdrand": true,
         "rdseed": true,
         "avx512-4vnniw": false,
@@ -15475,7 +15243,6 @@
         "pse36": true,
         "tbm": false,
         "wdt": false,
-        "pause_filter": false,
         "model-id": "Intel(R) Xeon(R) CPU E3-1245 v5 @ 3.50GHz",
         "sha-ni": false,
         "abm": true,
@@ -15487,6 +15254,247 @@
   "id": "libvirt-48"
 }
 
+{
+  "return": {
+    "model": {
+      "name": "base",
+      "props": {
+        "phys-bits": 0,
+        "core-id": -1,
+        "xlevel": 2147483656,
+        "cmov": true,
+        "ia64": false,
+        "aes": true,
+        "mmx": true,
+        "arat": true,
+        "rdpid": false,
+        "pause-filter": false,
+        "xsavec": true,
+        "osxsave": false,
+        "tsc-frequency": 0,
+        "xd": true,
+        "hv-vendor-id": "",
+        "kvm-asyncpf": true,
+        "kvm_asyncpf": true,
+        "perfctr_core": false,
+        "perfctr-core": false,
+        "mpx": true,
+        "avx512cd": false,
+        "decodeassists": false,
+        "pbe": false,
+        "sse4_1": true,
+        "sse4.1": true,
+        "sse4-1": true,
+        "family": 6,
+        "vmware-cpuid-freq": true,
+        "avx512f": false,
+        "xcrypt": false,
+        "hv-runtime": false,
+        "msr": true,
+        "mce": true,
+        "mca": true,
+        "thread-id": -1,
+        "min-level": 13,
+        "xgetbv1": true,
+        "cid": false,
+        "hv-relaxed": false,
+        "fxsr": true,
+        "ds": false,
+        "hv-crash": false,
+        "xsaveopt": true,
+        "xtpr": false,
+        "avx512-vpopcntdq": false,
+        "phe": false,
+        "avx512vl": false,
+        "extapic": false,
+        "3dnowprefetch": true,
+        "cr8legacy": false,
+        "cpuid-0xb": true,
+        "xcrypt-en": false,
+        "kvm_pv_eoi": true,
+        "apic-id": 4294967295,
+        "pn": false,
+        "dca": false,
+        "vendor": "GenuineIntel",
+        "pku": false,
+        "smx": false,
+        "cmp-legacy": false,
+        "cmp_legacy": false,
+        "avx512-4fmaps": false,
+        "vmcb-clean": false,
+        "vmcb_clean": false,
+        "3dnowext": false,
+        "hle": true,
+        "npt": false,
+        "memory": "/machine/unattached/system[0]",
+        "clwb": false,
+        "lbrv": false,
+        "adx": true,
+        "ss": true,
+        "pni": true,
+        "svm_lock": false,
+        "svm-lock": false,
+        "smep": true,
+        "pfthreshold": false,
+        "smap": true,
+        "x2apic": true,
+        "avx512vbmi": false,
+        "hv-stimer": false,
+        "i64": true,
+        "flushbyasid": false,
+        "f16c": true,
+        "ace2-en": false,
+        "pat": true,
+        "pae": true,
+        "sse": true,
+        "phe-en": false,
+        "kvm-nopiodelay": true,
+        "kvm_nopiodelay": true,
+        "tm": false,
+        "kvmclock-stable-bit": true,
+        "hypervisor": true,
+        "socket-id": -1,
+        "pcommit": false,
+        "syscall": true,
+        "level": 13,
+        "avx512dq": false,
+        "svm": false,
+        "full-cpuid-auto-level": true,
+        "hv-reset": false,
+        "invtsc": false,
+        "sse3": true,
+        "sse2": true,
+        "est": false,
+        "avx512ifma": false,
+        "tm2": false,
+        "kvm-pv-eoi": true,
+        "cx8": true,
+        "kvm-mmu": false,
+        "kvm_mmu": false,
+        "sse4_2": true,
+        "sse4.2": true,
+        "sse4-2": true,
+        "pge": true,
+        "fill-mtrr-mask": true,
+        "pdcm": false,
+        "nodeid_msr": false,
+        "model": 94,
+        "movbe": true,
+        "nrip-save": false,
+        "nrip_save": false,
+        "sse4a": false,
+        "ssse3": true,
+        "kvm_pv_unhalt": true,
+        "invpcid": true,
+        "pdpe1gb": true,
+        "tsc-deadline": true,
+        "fma": true,
+        "cx16": true,
+        "de": true,
+        "enforce": false,
+        "stepping": 3,
+        "xsave": true,
+        "clflush": true,
+        "skinit": false,
+        "tce": false,
+        "tsc": true,
+        "fpu": true,
+        "ds-cpl": false,
+        "ds_cpl": false,
+        "ibs": false,
+        "host-phys-bits": false,
+        "fma4": false,
+        "la57": false,
+        "osvw": false,
+        "check": true,
+        "hv-spinlocks": -1,
+        "pmm": false,
+        "apic": true,
+        "pmu": false,
+        "min-xlevel2": 0,
+        "tsc-adjust": true,
+        "tsc_adjust": true,
+        "kvm-steal-time": true,
+        "kvm_steal_time": true,
+        "kvmclock": true,
+        "l3-cache": true,
+        "lwp": false,
+        "xop": false,
+        "avx": true,
+        "ospke": false,
+        "ace2": false,
+        "acpi": false,
+        "avx512bw": false,
+        "hv-vapic": false,
+        "fsgsbase": true,
+        "ht": false,
+        "nx": true,
+        "pclmulqdq": true,
+        "mmxext": false,
+        "popcnt": true,
+        "xsaves": true,
+        "lm": true,
+        "umip": false,
+        "avx2": true,
+        "pse": true,
+        "sep": true,
+        "pclmuldq": true,
+        "nodeid-msr": false,
+        "kvm": true,
+        "misalignsse": false,
+        "min-xlevel": 2147483656,
+        "bmi2": true,
+        "bmi1": true,
+        "kvm-pv-unhalt": true,
+        "realized": false,
+        "tsc_scale": false,
+        "tsc-scale": false,
+        "topoext": false,
+        "hv-vpindex": false,
+        "xlevel2": 0,
+        "clflushopt": true,
+        "kvm-no-smi-migration": false,
+        "monitor": false,
+        "avx512er": false,
+        "pmm-en": false,
+        "pcid": true,
+        "3dnow": false,
+        "erms": true,
+        "lahf-lm": true,
+        "lahf_lm": true,
+        "xstore": false,
+        "hv-synic": false,
+        "fxsr-opt": false,
+        "fxsr_opt": false,
+        "rtm": true,
+        "lmce": true,
+        "hv-time": false,
+        "perfctr-nb": false,
+        "perfctr_nb": false,
+        "ffxsr": false,
+        "rdrand": true,
+        "rdseed": true,
+        "avx512-4vnniw": false,
+        "vme": true,
+        "vmx": true,
+        "dtes64": false,
+        "mtrr": true,
+        "rdtscp": true,
+        "pse36": true,
+        "tbm": false,
+        "wdt": false,
+        "pause_filter": false,
+        "model-id": "Intel(R) Xeon(R) CPU E3-1245 v5 @ 3.50GHz",
+        "sha-ni": false,
+        "abm": true,
+        "avx512pf": false,
+        "xstore-en": false
+      }
+    }
+  },
+  "id": "libvirt-49"
+}
+
 {
   "return": {
     "model": {
@@ -15663,7 +15671,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
@@ -15904,7 +15912,7 @@
       }
     }
   },
-  "id": "libvirt-50"
+  "id": "libvirt-51"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
index 5bd53f71f5..27190356ef 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
@@ -221,7 +221,7 @@
   <flag name='dump-completed'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>320947</microcodeVersion>
+  <microcodeVersion>321102</microcodeVersion>
   <package> (v2.9.0)</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v1 6/7] tests: Update qemucapabilitiesdata
Posted by Peter Krempa, 13 weeks ago
On Thu, Apr 12, 2018 at 18:39:51 +0200, Michal Privoznik wrote:
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>

So this really needs to be squashed into the previous commit. Also It
would help if you'd describe what you are doing since it does not seem
to be the classic churn from just updating the ordering of
capabilities.

Also I'd suggest to not add a sign-off to patches which you don't intend
to push, since the commit hook will save you from doing a mistake.

> ---

[...]

> diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
> index ca98ee14db..bc82624335 100644
> --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
> @@ -160,7 +160,7 @@
>    <flag name='isa-serial'/>
>    <version>2001001</version>
>    <kvmVersion>0</kvmVersion>
> -  <microcodeVersion>58992</microcodeVersion>
> +  <microcodeVersion>59147</microcodeVersion>

I think this change is not warranted here. If you regenerated the
capabilities, you need to make sure that the emulators you use have the
same config, so that we don't change anything that's not necessary.

There are a few other examples here, e.g. with the cpu flags.

It's a shame though that object-add QMP command is not introspectable
via the QMP schema. It would quite simplify this series.

NACK to change to data which is not relevant to the capability you are
introducing.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v1 6/7] tests: Update qemucapabilitiesdata
Posted by Michal Privoznik, 13 weeks ago
On 04/17/2018 10:39 AM, Peter Krempa wrote:
> On Thu, Apr 12, 2018 at 18:39:51 +0200, Michal Privoznik wrote:
>> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> 
> So this really needs to be squashed into the previous commit. Also It
> would help if you'd describe what you are doing since it does not seem
> to be the classic churn from just updating the ordering of
> capabilities.
> 
> Also I'd suggest to not add a sign-off to patches which you don't intend
> to push, since the commit hook will save you from doing a mistake.
> 
>> ---
> 
> [...]
> 
>> diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
>> index ca98ee14db..bc82624335 100644
>> --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
>> +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
>> @@ -160,7 +160,7 @@
>>    <flag name='isa-serial'/>
>>    <version>2001001</version>
>>    <kvmVersion>0</kvmVersion>
>> -  <microcodeVersion>58992</microcodeVersion>
>> +  <microcodeVersion>59147</microcodeVersion>
> 
> I think this change is not warranted here. If you regenerated the
> capabilities, you need to make sure that the emulators you use have the
> same config, so that we don't change anything that's not necessary.
> 
> There are a few other examples here, e.g. with the cpu flags.
> 
> It's a shame though that object-add QMP command is not introspectable
> via the QMP schema. It would quite simplify this series.
> 
> NACK to change to data which is not relevant to the capability you are
> introducing.
> 

In fact it is. In the tests, microcode version is just the file length
of input .replies file. It doesn't reflect any real microcode version.
Just look at testQemuCaps() from tests/qemucapabilitiestest.c.

Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v1 6/7] tests: Update qemucapabilitiesdata
Posted by Peter Krempa, 13 weeks ago
On Tue, Apr 17, 2018 at 10:52:40 +0200, Michal Privoznik wrote:
> On 04/17/2018 10:39 AM, Peter Krempa wrote:
> > On Thu, Apr 12, 2018 at 18:39:51 +0200, Michal Privoznik wrote:
> >> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> > 
> > So this really needs to be squashed into the previous commit. Also It
> > would help if you'd describe what you are doing since it does not seem
> > to be the classic churn from just updating the ordering of
> > capabilities.
> > 
> > Also I'd suggest to not add a sign-off to patches which you don't intend
> > to push, since the commit hook will save you from doing a mistake.
> > 
> >> ---
> > 
> > [...]
> > 
> >> diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
> >> index ca98ee14db..bc82624335 100644
> >> --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
> >> +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
> >> @@ -160,7 +160,7 @@
> >>    <flag name='isa-serial'/>
> >>    <version>2001001</version>
> >>    <kvmVersion>0</kvmVersion>
> >> -  <microcodeVersion>58992</microcodeVersion>
> >> +  <microcodeVersion>59147</microcodeVersion>
> > 
> > I think this change is not warranted here. If you regenerated the
> > capabilities, you need to make sure that the emulators you use have the
> > same config, so that we don't change anything that's not necessary.
> > 
> > There are a few other examples here, e.g. with the cpu flags.
> > 
> > It's a shame though that object-add QMP command is not introspectable
> > via the QMP schema. It would quite simplify this series.
> > 
> > NACK to change to data which is not relevant to the capability you are
> > introducing.
> > 
> 
> In fact it is. In the tests, microcode version is just the file length
> of input .replies file. It doesn't reflect any real microcode version.
> Just look at testQemuCaps() from tests/qemucapabilitiestest.c.

Oh ... (hits face with palm).

Also I've noticed that the churn in the cpu flags data looks like just
git wrongly picking how to create the diff.

At any rate, it needs to be squashed to the previous commit.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCH v1 7/7] qemu: Enable memory-backend-file.discard-data whenever possible
Posted by Michal Privoznik, 14 weeks ago
https://bugzilla.redhat.com/show_bug.cgi?id=1480668

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/qemu/qemu_command.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index f864350bd5..67350719aa 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3148,6 +3148,12 @@ qemuBuildMemoryBackendStr(virJSONValuePtr *backendProps,
                                   NULL) < 0)
             goto cleanup;
 
+        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD) &&
+            virJSONValueObjectAdd(props,
+                                  "B:discard-data", true,
+                                  NULL) < 0)
+            goto cleanup;
+
         switch (memAccess) {
         case VIR_DOMAIN_MEMORY_ACCESS_SHARED:
             if (virJSONValueObjectAdd(props, "b:share", true, NULL) < 0)
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v1 7/7] qemu: Enable memory-backend-file.discard-data whenever possible
Posted by Peter Krempa, 13 weeks ago
On Thu, Apr 12, 2018 at 18:39:52 +0200, Michal Privoznik wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1480668
> 
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
>  src/qemu/qemu_command.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index f864350bd5..67350719aa 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -3148,6 +3148,12 @@ qemuBuildMemoryBackendStr(virJSONValuePtr *backendProps,
>                                    NULL) < 0)
>              goto cleanup;
>  
> +        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD) &&
> +            virJSONValueObjectAdd(props,
> +                                  "B:discard-data", true,

This code path is used also for NVDIMMs, and since the documentaion for
the option states that:

    The new option can be used to indicate that the file contents can
    be destroyed and don't need to be flushed to disk when QEMU exits
    or when the memory backend object is removed.

I'm not sure whether this is right.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v1 7/7] qemu: Enable memory-backend-file.discard-data whenever possible
Posted by Michal Privoznik, 13 weeks ago
On 04/17/2018 10:05 AM, Peter Krempa wrote:
> On Thu, Apr 12, 2018 at 18:39:52 +0200, Michal Privoznik wrote:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1480668
>>
>> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
>> ---
>>  src/qemu/qemu_command.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index f864350bd5..67350719aa 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -3148,6 +3148,12 @@ qemuBuildMemoryBackendStr(virJSONValuePtr *backendProps,
>>                                    NULL) < 0)
>>              goto cleanup;
>>  
>> +        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD) &&
>> +            virJSONValueObjectAdd(props,
>> +                                  "B:discard-data", true,
> 
> This code path is used also for NVDIMMs, and since the documentaion for
> the option states that:
> 
>     The new option can be used to indicate that the file contents can
>     be destroyed and don't need to be flushed to disk when QEMU exits
>     or when the memory backend object is removed.
> 
> I'm not sure whether this is right.
> 

Okay, I'll make it configurable via domain XML. However, I'm struggling
to come up with useful design. Perhaps we can have <discardData/>
element under <memoryBacking/>?

  <memoryBacking>
    <discardData/>
  </memoryBacking>

and in order to be able to fine tune this per nvdimm/RAM modules we can
have:

  <memory model='nvdimm'>
    <source ../>
    <target ../>
    <discardData/>
  </memory>

However, this would allow the element even for cases when
memory-backing-ram is used (or the old way of configuration without any
memory-backend-* at all).

Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v1 7/7] qemu: Enable memory-backend-file.discard-data whenever possible
Posted by Peter Krempa, 13 weeks ago
On Tue, Apr 17, 2018 at 10:49:39 +0200, Michal Privoznik wrote:
> On 04/17/2018 10:05 AM, Peter Krempa wrote:
> > On Thu, Apr 12, 2018 at 18:39:52 +0200, Michal Privoznik wrote:
> >> https://bugzilla.redhat.com/show_bug.cgi?id=1480668
> >>
> >> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> >> ---
> >>  src/qemu/qemu_command.c | 6 ++++++
> >>  1 file changed, 6 insertions(+)
> >>
> >> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> >> index f864350bd5..67350719aa 100644
> >> --- a/src/qemu/qemu_command.c
> >> +++ b/src/qemu/qemu_command.c
> >> @@ -3148,6 +3148,12 @@ qemuBuildMemoryBackendStr(virJSONValuePtr *backendProps,
> >>                                    NULL) < 0)
> >>              goto cleanup;
> >>  
> >> +        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD) &&
> >> +            virJSONValueObjectAdd(props,
> >> +                                  "B:discard-data", true,
> > 
> > This code path is used also for NVDIMMs, and since the documentaion for
> > the option states that:
> > 
> >     The new option can be used to indicate that the file contents can
> >     be destroyed and don't need to be flushed to disk when QEMU exits
> >     or when the memory backend object is removed.
> > 
> > I'm not sure whether this is right.
> > 
> 
> Okay, I'll make it configurable via domain XML. However, I'm struggling
> to come up with useful design. Perhaps we can have <discardData/>
> element under <memoryBacking/>?
> 
>   <memoryBacking>
>     <discardData/>
>   </memoryBacking>
> 
> and in order to be able to fine tune this per nvdimm/RAM modules we can
> have:
> 
>   <memory model='nvdimm'>
>     <source ../>
>     <target ../>
>     <discardData/>
>   </memory>
> 
> However, this would allow the element even for cases when
> memory-backing-ram is used (or the old way of configuration without any
> memory-backend-* at all).

Well, I think you need to think more about how this is going to be used.
I think that for NVDIMMs we should never use that option, but for normal
memory dimms we should always use it. I don't really think that having
it configurable would add any benefit. I just wanted to point out that
for NVDIMMS which are supposed to be persistent we should not destroy
the data.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list