]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Introduce QEMU_CAPS_MACHINE_VIRT_IOMMU
authorAndrea Bolognani <abologna@redhat.com>
Fri, 17 May 2019 07:15:27 +0000 (09:15 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Mon, 3 Jun 2019 15:40:45 +0000 (17:40 +0200)
This capability can be used to figure out whether the
QEMU binary at hand supports the machine type property
we need in order to enable SMMUv3 IOMMU support.

Unfortunately we can't avoid probing the RISC-V binaries
along with the ARM ones, since both architectures have
their own 'virt' machine type.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
tests/qemucapabilitiesdata/caps_3.0.0.riscv32.replies
tests/qemucapabilitiesdata/caps_3.0.0.riscv64.replies
tests/qemucapabilitiesdata/caps_4.0.0.aarch64.replies
tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_4.0.0.riscv32.replies
tests/qemucapabilitiesdata/caps_4.0.0.riscv64.replies

index a827bd24e3348b8de8f1f6f8d688d2a88c256703..bf069fa8ea16003daddb0a9ebe253b77f836228e 100644 (file)
@@ -525,6 +525,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "virtio-pci-non-transitional",
               "overcommit",
               "query-current-machine",
+              "machine.virt.iommu",
     );
 
 
@@ -1406,10 +1407,17 @@ static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsPSeries[] = {
     { "cap-nested-hv", QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV },
 };
 
+static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsVirt[] = {
+    { "iommu", QEMU_CAPS_MACHINE_VIRT_IOMMU },
+};
+
 static virQEMUCapsObjectTypeProps virQEMUCapsMachineProps[] = {
     { "pseries", virQEMUCapsMachinePropsPSeries,
       ARRAY_CARDINALITY(virQEMUCapsMachinePropsPSeries),
       -1 },
+    { "virt", virQEMUCapsMachinePropsVirt,
+      ARRAY_CARDINALITY(virQEMUCapsMachinePropsVirt),
+      -1 },
 };
 
 static void
index 67c8e80462ca6deaaa21a08feff4ffb48ed77ec8..0f282ad239ebb26e47d2f6a2f19ca9b4c63f4811 100644 (file)
@@ -507,6 +507,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_VIRTIO_PCI_TRANSITIONAL, /* virtio *-pci-{non-}transitional devices */
     QEMU_CAPS_OVERCOMMIT, /* -overcommit */
     QEMU_CAPS_QUERY_CURRENT_MACHINE, /* query-current-machine command */
+    QEMU_CAPS_MACHINE_VIRT_IOMMU, /* -machine virt,iommu */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index 67553451fca4848aace9bac942e4dc89caeb579d..7a3d0fe0e42497720ef0ecdc45ffd96cef2fbd6d 100644 (file)
 }
 
 {
-  "execute": "query-cpu-definitions",
+  "execute": "qom-list-properties",
+  "arguments": {
+    "typename": "virt-2.12-machine"
+  },
   "id": "libvirt-32"
 }
 
+{
+  "return": [
+    {
+      "name": "graphics",
+      "description": "Set on/off to enable/disable graphics emulation",
+      "type": "bool"
+    },
+    {
+      "name": "phandle-start",
+      "description": "The first phandle ID we may generate dynamically",
+      "type": "int"
+    },
+    {
+      "name": "dump-guest-core",
+      "description": "Include guest memory in  a core dump",
+      "type": "bool"
+    },
+    {
+      "name": "kernel-irqchip",
+      "description": "Configure KVM in-kernel irqchip",
+      "type": "on|off|split"
+    },
+    {
+      "name": "accel",
+      "description": "Accelerator list",
+      "type": "string"
+    },
+    {
+      "name": "append",
+      "description": "Linux kernel command line",
+      "type": "string"
+    },
+    {
+      "name": "dumpdtb",
+      "description": "Dump current dtb to a file and quit",
+      "type": "string"
+    },
+    {
+      "name": "memory-encryption",
+      "description": "Set memory encyption object to use",
+      "type": "string"
+    },
+    {
+      "name": "igd-passthru",
+      "description": "Set on/off to enable/disable igd passthrou",
+      "type": "bool"
+    },
+    {
+      "name": "dt-compatible",
+      "description": "Overrides the \"compatible\" property of the dt root node",
+      "type": "string"
+    },
+    {
+      "name": "kernel",
+      "description": "Linux kernel image file",
+      "type": "string"
+    },
+    {
+      "name": "usb",
+      "description": "Set on/off to enable/disable usb",
+      "type": "bool"
+    },
+    {
+      "name": "suppress-vmdesc",
+      "description": "Set on to disable self-describing migration",
+      "type": "bool"
+    },
+    {
+      "name": "dtb",
+      "description": "Linux kernel device tree file",
+      "type": "string"
+    },
+    {
+      "name": "firmware",
+      "description": "Firmware image",
+      "type": "string"
+    },
+    {
+      "name": "mem-merge",
+      "description": "Enable/disable memory merge support",
+      "type": "bool"
+    },
+    {
+      "name": "initrd",
+      "description": "Linux initial ramdisk file",
+      "type": "string"
+    },
+    {
+      "name": "enforce-config-section",
+      "description": "Set on to enforce configuration section migration",
+      "type": "bool"
+    },
+    {
+      "name": "kvm-shadow-mem",
+      "description": "KVM shadow MMU size",
+      "type": "int"
+    },
+    {
+      "name": "virtualization",
+      "description": "Set on/off to enable/disable emulating a guest CPU which implements the ARM Virtualization Extensions",
+      "type": "bool"
+    },
+    {
+      "name": "type",
+      "type": "string"
+    },
+    {
+      "name": "its",
+      "description": "Set on/off to enable/disable ITS instantiation",
+      "type": "bool"
+    },
+    {
+      "name": "gic-version",
+      "description": "Set GIC version. Valid values are 2, 3 and host",
+      "type": "string"
+    },
+    {
+      "name": "highmem",
+      "description": "Set on/off to enable/disable using physical address space above 32 bits",
+      "type": "bool"
+    },
+    {
+      "name": "secure",
+      "description": "Set on/off to enable/disable the ARM Security Extensions (TrustZone)",
+      "type": "bool"
+    }
+  ],
+  "id": "libvirt-32"
+}
+
+{
+  "execute": "query-cpu-definitions",
+  "id": "libvirt-33"
+}
+
 {
   "return": [
     {
       "static": false
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-gic-capabilities",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       "kernel": false
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
index 389fc95e0e5878d7b1139dd5570af77f6404805e..8159b26d19225c8c749ed5dd986843cffd0f42a9 100644 (file)
 }
 
 {
-  "execute": "query-tpm-models",
+  "execute": "qom-list-properties",
+  "arguments": {
+    "typename": "virt-machine"
+  },
   "id": "libvirt-28"
 }
 
 {
   "return": [
+    {
+      "name": "enforce-config-section",
+      "description": "Set on to enforce configuration section migration",
+      "type": "bool"
+    },
+    {
+      "name": "kernel",
+      "description": "Linux kernel image file",
+      "type": "string"
+    },
+    {
+      "name": "dt-compatible",
+      "description": "Overrides the \"compatible\" property of the dt root node",
+      "type": "string"
+    },
+    {
+      "name": "initrd",
+      "description": "Linux initial ramdisk file",
+      "type": "string"
+    },
+    {
+      "name": "graphics",
+      "description": "Set on/off to enable/disable graphics emulation",
+      "type": "bool"
+    },
+    {
+      "name": "kernel-irqchip",
+      "description": "Configure KVM in-kernel irqchip",
+      "type": "on|off|split"
+    },
+    {
+      "name": "usb",
+      "description": "Set on/off to enable/disable usb",
+      "type": "bool"
+    },
+    {
+      "name": "firmware",
+      "description": "Firmware image",
+      "type": "string"
+    },
+    {
+      "name": "memory-encryption",
+      "description": "Set memory encyption object to use",
+      "type": "string"
+    },
+    {
+      "name": "dump-guest-core",
+      "description": "Include guest memory in  a core dump",
+      "type": "bool"
+    },
+    {
+      "name": "kvm-shadow-mem",
+      "description": "KVM shadow MMU size",
+      "type": "int"
+    },
+    {
+      "name": "igd-passthru",
+      "description": "Set on/off to enable/disable igd passthrou",
+      "type": "bool"
+    },
+    {
+      "name": "phandle-start",
+      "description": "The first phandle ID we may generate dynamically",
+      "type": "int"
+    },
+    {
+      "name": "dumpdtb",
+      "description": "Dump current dtb to a file and quit",
+      "type": "string"
+    },
+    {
+      "name": "mem-merge",
+      "description": "Enable/disable memory merge support",
+      "type": "bool"
+    },
+    {
+      "name": "dtb",
+      "description": "Linux kernel device tree file",
+      "type": "string"
+    },
+    {
+      "name": "accel",
+      "description": "Accelerator list",
+      "type": "string"
+    },
+    {
+      "name": "append",
+      "description": "Linux kernel command line",
+      "type": "string"
+    },
+    {
+      "name": "suppress-vmdesc",
+      "description": "Set on to disable self-describing migration",
+      "type": "bool"
+    },
+    {
+      "name": "type",
+      "type": "string"
+    }
   ],
   "id": "libvirt-28"
 }
 
 {
-  "execute": "query-tpm-types",
+  "execute": "query-tpm-models",
   "id": "libvirt-29"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-29"
+}
+
+{
+  "execute": "query-tpm-types",
+  "id": "libvirt-30"
+}
+
 {
   "return": [
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
       "capability": "late-block-activate"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
index 65da947c609cdd6fbceab9c48b83df9901c11ae3..995ca8678486ddbe4f7b28905a38947cf85d6e19 100644 (file)
 }
 
 {
-  "execute": "query-tpm-models",
+  "execute": "qom-list-properties",
+  "arguments": {
+    "typename": "virt-machine"
+  },
   "id": "libvirt-28"
 }
 
 {
   "return": [
+    {
+      "name": "enforce-config-section",
+      "description": "Set on to enforce configuration section migration",
+      "type": "bool"
+    },
+    {
+      "name": "kernel",
+      "description": "Linux kernel image file",
+      "type": "string"
+    },
+    {
+      "name": "dt-compatible",
+      "description": "Overrides the \"compatible\" property of the dt root node",
+      "type": "string"
+    },
+    {
+      "name": "initrd",
+      "description": "Linux initial ramdisk file",
+      "type": "string"
+    },
+    {
+      "name": "graphics",
+      "description": "Set on/off to enable/disable graphics emulation",
+      "type": "bool"
+    },
+    {
+      "name": "kernel-irqchip",
+      "description": "Configure KVM in-kernel irqchip",
+      "type": "on|off|split"
+    },
+    {
+      "name": "usb",
+      "description": "Set on/off to enable/disable usb",
+      "type": "bool"
+    },
+    {
+      "name": "firmware",
+      "description": "Firmware image",
+      "type": "string"
+    },
+    {
+      "name": "memory-encryption",
+      "description": "Set memory encyption object to use",
+      "type": "string"
+    },
+    {
+      "name": "dump-guest-core",
+      "description": "Include guest memory in  a core dump",
+      "type": "bool"
+    },
+    {
+      "name": "kvm-shadow-mem",
+      "description": "KVM shadow MMU size",
+      "type": "int"
+    },
+    {
+      "name": "igd-passthru",
+      "description": "Set on/off to enable/disable igd passthrou",
+      "type": "bool"
+    },
+    {
+      "name": "phandle-start",
+      "description": "The first phandle ID we may generate dynamically",
+      "type": "int"
+    },
+    {
+      "name": "dumpdtb",
+      "description": "Dump current dtb to a file and quit",
+      "type": "string"
+    },
+    {
+      "name": "mem-merge",
+      "description": "Enable/disable memory merge support",
+      "type": "bool"
+    },
+    {
+      "name": "dtb",
+      "description": "Linux kernel device tree file",
+      "type": "string"
+    },
+    {
+      "name": "accel",
+      "description": "Accelerator list",
+      "type": "string"
+    },
+    {
+      "name": "append",
+      "description": "Linux kernel command line",
+      "type": "string"
+    },
+    {
+      "name": "suppress-vmdesc",
+      "description": "Set on to disable self-describing migration",
+      "type": "bool"
+    },
+    {
+      "name": "type",
+      "type": "string"
+    }
   ],
   "id": "libvirt-28"
 }
 
 {
-  "execute": "query-tpm-types",
+  "execute": "query-tpm-models",
   "id": "libvirt-29"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-29"
+}
+
+{
+  "execute": "query-tpm-types",
+  "id": "libvirt-30"
+}
+
 {
   "return": [
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
       "capability": "late-block-activate"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
index 128ee04e86c74860be539576464b958847fbb39e..91943860b11714bc26b98674dc8995034b88fc20 100644 (file)
 }
 
 {
-  "execute": "query-cpu-definitions",
+  "execute": "qom-list-properties",
+  "arguments": {
+    "typename": "virt-4.0-machine"
+  },
+  "id": "libvirt-33"
+}
+
+{
+  "return": [
+    {
+      "name": "type",
+      "type": "string"
+    },
+    {
+      "name": "graphics",
+      "description": "Set on/off to enable/disable graphics emulation",
+      "type": "bool"
+    },
+    {
+      "name": "phandle-start",
+      "description": "The first phandle ID we may generate dynamically",
+      "type": "int"
+    },
+    {
+      "name": "dump-guest-core",
+      "description": "Include guest memory in a core dump",
+      "type": "bool"
+    },
+    {
+      "name": "kernel-irqchip",
+      "description": "Configure KVM in-kernel irqchip",
+      "type": "on|off|split"
+    },
+    {
+      "name": "accel",
+      "description": "Accelerator list",
+      "type": "string"
+    },
+    {
+      "name": "append",
+      "description": "Linux kernel command line",
+      "type": "string"
+    },
+    {
+      "name": "dumpdtb",
+      "description": "Dump current dtb to a file and quit",
+      "type": "string"
+    },
+    {
+      "name": "memory-encryption",
+      "description": "Set memory encryption object to use",
+      "type": "string"
+    },
+    {
+      "name": "igd-passthru",
+      "description": "Set on/off to enable/disable igd passthrou",
+      "type": "bool"
+    },
+    {
+      "name": "dt-compatible",
+      "description": "Overrides the \"compatible\" property of the dt root node",
+      "type": "string"
+    },
+    {
+      "name": "kernel",
+      "description": "Linux kernel image file",
+      "type": "string"
+    },
+    {
+      "name": "usb",
+      "description": "Set on/off to enable/disable usb",
+      "type": "bool"
+    },
+    {
+      "name": "suppress-vmdesc",
+      "description": "Set on to disable self-describing migration",
+      "type": "bool"
+    },
+    {
+      "name": "dtb",
+      "description": "Linux kernel device tree file",
+      "type": "string"
+    },
+    {
+      "name": "firmware",
+      "description": "Firmware image",
+      "type": "string"
+    },
+    {
+      "name": "mem-merge",
+      "description": "Enable/disable memory merge support",
+      "type": "bool"
+    },
+    {
+      "name": "initrd",
+      "description": "Linux initial ramdisk file",
+      "type": "string"
+    },
+    {
+      "name": "enforce-config-section",
+      "description": "Set on to enforce configuration section migration",
+      "type": "bool"
+    },
+    {
+      "name": "kvm-shadow-mem",
+      "description": "KVM shadow MMU size",
+      "type": "int"
+    },
+    {
+      "name": "virtualization",
+      "description": "Set on/off to enable/disable emulating a guest CPU which implements the ARM Virtualization Extensions",
+      "type": "bool"
+    },
+    {
+      "name": "its",
+      "description": "Set on/off to enable/disable ITS instantiation",
+      "type": "bool"
+    },
+    {
+      "name": "gic-version",
+      "description": "Set GIC version. Valid values are 2, 3 and host",
+      "type": "string"
+    },
+    {
+      "name": "highmem",
+      "description": "Set on/off to enable/disable using physical address space above 32 bits",
+      "type": "bool"
+    },
+    {
+      "name": "secure",
+      "description": "Set on/off to enable/disable the ARM Security Extensions (TrustZone)",
+      "type": "bool"
+    },
+    {
+      "name": "iommu",
+      "description": "Set the IOMMU type. Valid values are none and smmuv3",
+      "type": "string"
+    }
+  ],
   "id": "libvirt-33"
 }
 
+{
+  "execute": "query-cpu-definitions",
+  "id": "libvirt-34"
+}
+
 {
   "return": [
     {
       "static": false
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       ]
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-gic-capabilities",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
       "kernel": false
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
index 7bcda0b402ca519307cbdf21804a732a5125ac81..e071bc0c8d28530e081bad19c138b5e44d35e43e 100644 (file)
   <flag name='virtio-pci-non-transitional'/>
   <flag name='overcommit'/>
   <flag name='query-current-machine'/>
+  <flag name='machine.virt.iommu'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700758</microcodeVersion>
index 053b7148253a6c9784a74e9e637ae608fcd7692b..c2ca623a0bc212cce3e03ae3b3dcec52da520c61 100644 (file)
 }
 
 {
-  "execute": "query-tpm-models",
+  "execute": "qom-list-properties",
+  "arguments": {
+    "typename": "virt-machine"
+  },
   "id": "libvirt-34"
 }
 
 {
   "return": [
+    {
+      "name": "type",
+      "type": "string"
+    },
+    {
+      "name": "enforce-config-section",
+      "description": "Set on to enforce configuration section migration",
+      "type": "bool"
+    },
+    {
+      "name": "kernel",
+      "description": "Linux kernel image file",
+      "type": "string"
+    },
+    {
+      "name": "dt-compatible",
+      "description": "Overrides the \"compatible\" property of the dt root node",
+      "type": "string"
+    },
+    {
+      "name": "initrd",
+      "description": "Linux initial ramdisk file",
+      "type": "string"
+    },
+    {
+      "name": "graphics",
+      "description": "Set on/off to enable/disable graphics emulation",
+      "type": "bool"
+    },
+    {
+      "name": "kernel-irqchip",
+      "description": "Configure KVM in-kernel irqchip",
+      "type": "on|off|split"
+    },
+    {
+      "name": "usb",
+      "description": "Set on/off to enable/disable usb",
+      "type": "bool"
+    },
+    {
+      "name": "firmware",
+      "description": "Firmware image",
+      "type": "string"
+    },
+    {
+      "name": "memory-encryption",
+      "description": "Set memory encryption object to use",
+      "type": "string"
+    },
+    {
+      "name": "dump-guest-core",
+      "description": "Include guest memory in a core dump",
+      "type": "bool"
+    },
+    {
+      "name": "kvm-shadow-mem",
+      "description": "KVM shadow MMU size",
+      "type": "int"
+    },
+    {
+      "name": "igd-passthru",
+      "description": "Set on/off to enable/disable igd passthrou",
+      "type": "bool"
+    },
+    {
+      "name": "phandle-start",
+      "description": "The first phandle ID we may generate dynamically",
+      "type": "int"
+    },
+    {
+      "name": "dumpdtb",
+      "description": "Dump current dtb to a file and quit",
+      "type": "string"
+    },
+    {
+      "name": "mem-merge",
+      "description": "Enable/disable memory merge support",
+      "type": "bool"
+    },
+    {
+      "name": "dtb",
+      "description": "Linux kernel device tree file",
+      "type": "string"
+    },
+    {
+      "name": "accel",
+      "description": "Accelerator list",
+      "type": "string"
+    },
+    {
+      "name": "append",
+      "description": "Linux kernel command line",
+      "type": "string"
+    },
+    {
+      "name": "suppress-vmdesc",
+      "description": "Set on to disable self-describing migration",
+      "type": "bool"
+    }
   ],
   "id": "libvirt-34"
 }
 
 {
-  "execute": "query-tpm-types",
+  "execute": "query-tpm-models",
   "id": "libvirt-35"
 }
 
 }
 
 {
-  "execute": "query-command-line-options",
+  "execute": "query-tpm-types",
   "id": "libvirt-36"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-36"
+}
+
+{
+  "execute": "query-command-line-options",
+  "id": "libvirt-37"
+}
+
 {
   "return": [
     {
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       ]
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
index 2db59687aa9591651adb11bb190814dcb00c9ed6..0cccbdb4e0579f6bd236dc87c9655da5d1d1849c 100644 (file)
 }
 
 {
-  "execute": "query-tpm-models",
+  "execute": "qom-list-properties",
+  "arguments": {
+    "typename": "virt-machine"
+  },
   "id": "libvirt-34"
 }
 
 {
   "return": [
+    {
+      "name": "type",
+      "type": "string"
+    },
+    {
+      "name": "enforce-config-section",
+      "description": "Set on to enforce configuration section migration",
+      "type": "bool"
+    },
+    {
+      "name": "kernel",
+      "description": "Linux kernel image file",
+      "type": "string"
+    },
+    {
+      "name": "dt-compatible",
+      "description": "Overrides the \"compatible\" property of the dt root node",
+      "type": "string"
+    },
+    {
+      "name": "initrd",
+      "description": "Linux initial ramdisk file",
+      "type": "string"
+    },
+    {
+      "name": "graphics",
+      "description": "Set on/off to enable/disable graphics emulation",
+      "type": "bool"
+    },
+    {
+      "name": "kernel-irqchip",
+      "description": "Configure KVM in-kernel irqchip",
+      "type": "on|off|split"
+    },
+    {
+      "name": "usb",
+      "description": "Set on/off to enable/disable usb",
+      "type": "bool"
+    },
+    {
+      "name": "firmware",
+      "description": "Firmware image",
+      "type": "string"
+    },
+    {
+      "name": "memory-encryption",
+      "description": "Set memory encryption object to use",
+      "type": "string"
+    },
+    {
+      "name": "dump-guest-core",
+      "description": "Include guest memory in a core dump",
+      "type": "bool"
+    },
+    {
+      "name": "kvm-shadow-mem",
+      "description": "KVM shadow MMU size",
+      "type": "int"
+    },
+    {
+      "name": "igd-passthru",
+      "description": "Set on/off to enable/disable igd passthrou",
+      "type": "bool"
+    },
+    {
+      "name": "phandle-start",
+      "description": "The first phandle ID we may generate dynamically",
+      "type": "int"
+    },
+    {
+      "name": "dumpdtb",
+      "description": "Dump current dtb to a file and quit",
+      "type": "string"
+    },
+    {
+      "name": "mem-merge",
+      "description": "Enable/disable memory merge support",
+      "type": "bool"
+    },
+    {
+      "name": "dtb",
+      "description": "Linux kernel device tree file",
+      "type": "string"
+    },
+    {
+      "name": "accel",
+      "description": "Accelerator list",
+      "type": "string"
+    },
+    {
+      "name": "append",
+      "description": "Linux kernel command line",
+      "type": "string"
+    },
+    {
+      "name": "suppress-vmdesc",
+      "description": "Set on to disable self-describing migration",
+      "type": "bool"
+    }
   ],
   "id": "libvirt-34"
 }
 
 {
-  "execute": "query-tpm-types",
+  "execute": "query-tpm-models",
   "id": "libvirt-35"
 }
 
 }
 
 {
-  "execute": "query-command-line-options",
+  "execute": "query-tpm-types",
   "id": "libvirt-36"
 }
 
+{
+  "return": [
+  ],
+  "id": "libvirt-36"
+}
+
+{
+  "execute": "query-command-line-options",
+  "id": "libvirt-37"
+}
+
 {
   "return": [
     {
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       ]
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }