Devel
Threads by month
- ----- 2026 -----
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- 19 participants
- 40176 discussions
Adding functionality to libvirt that will allow querying the interface
for the availability of switchdev Offloading NIC capabilities.
The switchdev mode was introduced in kernel 4.8, the iproute2-devlink
command to retrieve the swtichdev NIC feature,
Command example: devlink dev eswitch show pci/0000:03:00.0
This feature is needed for Openstack so we can do a scheduling decision
if the NIC is in Hardware Offload (switchdev) or regular SR-IOV (legacy) mode.
And select the appropriate hypervisors with the requested capability see [1].
[1] - https://specs.openstack.org/openstack/nova-specs/specs/pike/approved/enableā¦
---
configure.ac | 13 ++
docs/formatnode.html.in | 1 +
src/util/virnetdev.c | 187 +++++++++++++++++++++-
src/util/virnetdev.h | 1 +
tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml | 1 +
tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml | 1 +
6 files changed, 203 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index b12b7fa..c089798 100644
--- a/configure.ac
+++ b/configure.ac
@@ -627,6 +627,19 @@ if test "$with_linux" = "yes"; then
AC_CHECK_HEADERS([linux/btrfs.h])
fi
+dnl
+dnl check for kernel headers required by devlink
+dnl
+if test "$with_linux" = "yes"; then
+ AC_CHECK_HEADERS([linux/devlink.h])
+ AC_CHECK_DECLS([DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME, DEVLINK_ATTR_MAX, DEVLINK_CMD_ESWITCH_GET, DEVLINK_ATTR_BUS_NAME, DEVLINK_ATTR_DEV_NAME, DEVLINK_ATTR_ESWITCH_MODE, DEVLINK_ESWITCH_MODE_SWITCHDEV],
+ [AC_DEFINE([HAVE_DECL_DEVLINK],
+ [1],
+ [whether devlink declarations is available])],
+ [],
+ [[#include <linux/devlink.h>]])
+fi
+
dnl Allow perl/python overrides
AC_PATH_PROGS([PYTHON], [python2 python])
if test -z "$PYTHON"; then
diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in
index 4d935b5..29244a8 100644
--- a/docs/formatnode.html.in
+++ b/docs/formatnode.html.in
@@ -227,6 +227,7 @@
<dt><code>rxhash</code></dt><dd>receive-hashing</dd>
<dt><code>rdma</code></dt><dd>remote-direct-memory-access</dd>
<dt><code>txudptnl</code></dt><dd>tx-udp-tunnel-segmentation</dd>
+ <dt><code>switchdev</code></dt><dd>kernel-forward-plane-offload</dd>
</dl>
</dd>
<dt><code>capability</code></dt>
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 51a6e42..fc7c961 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -59,6 +59,10 @@
# include <net/if_dl.h>
#endif
+#if HAVE_DECL_DEVLINK
+# include <linux/devlink.h>
+#endif
+
#ifndef IFNAMSIZ
# define IFNAMSIZ 16
#endif
@@ -2481,7 +2485,8 @@ VIR_ENUM_IMPL(virNetDevFeature,
"ntuple",
"rxhash",
"rdma",
- "txudptnl")
+ "txudptnl",
+ "switchdev")
#ifdef __linux__
int
@@ -2936,6 +2941,7 @@ int virNetDevGetRxFilter(const char *ifname,
return ret;
}
+
#if defined(SIOCETHTOOL) && defined(HAVE_STRUCT_IFREQ)
/**
@@ -3115,6 +3121,182 @@ virNetDevGetEthtoolFeatures(virBitmapPtr bitmap,
}
+#if HAVE_DECL_DEVLINK
+/**
+ * virNetDevPutExtraHeader
+ * reserve and prepare room for an extra header
+ * This function sets to zero the room that is required to put the extra
+ * header after the initial Netlink header. This function also increases
+ * the nlmsg_len field.
+ *
+ * @nlh: pointer to Netlink header
+ * @size: size of the extra header that we want to put
+ *
+ * Returns pointer to the start of the extended header
+ */
+static void *
+virNetDevPutExtraHeader(struct nlmsghdr *nlh,
+ size_t size)
+{
+ char *ptr = (char *)nlh + nlh->nlmsg_len;
+ size_t len = NLMSG_ALIGN(size);
+ nlh->nlmsg_len += len;
+ memset(ptr, 0, len);
+ return ptr;
+}
+
+
+/**
+ * virNetDevGetFamilyId:
+ * This function supplies the devlink family id
+ *
+ * @family_name: the name of the family to query
+ *
+ * Returns family id or 0 on failure.
+ */
+static uint32_t
+virNetDevGetFamilyId(const char *family_name)
+{
+ struct nl_msg *nl_msg = NULL;
+ struct nlmsghdr *resp = NULL;
+ struct genlmsghdr* gmsgh = NULL;
+ struct nlattr *tb[CTRL_ATTR_MAX + 1] = {NULL, };
+ unsigned int recvbuflen;
+ uint32_t family_id = 0;
+
+ if (!(nl_msg = nlmsg_alloc_simple(GENL_ID_CTRL,
+ NLM_F_REQUEST | NLM_F_ACK))) {
+ virReportOOMError();
+ goto cleanup;
+ }
+
+ if (!(gmsgh = virNetDevPutExtraHeader(nlmsg_hdr(nl_msg), sizeof(struct genlmsghdr))))
+ goto cleanup;
+
+ gmsgh->cmd = CTRL_CMD_GETFAMILY;
+ gmsgh->version = DEVLINK_GENL_VERSION;
+
+ if (nla_put_string(nl_msg, CTRL_ATTR_FAMILY_NAME, family_name) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("allocated netlink buffer is too small"));
+ goto cleanup;
+ }
+
+ if (virNetlinkCommand(nl_msg, &resp, &recvbuflen, 0, 0, NETLINK_GENERIC, 0) < 0)
+ goto cleanup;
+
+ if (nlmsg_parse(resp, sizeof(struct nlmsghdr), tb, CTRL_CMD_MAX, NULL) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("malformed netlink response message"));
+ goto cleanup;
+ }
+
+ if (tb[CTRL_ATTR_FAMILY_ID] == NULL)
+ goto cleanup;
+
+ family_id = *(uint32_t *)RTA_DATA(tb[CTRL_ATTR_FAMILY_ID]);
+
+ cleanup:
+ nlmsg_free(nl_msg);
+ VIR_FREE(resp);
+ return family_id;
+}
+
+
+/**
+ * virNetDevSwitchdevFeature
+ * This function checks for the availability of Switchdev feature
+ * and add it to bitmap
+ *
+ * @ifname: name of the interface
+ * @out: add Switchdev feature if exist to bitmap
+ *
+ * Returns 0 on success, -1 on failure.
+ */
+static int
+virNetDevSwitchdevFeature(const char *ifname,
+ virBitmapPtr *out)
+{
+ struct nl_msg *nl_msg = NULL;
+ struct nlmsghdr *resp = NULL;
+ unsigned int recvbuflen;
+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {NULL, };
+ virPCIDevicePtr pci_device_ptr = NULL;
+ struct genlmsghdr* gmsgh = NULL;
+ const char *pci_name;
+ char *pfname = NULL;
+ int is_vf = -1;
+ int ret = -1;
+ uint32_t family_id;
+
+ if ((family_id = virNetDevGetFamilyId(DEVLINK_GENL_NAME)) <= 0)
+ return ret;
+
+ if ((is_vf = virNetDevIsVirtualFunction(ifname)) < 0)
+ return ret;
+
+ if (is_vf == 1 && virNetDevGetPhysicalFunction(ifname, &pfname) < 0)
+ goto cleanup;
+
+ if (!(nl_msg = nlmsg_alloc_simple(family_id,
+ NLM_F_REQUEST | NLM_F_ACK))) {
+ virReportOOMError();
+ goto cleanup;
+ }
+
+ if (!(gmsgh = virNetDevPutExtraHeader(nlmsg_hdr(nl_msg), sizeof(struct genlmsghdr))))
+ goto cleanup;
+
+ gmsgh->cmd = DEVLINK_CMD_ESWITCH_GET;
+ gmsgh->version = DEVLINK_GENL_VERSION;
+
+ pci_device_ptr = pfname ? virNetDevGetPCIDevice(pfname) :
+ virNetDevGetPCIDevice(ifname);
+ if (pci_device_ptr == NULL)
+ goto cleanup;
+
+ pci_name = virPCIDeviceGetName(pci_device_ptr);
+
+ if (nla_put(nl_msg, DEVLINK_ATTR_BUS_NAME, strlen("pci")+1, "pci") < 0 ||
+ nla_put(nl_msg, DEVLINK_ATTR_DEV_NAME, strlen(pci_name)+1, pci_name) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("allocated netlink buffer is too small"));
+ goto cleanup;
+ }
+
+ if (virNetlinkCommand(nl_msg, &resp, &recvbuflen, 0, 0, NETLINK_GENERIC, 0) < 0)
+ goto cleanup;
+
+ if (nlmsg_parse(resp, sizeof(struct genlmsghdr), tb, DEVLINK_ATTR_MAX, NULL) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("malformed netlink response message"));
+ goto cleanup;
+ }
+
+ if (tb[DEVLINK_ATTR_ESWITCH_MODE] &&
+ *(int *)RTA_DATA(tb[DEVLINK_ATTR_ESWITCH_MODE]) == DEVLINK_ESWITCH_MODE_SWITCHDEV) {
+ ignore_value(virBitmapSetBit(*out, VIR_NET_DEV_FEAT_SWITCHDEV));
+ }
+
+ ret = 0;
+
+ cleanup:
+ nlmsg_free(nl_msg);
+ virPCIDeviceFree(pci_device_ptr);
+ VIR_FREE(resp);
+ VIR_FREE(pfname);
+ return ret;
+}
+#else
+static int
+virNetDevSwitchdevFeature(const char *ifname ATTRIBUTE_UNUSED,
+ virBitmapPtr *out ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+#endif
+
+
# if HAVE_DECL_ETHTOOL_GFEATURES
/**
* virNetDevGFeatureAvailable
@@ -3315,6 +3497,9 @@ virNetDevGetFeatures(const char *ifname,
if (virNetDevRDMAFeature(ifname, out) < 0)
goto cleanup;
+ if (virNetDevSwitchdevFeature(ifname, out) < 0)
+ goto cleanup;
+
ret = 0;
cleanup:
VIR_FORCE_CLOSE(fd);
diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h
index 9205c0e..71eaf45 100644
--- a/src/util/virnetdev.h
+++ b/src/util/virnetdev.h
@@ -112,6 +112,7 @@ typedef enum {
VIR_NET_DEV_FEAT_RXHASH,
VIR_NET_DEV_FEAT_RDMA,
VIR_NET_DEV_FEAT_TXUDPTNL,
+ VIR_NET_DEV_FEAT_SWITCHDEV,
VIR_NET_DEV_FEAT_LAST
} virNetDevFeature;
diff --git a/tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml b/tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml
index d4c96e8..88252e6 100644
--- a/tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml
+++ b/tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml
@@ -15,6 +15,7 @@
<feature name='rxhash'/>
<feature name='rdma'/>
<feature name='txudptnl'/>
+ <feature name='switchdev'/>
<capability type='80211'/>
</capability>
</device>
diff --git a/tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml b/tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml
index 71bf90e..f77dfcc 100644
--- a/tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml
+++ b/tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml
@@ -15,6 +15,7 @@
<feature name='rxhash'/>
<feature name='rdma'/>
<feature name='txudptnl'/>
+ <feature name='switchdev'/>
<capability type='80203'/>
</capability>
</device>
--
2.1.4
4
11
[libvirt] [PATCH v2 0/3] Be more selective when determining cdrom for taint messaging
by John Ferlan 18 Sep '17
by John Ferlan 18 Sep '17
18 Sep '17
v1: https://www.redhat.com/archives/libvir-list/2017-September/msg00103.html
Changes since v1:
Split into 3 parts... The first patch would be the bare minimum using
STRPREFIX instead of STREQ type comparisons for the incoming path to
be "/dev/cdrom[N]" or "/dev/srN" (or resolved to that).
This would "work" for the most part, but then since it's possible to
make even more checks let's check against the collected node device
data. Patch 2 therefore will "tag" the already collected cdrom data
with a capability. This allows patch3 to find any/all CDROM's on the
host and compare the resolved path to that list of devices returning
"true" if something matches a node device declared physical CDROM.
I split things up mainly to make it easier to decide whether patch 1
is sufficient or not. If patch2 and patch3 are OK, I would also add
a release note indicating the improvement to find CDROM by node device
capability. It's a separate "improvement" on it's own as well. Whether
it's truly useful or not, is a different question...
John Ferlan (3):
qemu: Be more selective when determining cdrom for taint messaging
nodedev: Add capability bit to detect 'cdrom' devices
qemu: Add inquiry to nodedev for cdrom taint checking
include/libvirt/libvirt-nodedev.h | 1 +
src/conf/node_device_conf.c | 6 ++-
src/conf/node_device_conf.h | 5 ++-
src/conf/virnodedeviceobj.c | 21 ++++++++--
src/node_device/node_device_driver.c | 1 +
src/node_device/node_device_udev.c | 2 +
src/qemu/qemu_domain.c | 78 +++++++++++++++++++++++++++++++++++-
src/qemu/qemu_domain.h | 2 +
src/qemu/qemu_driver.c | 4 +-
src/qemu/qemu_process.c | 2 +-
tools/virsh-nodedev.c | 3 ++
tools/virsh.pod | 2 +-
12 files changed, 116 insertions(+), 11 deletions(-)
--
2.9.5
2
5
[libvirt] [PATCH v3 0/6] Work around the kernel mdev uevent race in nodedev
by Erik Skultety 18 Sep '17
by Erik Skultety 18 Sep '17
18 Sep '17
v2 here: https://www.redhat.com/archives/libvir-list/2017-July/msg01268.html
Since v2:
- added patch 4/6 that fixes the issue with the handler thread spamming logs
with "udev_monitor_receive_device returned NULL"
-> the event loop callback now disables polling on the udev monitor's fd
every time there's a new event, leaving the responsibility for re-enabling
it back to the handler thread once it had removed the corresponding data
from the socket.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1463285
Erik Skultety (6):
nodedev: Introduce udevCheckMonitorFD helper function
udev: Split udevEventHandleCallback in two functions
udev: Convert udevEventHandleThread to an actual thread routine
nodedev: Disable/re-enable polling on the udev fd
util: Introduce virFileWaitForAccess
nodedev: Work around the uevent race by hooking up
virFileWaitForAccess
src/libvirt_private.syms | 1 +
src/node_device/node_device_udev.c | 208 ++++++++++++++++++++++++++++++++-----
src/util/virfile.c | 29 ++++++
src/util/virfile.h | 2 +
4 files changed, 214 insertions(+), 26 deletions(-)
--
2.13.3
2
22
18 Sep '17
Signed-off-by: zhenwei.pi <zhenwei.pi(a)youruncloud.com>
---
domain.go | 36 ++++++++++++++++++++++++++++++++++++
domain_test.go | 44 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 80 insertions(+)
diff --git a/domain.go b/domain.go
index bead49a..1bcc9cc 100644
--- a/domain.go
+++ b/domain.go
@@ -407,6 +407,29 @@ type DomainRNG struct {
Backend *DomainRNGBackend `xml:"backend"`
}
+type DomainHostdevAdapter struct {
+ Name string `xml:"name,attr,omitempty"`
+}
+
+type DomainHostdevSource struct {
+ Protocol string `xml:"protocol,attr,omitempty"`
+ Name string `xml:"name,attr,omitempty"`
+ Wwpn string `xml:"wwpn,attr,omitempty"`
+ Adapter *DomainHostdevAdapter `xml:"adapter"`
+ Address *DomainAddress `xml:"address"`
+}
+
+type DomainHostdev struct {
+ XMLName xml.Name `xml:"hostdev"`
+ Mode string `xml:"mode,attr"`
+ Type string `xml:"type,attr"`
+ Sgio string `xml:"sgio,attr,omitempty"`
+ Rawio string `xml:"rawio,attr,omitempty"`
+ Managed string `xml:"managed,attr,omitempty"`
+ Source *DomainHostdevSource `xml:"source"`
+ Address *DomainAddress `xml:"address"`
+}
+
type DomainDeviceList struct {
Emulator string `xml:"emulator,omitempty"`
Controllers []DomainController `xml:"controller"`
@@ -422,6 +445,7 @@ type DomainDeviceList struct {
MemBalloon *DomainMemBalloon `xml:"memballoon"`
Sounds []DomainSound `xml:"sound"`
RNGs []DomainRNG `xml:"rng"`
+ Hostdevs []DomainHostdev `xml:"hostdev"`
}
type DomainMemory struct {
@@ -794,6 +818,18 @@ func (d *DomainRNG) Marshal() (string, error) {
return string(doc), nil
}
+func (d *DomainHostdev) Unmarshal(doc string) error {
+ return xml.Unmarshal([]byte(doc), d)
+}
+
+func (d *DomainHostdev) Marshal() (string, error) {
+ doc, err := xml.MarshalIndent(d, "", " ")
+ if err != nil {
+ return "", err
+ }
+ return string(doc), nil
+}
+
type HexUint uint
func (h *HexUint) UnmarshalXMLAttr(attr xml.Attr) error {
diff --git a/domain_test.go b/domain_test.go
index d1b107d..73dd47b 100644
--- a/domain_test.go
+++ b/domain_test.go
@@ -37,6 +37,13 @@ type Address struct {
Function HexUint
}
+type ScsiAddress struct {
+ Controller uint
+ Bus HexUint
+ Target uint
+ Unit uint
+}
+
var uhciIndex uint = 0
var uhciAddr = Address{0, 0, 1, 2}
@@ -46,6 +53,7 @@ var videoAddr = Address{0, 0, 5, 0}
var fsAddr = Address{0, 0, 6, 0}
var balloonAddr = Address{0, 0, 7, 0}
var duplexAddr = Address{0, 0, 8, 0}
+var hostdevScsi = ScsiAddress{0, 0, 3, 0}
var serialPort uint = 0
var tabletBus HexUint = 0
@@ -1457,6 +1465,42 @@ var domainTestData = []struct {
`</rng>`,
},
},
+ {
+ Object: &DomainHostdev{
+ Mode: "subsystem",
+ Type: "scsi",
+ Sgio: "unfiltered",
+ Rawio: "yes",
+ Source: &DomainHostdevSource{
+ Adapter: &DomainHostdevAdapter{
+ Name: "scsi_host0",
+ },
+ Address: &DomainAddress{
+ Type: "scsi",
+ Bus: &hostdevScsi.Bus,
+ Target: &hostdevScsi.Target,
+ Unit: &hostdevScsi.Unit,
+ },
+ },
+ Address: &DomainAddress{
+ Type: "drive",
+ Controller: &hostdevScsi.Controller,
+ Bus: &hostdevScsi.Bus,
+ Target: &hostdevScsi.Target,
+ Unit: &hostdevScsi.Unit,
+ },
+ },
+
+ Expected: []string{
+ `<hostdev mode="subsystem" type="scsi" sgio="unfiltered" rawio="yes">`,
+ ` <source>`,
+ ` <adapter name="scsi_host0"></adapter>`,
+ ` <address type="scsi" bus="0" target="3" unit="0"></address>`,
+ ` </source>`,
+ ` <address type="drive" controller="0" bus="0" target="3" unit="0"></address>`,
+ `</hostdev>`,
+ },
+ },
}
func TestDomain(t *testing.T) {
--
2.7.4
2
1
[libvirt] Questions about function virPCIDeviceIsBehindSwitchLackingACS in virpci.c
by Wuzongyong (Euler Dept) 18 Sep '17
by Wuzongyong (Euler Dept) 18 Sep '17
18 Sep '17
In function virPCIDeviceIsBehindSwitchLackingACS, I noticed that(line 8):
1 if (virPCIDeviceGetParent(dev, &parent) < 0)
2 return -1;
3 if (!parent) {
4 /* if we have no parent, and this is the root bus, ACS doesn't come
5 * into play since devices on the root bus can't P2P without going
6 * through the root IOMMU.
7 */
8 if (dev->address.bus == 0) {
9 return 0;
10 } else {
11 virReportError(VIR_ERR_INTERNAL_ERROR,
12 _("Failed to find parent device for %s"),
13 dev->name);
14 return -1;
15 }
16 }
Why we just return 0 only if device's bus is 0?
In my server, I can see a root bus which bus number is greater than 0, see the
results(just a part) after I run lspci -t:
+-[0000:80]-+-02.0-[81-83]--+-00.0
| | \-00.1
| +-05.0
| +-05.1
| +-05.2
| \-05.4
+-[0000:7f]-+-08.0
| +-08.2
| +-08.3
| + . . .
| \-1f.2
\-[0000:00]-+-00.0
+-01.0-[01]----00.0
+-02.0-[02]--+-00.0
| +-00.1
| +-00.2
| \-00.3
+-02.2-[03]--
+-03.0-[04-0b]----00.0-[05-0b]--+-08.0-[06-08]----00.0
| \-10.0-[09-0b]----00.0
+-05.0
+-05.1
+-05.2
+-05.4
+-11.0
+-11.4
+-16.0
+-16.1
+-1a.0
If I assign the device 0000:81:00.0 to a VM, I get "Failed to find parent device".
I think I should get no error with return value 0 just like bus number is 0, because
bus 80 is the root bus as well in my case.
In the <<Intel C610 Series Chipset and Intel X99 Chipset Platform Controller Hub(PCH)>>
Datasheet, I found that(Chapter 9.1):
For some server platforms, it may be desirable to have multiple PCHs in the system
Which means some PCH's may reside on a bus greater than 0.
So, is this a bug?
Thanks,
Zongyong Wu
1
0
[libvirt] [PATCH python] Skip sparseRecvAll / sparseSendAll in sanity test
by Daniel P. Berrange 18 Sep '17
by Daniel P. Berrange 18 Sep '17
18 Sep '17
The sanity test check aims to ensure that every function listed in
the Python code maps to a corresponding C function. The Sparse
send/recv methods are special though - we're never calling the
corresponding C APIs, instead we have a pure python impl.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
sanitytest.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sanitytest.py b/sanitytest.py
index deec200..a5cb01b 100644
--- a/sanitytest.py
+++ b/sanitytest.py
@@ -351,7 +351,8 @@ for klass in gotfunctions:
for func in sorted(gotfunctions[klass]):
# These are pure python methods with no C APi
if func in ["connect", "getConnect", "domain", "getDomain",
- "virEventInvokeFreeCallback"]:
+ "virEventInvokeFreeCallback",
+ "sparseRecvAll", "sparseSendAll"]:
continue
key = "%s.%s" % (klass, func)
--
2.13.5
3
4
Jiri Denemark (3):
tests: Add CPUID data for Intel(R) Xeon(R) Gold 6148 CPU
cpu: Add clwb/pcommit CPU features
cpu: Add new Skylake-Server CPU model
src/cpu/cpu_map.xml | 81 +++++++
tests/cputest.c | 1 +
.../x86_64-cpuid-Xeon-Gold-6148-disabled.xml | 7 +
.../x86_64-cpuid-Xeon-Gold-6148-enabled.xml | 9 +
.../x86_64-cpuid-Xeon-Gold-6148-guest.xml | 29 +++
.../x86_64-cpuid-Xeon-Gold-6148-host.xml | 30 +++
.../x86_64-cpuid-Xeon-Gold-6148-json.xml | 8 +
tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json | 235 +++++++++++++++++++++
tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml | 54 +++++
.../domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml | 2 +
10 files changed, 456 insertions(+)
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-disabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-enabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json
create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml
--
2.14.1
2
4
Hi,
QEMU live patching should be just a matter of updating the QEMU RPM package
and then live migrating the VMs to another QEMU instance on the same host
(which would point to the just installed new QEMU executable).
I think it will be useful to support it from libvirt side. After some
searching I found a
RFC patch posted in Nov 2013. Here is the link to it
https://www.redhat.com/archives/libvir-list/2013-November/msg00372.html
Approach followed in above mentioned link is as follows:
1. newDef = deep copy oldVm definition
2. newVm = create VM using newDef, start QEMU process with all vCPUs paused
3. oldVm migrate to newVm using unix socket
4. shutdown oldVm
5. newPid = newVm->pid
6. finalDef = live deep copy of newVm definition
7. Drop the newVm from qemu domain table without shutting down QEMU process
8. Assign finalDef to oldVm
9. oldVm attaches to QEMU process newPid using finalDef
10.resume all vCPUs in oldVm
I can see it didn't get communities approval for having problems in
handling UUID
of the vm's. To fix the problem we need to teach libvirt to manage two
qemu processes
at once both tied to same UUID. I would like to know if there is any
interested approach
to get this done. I would like to send patches on this.
Is there any specific reason why it is not been pursued for the last 4 year?
I plan to use postcopy along with the local migration as part of
migration, that way the
guest need not be even paused for a busy guest.
Thanks,
Madhu Pavan.
4
6
[libvirt] [PATCH 0/7] qemu: Filter CPU features returned by qemuConnectBaselineCPU
by Jiri Denemark 18 Sep '17
by Jiri Denemark 18 Sep '17
18 Sep '17
The host CPU definitions reported in the capabilities XML may contain
CPU features unknown to QEMU, but the result of virConnectBaselineCPU is
supposed to be directly usable as a guest CPU definition and thus it
should only contain features QEMU knows about.
https://bugzilla.redhat.com/show_bug.cgi?id=1450317
Jiri Denemark (7):
cpu_conf: Introduce virCPUDefList{Parse,Free}
cpu: Use virCPUDefListParse in cpuBaselineXML
cpu: Don't log CPU models in cpuBaselineXML
cpu: Drop cpuBaselineXML
qemu: Pass virArch * to virQEMUCapsCPUFilterFeatures
qemu: Publish virQEMUCapsCPUFilterFeatures
qemu: Filter CPU features returned by qemuConnectBaselineCPU
src/bhyve/bhyve_driver.c | 22 +++++++--
src/conf/cpu_conf.c | 78 ++++++++++++++++++++++++++++++++
src/conf/cpu_conf.h | 7 +++
src/cpu/cpu.c | 104 -------------------------------------------
src/cpu/cpu.h | 7 ---
src/libvirt_private.syms | 3 +-
src/libxl/libxl_driver.c | 22 +++++++--
src/qemu/qemu_capabilities.c | 8 ++--
src/qemu/qemu_capabilities.h | 3 ++
src/qemu/qemu_driver.c | 32 +++++++++++--
src/test/test_driver.c | 22 +++++++--
src/vz/vz_driver.c | 22 ++++++++-
12 files changed, 201 insertions(+), 129 deletions(-)
--
2.14.1
2
10
18 Sep '17
https://bugzilla.redhat.com/show_bug.cgi?id=1373783
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
tools/virsh.pod | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 01453be600..a03f64a262 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -1767,7 +1767,13 @@ periodically increased by I<auto-converge-increment>.
I<--rdma-pin-all> can be used with RDMA migration (i.e., when I<migrateuri>
starts with rdma://) to tell the hypervisor to pin all domain's memory at once
-before migration starts rather than letting it pin memory pages as needed.
+before migration starts rather than letting it pin memory pages as needed. For
+QEMU/KVM this requires hard_limit memory tuning element (in the domain XML) to
+be used and set to the maximum memory configured for the domain plus any memory
+consumed by the QEMU process itself. Beware of setting the memory limit too
+high (and thus allowing the domain to lock most of the host's memory). Doing so
+may be dangerous to both the domain and the host itself since the host's kernel
+may run out of memory.
B<Note>: Individual hypervisors usually do not support all possible types of
migration. For example, QEMU does not support direct migration.
--
2.14.1
2
1
[libvirt] [PATCH] util: virPCIGetNetName(): use first netdev name when phys_port_id isn't matched
by Laine Stump 15 Sep '17
by Laine Stump 15 Sep '17
15 Sep '17
The mlx4 (Mellanox) netdev driver implements the sysfs phys_port_id
file for both VFs and PFs, so you can find the VF netdev plugged into
the same physical port as any given PF netdev by comparing the
contents of phys_port_id of the respective netdevs. That's what
libvirt does when attempting to find the PF netdev for a given VF
netdev (or vice versa).
Most other netdevs drivers don't implement phys_port_id, so the file
shows up in sysfs, but attempts to read it result in ENOTSUPP. In
these cases, libvirt is unable to read phys_port_id, so it just
returns the first entry in the PF/VF's list of netdevs.
But we've found that the i40e driver is in between these two
situations - it implements phys_port_id for PF netdevs, but doesn't
implement it for VF netdevs. So libvirt would successfully read the
phys_port_id of the PF netdev, then try to find a VF netdev with
matching phys_port_id, but would fail because it is NULL for all
VFs. This would result in a message like the following:
Could not find network device with phys_port_id '3cfdfe9edc39'
under PCI device at /sys/class/net/ens4f1/device/virtfn0
To solve this problem in a way that won't break functionality for
anyone else, this patch saves the first netdev name we find for the
device, and returns that if we fail to find a netdev with the desired
phys_port_id.
---
src/util/virpci.c | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 5ded77087..402602678 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -2876,6 +2876,7 @@ virPCIGetNetName(const char *device_link_sysfs_path,
int ret = -1;
DIR *dir = NULL;
struct dirent *entry = NULL;
+ char *firstEntryName = NULL;
char *thisPhysPortID = NULL;
size_t i = 0;
@@ -2902,6 +2903,15 @@ virPCIGetNetName(const char *device_link_sysfs_path,
/* if this one doesn't match, keep looking */
if (STRNEQ_NULLABLE(physPortID, thisPhysPortID)) {
VIR_FREE(thisPhysPortID);
+ /* save the first entry we find to use as a failsafe
+ * in case we don't match the phys_port_id. This is
+ * needed because some NIC drivers (e.g. i40e)
+ * implement phys_port_id for PFs, but not for VFs
+ */
+ if (!firstEntryName &&
+ VIR_STRDUP(firstEntryName, entry->d_name) < 0)
+ goto cleanup;
+
continue;
}
} else {
@@ -2918,10 +2928,21 @@ virPCIGetNetName(const char *device_link_sysfs_path,
if (ret < 0) {
if (physPortID) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Could not find network device with "
- "phys_port_id '%s' under PCI device at %s"),
- physPortID, device_link_sysfs_path);
+ if (firstEntryName) {
+ /* we didn't match the provided phys_port_id, but this
+ * is probably because phys_port_id isn't implemented
+ * for this NIC driver, so just return the first
+ * (probably only) netname we found.
+ */
+ *netname = firstEntryName;
+ firstEntryName = NULL;
+ ret = 0;
+ } else {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Could not find network device with "
+ "phys_port_id '%s' under PCI device at %s"),
+ physPortID, device_link_sysfs_path);
+ }
} else {
ret = 0; /* no netdev at the given index is *not* an error */
}
@@ -2930,6 +2951,7 @@ virPCIGetNetName(const char *device_link_sysfs_path,
VIR_DIR_CLOSE(dir);
VIR_FREE(pcidev_sysfs_net_path);
VIR_FREE(thisPhysPortID);
+ VIR_FREE(firstEntryName);
return ret;
}
--
2.13.5
2
1
[libvirt] [PATCH 0/4] qemu: Validate guest CPU features before starting a domain
by Jiri Denemark 15 Sep '17
by Jiri Denemark 15 Sep '17
15 Sep '17
CPU features are usually checked by libvirt, but not if libvirt decides
it should not check the CPU at all, which happens with host-passthrough
CPUs, for example. Let's check all used CPU features are valid for all
CPU definitions.
https://bugzilla.redhat.com/show_bug.cgi?id=1460086
Jiri Denemark (4):
cpu: Introduce virCPUValidateFeatures
qemu: Validate guest CPU features before starting a domain
cpu_s390: Implement virCPUValidateFeatures
cpu_x86: Implement virCPUValidateFeatures
src/cpu/cpu.c | 29 +++++++++++++++++++++++++++++
src/cpu/cpu.h | 9 +++++++++
src/cpu/cpu_s390.c | 29 +++++++++++++++++++++--------
src/cpu/cpu_x86.c | 23 +++++++++++++++++++++++
src/libvirt_private.syms | 1 +
src/qemu/qemu_process.c | 4 ++++
6 files changed, 87 insertions(+), 8 deletions(-)
--
2.14.1
2
5
This is required by the fedora packaging guidelines:
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines
This macro isn't available on stock RHEL6 so provide a backcompat
definition
https://bugzilla.redhat.com/show_bug.cgi?id=1483293
Reported-by: Ville SkyttƤ <ville.skytta(a)iki.fi>
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
libvirt.spec.in | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 583fb0583..5f232b1ba 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -15,6 +15,8 @@
# touch configure.ac or Makefile.am.
%{!?enable_autotools:%global enable_autotools 0}
+# RHEL6 doesn't have 'license' macro
+%{!?_licensedir:%global license %%doc}
# The hypervisor drivers that run in libvirtd
%define with_xen 0%{!?_without_xen:1}
@@ -2030,7 +2032,7 @@ exit 0
%attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
%files libs -f %{name}.lang
-%doc COPYING COPYING.LESSER
+%license COPYING COPYING.LESSER
%config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
%config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
%{_libdir}/libvirt.so.*
--
2.13.5
2
3
[libvirt] [libvirt-sandbox PATCH 0/2] virt-sandbox-image: unbreak start from library
by Guido Günther 15 Sep '17
by Guido Günther 15 Sep '17
15 Sep '17
This is basically a V2 of "Drop library/ from template name and image path"
with Dan's comment implemented.
Guido Günther (2):
Drop library/ from image path
Sanitize domain name
libvirt-sandbox/image/cli.py | 8 ++++++--
libvirt-sandbox/image/sources/docker.py | 2 +-
2 files changed, 7 insertions(+), 3 deletions(-)
--
2.11.0
2
7
15 Sep '17
Luckily it only returns 0 or -1
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Pushed as trivial..
Tripped across this while working on something else.
src/qemu/qemu_conf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index ab5f7cc59..68c00c1e8 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1300,7 +1300,7 @@ qemuSharedDeviceEntryInsert(virQEMUDriverPtr driver,
entry->ref = 1;
- if (virHashAddEntry(driver->sharedDevices, key, entry))
+ if (virHashAddEntry(driver->sharedDevices, key, entry) < 0)
goto error;
}
--
2.13.5
1
0
Perform some cleanups with the auth and encryption processing.
This is a precursor to some other changes that will move/create
disk <source> level <auth> and <encryption> elements since they
are already in the _virStorageSource.
I'm still working on the latter, but before there's too many patches.
John Ferlan (6):
docs: Remove unnecessary <auth> example for iscsi disk type='volume'
conf: Add invalid secrettype checks
conf: Move <disk> authdef validation
conf: Add invalid domain disk encryption test
conf: Move <disk> encryption validation
conf: Use virXMLFormatElement to format disk source network
docs/formatdomain.html.in | 6 -
src/conf/domain_conf.c | 126 ++++++++++-----------
...drive-network-iscsi-auth-secrettype-invalid.xml | 33 ++++++
...k-drive-network-iscsi-auth-wrong-secrettype.xml | 33 ++++++
.../qemuxml2argv-disk-source-pool-mode.args | 3 +
.../qemuxml2argv-disk-source-pool-mode.xml | 13 +++
.../qemuxml2argv-luks-disk-invalid.xml | 37 ++++++
tests/qemuxml2argvtest.c | 3 +
.../qemuxml2xmlout-disk-source-pool-mode.xml | 13 +++
9 files changed, 198 insertions(+), 69 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth-secrettype-invalid.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth-wrong-secrettype.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-luks-disk-invalid.xml
--
2.13.5
2
15
[libvirt] [PATCH] spec: Own %{_libdir}/libvirt{, /connection-driver} dirs
by Cole Robinson 15 Sep '17
by Cole Robinson 15 Sep '17
15 Sep '17
From: Ville SkyttƤ <ville.skytta(a)iki.fi>
Owning all created directories is a requirement of the Fedora
packaging guidelines
https://bugzilla.redhat.com/show_bug.cgi?id=1483293
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
libvirt.spec.in | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 2b58bf3a9..583fb0583 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1794,6 +1794,8 @@ exit 0
%dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
+%dir %attr(0755, root, root) %{_libdir}/libvirt/
+%dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
%dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
--
2.13.5
2
1
[libvirt] [PATCH] spec: Own %{_libdir}/libvirt{, /connection-driver} dirs, mark licenses as %license
by Cole Robinson 14 Sep '17
by Cole Robinson 14 Sep '17
14 Sep '17
From: Ville SkyttƤ <ville.skytta(a)iki.fi>
https://bugzilla.redhat.com/show_bug.cgi?id=1483293
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
libvirt.spec.in | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 2b58bf3a9..2d21e60bc 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1794,6 +1794,8 @@ exit 0
%dir %attr(0711, root, root) %{_localstatedir}/cache/libvirt/
+%dir %attr(0755, root, root) %{_libdir}/libvirt/
+%dir %attr(0755, root, root) %{_libdir}/libvirt/connection-driver/
%dir %attr(0755, root, root) %{_libdir}/libvirt/lock-driver
%attr(0755, root, root) %{_libdir}/libvirt/lock-driver/lockd.so
@@ -2028,7 +2030,7 @@ exit 0
%attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh
%files libs -f %{name}.lang
-%doc COPYING COPYING.LESSER
+%license COPYING COPYING.LESSER
%config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf
%config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf
%{_libdir}/libvirt.so.*
--
2.13.5
2
2
Hi Michal,
You asked how NVDIMM hotplug should work if the domain was launched
without -M nvdimm=on. I'm not very familiar with ACPI so this may be
incorrect.
Hotplug relies on the presence of ACPI tables (SSDT Device=NVDR
_HID=ACPI0012) added by -M nvdimm=on. The ACPI tables contain the
interface needed to handle hotplug events.
The device_add command fails with the following message if -M nvdimm=on
is missing:
nvdimm is not enabled: missing 'nvdimm' in '-M'
I'm not sure if ACPI allows SSDT tables to be dynamically added but in
any case the current QEMU code doesn't support that.
Options for libvirt:
1. Rely on QEMU's device_add error.
Pro: If QEMU behavior ever changes then libvirt will also start
working without code changes.
Cons: Does libvirt interpret QMP error strings?
2. Only allow NVDIMM hotplug if the domain was started with -M
nvdimm=on.
I think QEMU will not add -M nvdimm=on to the "pc" machine type by
default since it adds the NVDIMM DSM hardware interface that increases
the security attack surface.
Stefan
5
6
14 Sep '17
This series fixes the precise+gcc combo not being actually tested
and significantly improves test coverage by installing a bunch of
additional optional dependencies on the workers.
Andrea Bolognani (8):
travis: Limit git depth to 5 commits
travis: Move variables to 'env' section
travis: Don't abort build due to -Wvariadic-macros
travis: Split building command
travis: Don't have a separate script definition for macOS
travis: Improve test matrix
travis: Install more build dependencies
travis: Shuffle sections around
.travis.yml | 125 ++++++++++++++++++++++++++++++++++++++----------------------
1 file changed, 79 insertions(+), 46 deletions(-)
--
2.13.5
3
24
[libvirt] [libvirt-python][PATCH] maint: Require libvirt-3.4.0 at least
by Michal Privoznik 14 Sep '17
by Michal Privoznik 14 Sep '17
14 Sep '17
Currently, we require 0.9.11. However, some APIs are missing
there and thus sanity check fails:
DEBUG: /usr/bin/python sanitytest.py build/lib.linux-s390x-2.7 /usr/share/libvirt/api/libvirt-api.xml
DEBUG: FAIL virStream.sparseRecvAll (Python API not mapped to C)
DEBUG: FAIL virStream.sparseSendAll (Python API not mapped to C)
DEBUG: error: command '/usr/bin/python' failed with exit status 1
I'm not sure how to fix that so raising minimal required libvirt
version is the solution.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
setup.py | 2 +-
README | 2 +-
libvirt-override.c | 149 -----------------------------------------------------
3 files changed, 2 insertions(+), 151 deletions(-)
diff --git a/setup.py b/setup.py
index f33ff1a..f929eb2 100755
--- a/setup.py
+++ b/setup.py
@@ -17,7 +17,7 @@ import re
import shutil
import time
-MIN_LIBVIRT = "0.9.11"
+MIN_LIBVIRT = "3.4.0"
MIN_LIBVIRT_LXC = "1.0.2"
# Hack to stop 'pip install' failing with error
diff --git a/README b/README
index 96082f0..bc3ee77 100644
--- a/README
+++ b/README
@@ -5,7 +5,7 @@ This package provides a python binding to the libvirt.so,
libvirt-qemu.so and libvirt-lxc.so library APIs.
It is written to build against any version of libvirt that
-is 0.9.11 or newer.
+is 3.4.0 or newer.
This code is distributed under the terms of the LGPL version
2 or later.
diff --git a/libvirt-override.c b/libvirt-override.c
index 9eba4ed..280856d 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -66,20 +66,9 @@ getPyNodeCPUCount(virConnectPtr conn)
{
int i_retval;
-#if LIBVIR_CHECK_VERSION(1, 0, 0)
LIBVIRT_BEGIN_ALLOW_THREADS;
i_retval = virNodeGetCPUMap(conn, NULL, NULL, 0);
LIBVIRT_END_ALLOW_THREADS;
-#else /* fallback: use nodeinfo */
- virNodeInfo nodeinfo;
-
- LIBVIRT_BEGIN_ALLOW_THREADS;
- i_retval = virNodeGetInfo(conn, &nodeinfo);
- LIBVIRT_END_ALLOW_THREADS;
-
- if (i_retval >= 0)
- i_retval = VIR_NODEINFO_MAXCPUS(nodeinfo);
-#endif /* LIBVIR_CHECK_VERSION(1, 0, 0) */
return i_retval;
}
@@ -398,14 +387,12 @@ libvirt_virDomainMemoryStats(PyObject *self ATTRIBUTE_UNUSED,
case VIR_DOMAIN_MEMORY_STAT_RSS:
key = libvirt_constcharPtrWrap("rss");
break;
-#if LIBVIR_CHECK_VERSION(2, 1, 0)
case VIR_DOMAIN_MEMORY_STAT_USABLE:
key = libvirt_constcharPtrWrap("usable");
break;
case VIR_DOMAIN_MEMORY_STAT_LAST_UPDATE:
key = libvirt_constcharPtrWrap("last_update");
break;
-#endif /* LIBVIR_CHECK_VERSION(2, 1, 0) */
default:
continue;
}
@@ -1451,7 +1438,6 @@ libvirt_virDomainGetVcpuPinInfo(PyObject *self ATTRIBUTE_UNUSED,
}
-#if LIBVIR_CHECK_VERSION(0, 10, 0)
static PyObject *
libvirt_virDomainPinEmulator(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -1547,9 +1533,7 @@ libvirt_virDomainGetEmulatorPinInfo(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(pycpumap);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 0) */
-#if LIBVIR_CHECK_VERSION(1, 2, 14)
static PyObject *
libvirt_virDomainGetIOThreadInfo(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -1668,7 +1652,6 @@ libvirt_virDomainPinIOThread(PyObject *self ATTRIBUTE_UNUSED,
return ret;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 14) */
/************************************************************************
* *
@@ -2037,7 +2020,6 @@ libvirt_virConnectGetVersion(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_intWrap(hvVersion);
}
-#if LIBVIR_CHECK_VERSION(1, 1, 3)
static PyObject *
libvirt_virConnectGetCPUModelNames(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -2083,7 +2065,6 @@ libvirt_virConnectGetCPUModelNames(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(rv);
goto done;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 1, 3) */
static PyObject *
libvirt_virConnectGetLibVersion(PyObject *self ATTRIBUTE_UNUSED,
@@ -2162,7 +2143,6 @@ libvirt_virConnectListDomainsID(PyObject *self ATTRIBUTE_UNUSED,
return NULL;
}
-#if LIBVIR_CHECK_VERSION(0, 9, 13)
static PyObject *
libvirt_virConnectListAllDomains(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -2206,7 +2186,6 @@ libvirt_virConnectListAllDomains(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 9, 13) */
static PyObject *
libvirt_virConnectListDefinedDomains(PyObject *self ATTRIBUTE_UNUSED,
@@ -2317,7 +2296,6 @@ libvirt_virDomainSnapshotListNames(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#if LIBVIR_CHECK_VERSION(0, 9, 13)
static PyObject *
libvirt_virDomainListAllSnapshots(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -2361,7 +2339,6 @@ libvirt_virDomainListAllSnapshots(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 9, 13) */
static PyObject *
libvirt_virDomainSnapshotListChildrenNames(PyObject *self ATTRIBUTE_UNUSED,
@@ -2417,7 +2394,6 @@ libvirt_virDomainSnapshotListChildrenNames(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#if LIBVIR_CHECK_VERSION(0, 9, 13)
static PyObject *
libvirt_virDomainSnapshotListAllChildren(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -2461,7 +2437,6 @@ libvirt_virDomainSnapshotListAllChildren(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 9, 13) */
static PyObject *
libvirt_virDomainRevertToSnapshot(PyObject *self ATTRIBUTE_UNUSED,
@@ -2752,7 +2727,6 @@ libvirt_virDomainGetSecurityLabel(PyObject *self ATTRIBUTE_UNUSED,
return NULL;
}
-#if LIBVIR_CHECK_VERSION(0, 10, 0)
static PyObject *
libvirt_virDomainGetSecurityLabelList(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -2803,7 +2777,6 @@ libvirt_virDomainGetSecurityLabelList(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 0) */
static PyObject *
libvirt_virDomainGetUUID(PyObject *self ATTRIBUTE_UNUSED,
@@ -2992,7 +2965,6 @@ libvirt_virConnectListDefinedNetworks(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
static PyObject *
libvirt_virConnectListAllNetworks(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -3036,7 +3008,6 @@ libvirt_virConnectListAllNetworks(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
static PyObject *
@@ -3437,7 +3408,6 @@ libvirt_virConnectListDefinedStoragePools(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
static PyObject *
libvirt_virConnectListAllStoragePools(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -3482,7 +3452,6 @@ libvirt_virConnectListAllStoragePools(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
static PyObject *
libvirt_virStoragePoolListVolumes(PyObject *self ATTRIBUTE_UNUSED,
@@ -3539,7 +3508,6 @@ libvirt_virStoragePoolListVolumes(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
static PyObject *
libvirt_virStoragePoolListAllVolumes(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -3585,7 +3553,6 @@ libvirt_virStoragePoolListAllVolumes(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
static PyObject *
@@ -3689,7 +3656,6 @@ libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED,
return NULL;
}
-#if LIBVIR_CHECK_VERSION(3, 0, 0)
static PyObject *
libvirt_virStorageVolGetInfoFlags(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -3727,7 +3693,6 @@ libvirt_virStorageVolGetInfoFlags(PyObject *self ATTRIBUTE_UNUSED,
Py_DECREF(py_retval);
return NULL;
}
-#endif
static PyObject *
libvirt_virStoragePoolGetUUID(PyObject *self ATTRIBUTE_UNUSED,
@@ -3863,7 +3828,6 @@ libvirt_virNodeListDevices(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
static PyObject *
libvirt_virConnectListAllNodeDevices(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -3908,7 +3872,6 @@ libvirt_virConnectListAllNodeDevices(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
static PyObject *
libvirt_virNodeDeviceListCaps(PyObject *self ATTRIBUTE_UNUSED,
@@ -4094,7 +4057,6 @@ libvirt_virConnectListSecrets(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
static PyObject *
libvirt_virConnectListAllSecrets(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -4139,7 +4101,6 @@ libvirt_virConnectListAllSecrets(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
static PyObject *
libvirt_virSecretGetValue(PyObject *self ATTRIBUTE_UNUSED,
@@ -4327,7 +4288,6 @@ libvirt_virConnectListNWFilters(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
static PyObject *
libvirt_virConnectListAllNWFilters(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -4372,7 +4332,6 @@ libvirt_virConnectListAllNWFilters(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
static PyObject *
libvirt_virConnectListInterfaces(PyObject *self ATTRIBUTE_UNUSED,
@@ -4489,7 +4448,6 @@ libvirt_virConnectListDefinedInterfaces(PyObject *self ATTRIBUTE_UNUSED,
}
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
static PyObject *
libvirt_virConnectListAllInterfaces(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -4534,7 +4492,6 @@ libvirt_virConnectListAllInterfaces(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
static PyObject *
libvirt_virConnectBaselineCPU(PyObject *self ATTRIBUTE_UNUSED,
@@ -4645,7 +4602,6 @@ libvirt_virDomainGetJobInfo(PyObject *self ATTRIBUTE_UNUSED,
return NULL;
}
-#if LIBVIR_CHECK_VERSION(1, 0, 3)
static PyObject *
libvirt_virDomainGetJobStats(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -4684,7 +4640,6 @@ libvirt_virDomainGetJobStats(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(dict);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 0, 3) */
static PyObject *
libvirt_virDomainGetBlockJobInfo(PyObject *self ATTRIBUTE_UNUSED,
@@ -4913,7 +4868,6 @@ libvirt_virDomainGetDiskErrors(PyObject *self ATTRIBUTE_UNUSED,
}
-#if LIBVIR_CHECK_VERSION(1, 2, 14)
static PyObject *
libvirt_virDomainInterfaceAddresses(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -5000,7 +4954,6 @@ libvirt_virDomainInterfaceAddresses(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(py_retval);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 14) */
/*******************************************
@@ -7156,7 +7109,6 @@ libvirt_virConnectDomainEventDeregisterAny(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_intWrap(ret);
}
-#if LIBVIR_CHECK_VERSION(1, 2, 1)
static void
libvirt_virConnectNetworkEventFreeFunc(void *opaque)
{
@@ -7299,9 +7251,7 @@ libvirt_virConnectNetworkEventDeregisterAny(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_intWrap(ret);
}
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 1)*/
-#if LIBVIR_CHECK_VERSION(0, 10, 0)
static void
libvirt_virConnectCloseCallbackDispatch(virConnectPtr conn ATTRIBUTE_UNUSED,
int reason,
@@ -7398,7 +7348,6 @@ libvirt_virConnectUnregisterCloseCallback(PyObject * self ATTRIBUTE_UNUSED,
return libvirt_intWrap(ret);
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 0) */
static void
libvirt_virStreamEventFreeFunc(void *opaque)
@@ -7585,7 +7534,6 @@ libvirt_virDomainSendKey(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_intWrap(ret);
}
-#if LIBVIR_CHECK_VERSION(1, 0, 3)
static PyObject *
libvirt_virDomainMigrateGetCompressionCache(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -7612,7 +7560,6 @@ libvirt_virDomainMigrateGetCompressionCache(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_ulonglongWrap(cacheSize);
}
-#endif /* LIBVIR_CHECK_VERSION(1, 0, 3) */
static PyObject *
libvirt_virDomainMigrateGetMaxSpeed(PyObject *self ATTRIBUTE_UNUSED,
@@ -7669,7 +7616,6 @@ libvirt_virDomainMigrateGetMaxDowntime(PyObject *self ATTRIBUTE_UNUSED,
}
#endif /* LIBVIR_CHECK_VERSION(3, 7, 0) */
-#if LIBVIR_CHECK_VERSION(1, 1, 0)
static PyObject *
libvirt_virDomainMigrate3(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -7731,7 +7677,6 @@ libvirt_virDomainMigrateToURI3(PyObject *self ATTRIBUTE_UNUSED,
virTypedParamsFree(params, nparams);
return libvirt_intWrap(ret);
}
-#endif /* LIBVIR_CHECK_VERSION(1, 1, 0) */
static PyObject *
libvirt_virDomainBlockPeek(PyObject *self ATTRIBUTE_UNUSED,
@@ -7810,7 +7755,6 @@ libvirt_virDomainMemoryPeek(PyObject *self ATTRIBUTE_UNUSED,
return py_retval;
}
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
static PyObject *
libvirt_virNodeSetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -7930,9 +7874,7 @@ libvirt_virNodeGetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
virTypedParamsFree(params, nparams);
return ret;
}
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
-#if LIBVIR_CHECK_VERSION(1, 0, 0)
static PyObject *
libvirt_virNodeGetCPUMap(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -7986,10 +7928,8 @@ libvirt_virNodeGetCPUMap(PyObject *self ATTRIBUTE_UNUSED,
Py_CLEAR(ret);
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 0, 0) */
-#if LIBVIR_CHECK_VERSION(1, 1, 1)
static PyObject *
libvirt_virDomainCreateWithFiles(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -8083,10 +8023,8 @@ libvirt_virDomainCreateXMLWithFiles(PyObject *self ATTRIBUTE_UNUSED,
VIR_FREE(files);
return py_retval;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 1, 1) */
-#if LIBVIR_CHECK_VERSION(1, 2, 5)
static PyObject *
libvirt_virDomainFSFreeze(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -8274,10 +8212,8 @@ libvirt_virDomainSetTime(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_intWrap(c_retval);
}
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 5) */
-#if LIBVIR_CHECK_VERSION(1, 2, 6)
static PyObject *
libvirt_virNodeGetFreePages(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -8441,9 +8377,7 @@ libvirt_virNetworkGetDHCPLeases(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 6) */
-#if LIBVIR_CHECK_VERSION(1, 2, 8)
static PyObject *
convertDomainStatsRecord(virDomainStatsRecordPtr *records,
@@ -8601,9 +8535,7 @@ libvirt_virDomainBlockCopy(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_intWrap(c_retval);
}
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 8) */
-#if LIBVIR_CHECK_VERSION(1, 2, 9)
static PyObject *
libvirt_virNodeAllocPages(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -8665,9 +8597,7 @@ libvirt_virNodeAllocPages(PyObject *self ATTRIBUTE_UNUSED,
VIR_FREE(pageCounts);
return NULL;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 8) */
-#if LIBVIR_CHECK_VERSION(1, 2, 11)
static PyObject *
libvirt_virDomainGetFSInfo(PyObject *self ATTRIBUTE_UNUSED,
@@ -8742,9 +8672,7 @@ libvirt_virDomainGetFSInfo(PyObject *self ATTRIBUTE_UNUSED,
goto cleanup;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 11) */
-#if LIBVIR_CHECK_VERSION(1, 3, 3)
static PyObject *
libvirt_virDomainGetPerfEvents(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -8837,9 +8765,7 @@ libvirt_virDomainSetPerfEvents(PyObject *self ATTRIBUTE_UNUSED,
virTypedParamsFree(new_params, size);
return ret;
}
-#endif /* LIBVIR_CHECK_VERSION(1, 3, 3) */
-#if LIBVIR_CHECK_VERSION(2, 0, 0)
static void
libvirt_virConnectStoragePoolEventFreeFunc(void *opaque)
{
@@ -9072,9 +8998,7 @@ libvirt_virDomainGetGuestVcpus(PyObject *self ATTRIBUTE_UNUSED,
virTypedParamsFree(params, nparams);
return ret;
}
-#endif /* LIBVIR_CHECK_VERSION(2, 0, 0)*/
-#if LIBVIR_CHECK_VERSION(2, 2, 0)
static void
libvirt_virConnectNodeDeviceEventFreeFunc(void *opaque)
{
@@ -9276,9 +9200,7 @@ libvirt_virConnectNodeDeviceEventDeregisterAny(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_intWrap(ret);
}
-#endif /* LIBVIR_CHECK_VERSION(2, 2, 0)*/
-#if LIBVIR_CHECK_VERSION(3, 0, 0)
static void
libvirt_virConnectSecretEventFreeFunc(void *opaque)
{
@@ -9475,10 +9397,8 @@ libvirt_virConnectSecretEventDeregisterAny(PyObject *self ATTRIBUTE_UNUSED,
return libvirt_intWrap(ret);
}
-#endif /* LIBVIR_CHECK_VERSION(3, 0, 0)*/
-#if LIBVIR_CHECK_VERSION(3, 4, 0)
static PyObject *
libvirt_virStreamRecvHole(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -9571,7 +9491,6 @@ libvirt_virStreamRecvFlags(PyObject *self ATTRIBUTE_UNUSED,
return rv;
}
-#endif /* LIBVIR_CHECK_VERSION(3, 4, 0) */
/************************************************************************
@@ -9583,28 +9502,20 @@ static PyMethodDef libvirtMethods[] = {
#include "build/libvirt-export.c"
{(char *) "virGetVersion", libvirt_virGetVersion, METH_VARARGS, NULL},
{(char *) "virConnectGetVersion", libvirt_virConnectGetVersion, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(1, 1, 3)
{(char *) "virConnectGetCPUModelNames", libvirt_virConnectGetCPUModelNames, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 1, 3) */
{(char *) "virConnectGetLibVersion", libvirt_virConnectGetLibVersion, METH_VARARGS, NULL},
{(char *) "virConnectOpenAuth", libvirt_virConnectOpenAuth, METH_VARARGS, NULL},
{(char *) "virConnectListDomainsID", libvirt_virConnectListDomainsID, METH_VARARGS, NULL},
{(char *) "virConnectListDefinedDomains", libvirt_virConnectListDefinedDomains, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 9, 13)
{(char *) "virConnectListAllDomains", libvirt_virConnectListAllDomains, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 9, 13) */
{(char *) "virConnectDomainEventRegister", libvirt_virConnectDomainEventRegister, METH_VARARGS, NULL},
{(char *) "virConnectDomainEventDeregister", libvirt_virConnectDomainEventDeregister, METH_VARARGS, NULL},
{(char *) "virConnectDomainEventRegisterAny", libvirt_virConnectDomainEventRegisterAny, METH_VARARGS, NULL},
{(char *) "virConnectDomainEventDeregisterAny", libvirt_virConnectDomainEventDeregisterAny, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(1, 2, 1)
{(char *) "virConnectNetworkEventRegisterAny", libvirt_virConnectNetworkEventRegisterAny, METH_VARARGS, NULL},
{(char *) "virConnectNetworkEventDeregisterAny", libvirt_virConnectNetworkEventDeregisterAny, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 1) */
-#if LIBVIR_CHECK_VERSION(0, 10, 0)
{(char *) "virConnectRegisterCloseCallback", libvirt_virConnectRegisterCloseCallback, METH_VARARGS, NULL},
{(char *) "virConnectUnregisterCloseCallback", libvirt_virConnectUnregisterCloseCallback, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 0) */
{(char *) "virStreamEventAddCallback", libvirt_virStreamEventAddCallback, METH_VARARGS, NULL},
{(char *) "virStreamRecv", libvirt_virStreamRecv, METH_VARARGS, NULL},
{(char *) "virStreamSend", libvirt_virStreamSend, METH_VARARGS, NULL},
@@ -9615,9 +9526,7 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virNodeGetInfo", libvirt_virNodeGetInfo, METH_VARARGS, NULL},
{(char *) "virNodeGetSecurityModel", libvirt_virNodeGetSecurityModel, METH_VARARGS, NULL},
{(char *) "virDomainGetSecurityLabel", libvirt_virDomainGetSecurityLabel, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 0)
{(char *) "virDomainGetSecurityLabelList", libvirt_virDomainGetSecurityLabelList, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 0) */
{(char *) "virNodeGetCPUStats", libvirt_virNodeGetCPUStats, METH_VARARGS, NULL},
{(char *) "virNodeGetMemoryStats", libvirt_virNodeGetMemoryStats, METH_VARARGS, NULL},
{(char *) "virDomainGetUUID", libvirt_virDomainGetUUID, METH_VARARGS, NULL},
@@ -9628,9 +9537,7 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virConnGetLastError", libvirt_virConnGetLastError, METH_VARARGS, NULL},
{(char *) "virConnectListNetworks", libvirt_virConnectListNetworks, METH_VARARGS, NULL},
{(char *) "virConnectListDefinedNetworks", libvirt_virConnectListDefinedNetworks, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
{(char *) "virConnectListAllNetworks", libvirt_virConnectListAllNetworks, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
{(char *) "virNetworkGetUUID", libvirt_virNetworkGetUUID, METH_VARARGS, NULL},
{(char *) "virNetworkGetUUIDString", libvirt_virNetworkGetUUIDString, METH_VARARGS, NULL},
{(char *) "virNetworkLookupByUUID", libvirt_virNetworkLookupByUUID, METH_VARARGS, NULL},
@@ -9659,29 +9566,19 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virDomainPinVcpu", libvirt_virDomainPinVcpu, METH_VARARGS, NULL},
{(char *) "virDomainPinVcpuFlags", libvirt_virDomainPinVcpuFlags, METH_VARARGS, NULL},
{(char *) "virDomainGetVcpuPinInfo", libvirt_virDomainGetVcpuPinInfo, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 0)
{(char *) "virDomainGetEmulatorPinInfo", libvirt_virDomainGetEmulatorPinInfo, METH_VARARGS, NULL},
{(char *) "virDomainPinEmulator", libvirt_virDomainPinEmulator, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 0) */
-#if LIBVIR_CHECK_VERSION(1, 2, 14)
{(char *) "virDomainGetIOThreadInfo", libvirt_virDomainGetIOThreadInfo, METH_VARARGS, NULL},
{(char *) "virDomainPinIOThread", libvirt_virDomainPinIOThread, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 14) */
{(char *) "virConnectListStoragePools", libvirt_virConnectListStoragePools, METH_VARARGS, NULL},
{(char *) "virConnectListDefinedStoragePools", libvirt_virConnectListDefinedStoragePools, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
{(char *) "virConnectListAllStoragePools", libvirt_virConnectListAllStoragePools, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
{(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL},
{(char *) "virStoragePoolListVolumes", libvirt_virStoragePoolListVolumes, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
{(char *) "virStoragePoolListAllVolumes", libvirt_virStoragePoolListAllVolumes, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
{(char *) "virStoragePoolGetInfo", libvirt_virStoragePoolGetInfo, METH_VARARGS, NULL},
{(char *) "virStorageVolGetInfo", libvirt_virStorageVolGetInfo, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(3, 0, 0)
{(char *) "virStorageVolGetInfoFlags", libvirt_virStorageVolGetInfoFlags, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(3, 0, 0) */
{(char *) "virStoragePoolGetUUID", libvirt_virStoragePoolGetUUID, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetUUIDString", libvirt_virStoragePoolGetUUIDString, METH_VARARGS, NULL},
{(char *) "virStoragePoolLookupByUUID", libvirt_virStoragePoolLookupByUUID, METH_VARARGS, NULL},
@@ -9692,121 +9589,75 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virEventInvokeTimeoutCallback", libvirt_virEventInvokeTimeoutCallback, METH_VARARGS, NULL},
{(char *) "virEventInvokeFreeCallback", libvirt_virEventInvokeFreeCallback, METH_VARARGS, NULL},
{(char *) "virNodeListDevices", libvirt_virNodeListDevices, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
{(char *) "virConnectListAllNodeDevices", libvirt_virConnectListAllNodeDevices, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
{(char *) "virNodeDeviceListCaps", libvirt_virNodeDeviceListCaps, METH_VARARGS, NULL},
{(char *) "virSecretGetUUID", libvirt_virSecretGetUUID, METH_VARARGS, NULL},
{(char *) "virSecretGetUUIDString", libvirt_virSecretGetUUIDString, METH_VARARGS, NULL},
{(char *) "virSecretLookupByUUID", libvirt_virSecretLookupByUUID, METH_VARARGS, NULL},
{(char *) "virConnectListSecrets", libvirt_virConnectListSecrets, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
{(char *) "virConnectListAllSecrets", libvirt_virConnectListAllSecrets, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
{(char *) "virSecretGetValue", libvirt_virSecretGetValue, METH_VARARGS, NULL},
{(char *) "virSecretSetValue", libvirt_virSecretSetValue, METH_VARARGS, NULL},
{(char *) "virNWFilterGetUUID", libvirt_virNWFilterGetUUID, METH_VARARGS, NULL},
{(char *) "virNWFilterGetUUIDString", libvirt_virNWFilterGetUUIDString, METH_VARARGS, NULL},
{(char *) "virNWFilterLookupByUUID", libvirt_virNWFilterLookupByUUID, METH_VARARGS, NULL},
{(char *) "virConnectListNWFilters", libvirt_virConnectListNWFilters, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
{(char *) "virConnectListAllNWFilters", libvirt_virConnectListAllNWFilters, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
{(char *) "virConnectListInterfaces", libvirt_virConnectListInterfaces, METH_VARARGS, NULL},
{(char *) "virConnectListDefinedInterfaces", libvirt_virConnectListDefinedInterfaces, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
{(char *) "virConnectListAllInterfaces", libvirt_virConnectListAllInterfaces, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
{(char *) "virConnectBaselineCPU", libvirt_virConnectBaselineCPU, METH_VARARGS, NULL},
{(char *) "virDomainGetJobInfo", libvirt_virDomainGetJobInfo, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(1, 0, 3)
{(char *) "virDomainGetJobStats", libvirt_virDomainGetJobStats, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 0, 3) */
{(char *) "virDomainSnapshotListNames", libvirt_virDomainSnapshotListNames, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 9, 13)
{(char *) "virDomainListAllSnapshots", libvirt_virDomainListAllSnapshots, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 9, 13) */
{(char *) "virDomainSnapshotListChildrenNames", libvirt_virDomainSnapshotListChildrenNames, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 9, 13)
{(char *) "virDomainSnapshotListAllChildren", libvirt_virDomainSnapshotListAllChildren, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 9, 13) */
{(char *) "virDomainRevertToSnapshot", libvirt_virDomainRevertToSnapshot, METH_VARARGS, NULL},
{(char *) "virDomainGetBlockJobInfo", libvirt_virDomainGetBlockJobInfo, METH_VARARGS, NULL},
{(char *) "virDomainSetBlockIoTune", libvirt_virDomainSetBlockIoTune, METH_VARARGS, NULL},
{(char *) "virDomainGetBlockIoTune", libvirt_virDomainGetBlockIoTune, METH_VARARGS, NULL},
{(char *) "virDomainSendKey", libvirt_virDomainSendKey, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(1, 0, 3)
{(char *) "virDomainMigrateGetCompressionCache", libvirt_virDomainMigrateGetCompressionCache, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 0, 3) */
{(char *) "virDomainMigrateGetMaxSpeed", libvirt_virDomainMigrateGetMaxSpeed, METH_VARARGS, NULL},
#if LIBVIR_CHECK_VERSION(3, 7, 0)
{(char *) "virDomainMigrateGetMaxDowntime", libvirt_virDomainMigrateGetMaxDowntime, METH_VARARGS, NULL},
#endif /* LIBVIR_CHECK_VERSION(3, 7, 0) */
{(char *) "virDomainMigrateGetMaxSpeed", libvirt_virDomainMigrateGetMaxSpeed, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(1, 1, 0)
{(char *) "virDomainMigrate3", libvirt_virDomainMigrate3, METH_VARARGS, NULL},
{(char *) "virDomainMigrateToURI3", libvirt_virDomainMigrateToURI3, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 1, 0) */
{(char *) "virDomainBlockPeek", libvirt_virDomainBlockPeek, METH_VARARGS, NULL},
{(char *) "virDomainMemoryPeek", libvirt_virDomainMemoryPeek, METH_VARARGS, NULL},
{(char *) "virDomainGetDiskErrors", libvirt_virDomainGetDiskErrors, METH_VARARGS, NULL},
-#if LIBVIR_CHECK_VERSION(0, 10, 2)
{(char *) "virNodeGetMemoryParameters", libvirt_virNodeGetMemoryParameters, METH_VARARGS, NULL},
{(char *) "virNodeSetMemoryParameters", libvirt_virNodeSetMemoryParameters, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
-#if LIBVIR_CHECK_VERSION(1, 0, 0)
{(char *) "virNodeGetCPUMap", libvirt_virNodeGetCPUMap, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 0, 0) */
-#if LIBVIR_CHECK_VERSION(1, 1, 1)
{(char *) "virDomainCreateXMLWithFiles", libvirt_virDomainCreateXMLWithFiles, METH_VARARGS, NULL},
{(char *) "virDomainCreateWithFiles", libvirt_virDomainCreateWithFiles, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 1, 1) */
-#if LIBVIR_CHECK_VERSION(1, 2, 5)
{(char *) "virDomainFSFreeze", libvirt_virDomainFSFreeze, METH_VARARGS, NULL},
{(char *) "virDomainFSThaw", libvirt_virDomainFSThaw, METH_VARARGS, NULL},
{(char *) "virDomainGetTime", libvirt_virDomainGetTime, METH_VARARGS, NULL},
{(char *) "virDomainSetTime", libvirt_virDomainSetTime, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 5) */
-#if LIBVIR_CHECK_VERSION(1, 2, 6)
{(char *) "virNodeGetFreePages", libvirt_virNodeGetFreePages, METH_VARARGS, NULL},
{(char *) "virNetworkGetDHCPLeases", libvirt_virNetworkGetDHCPLeases, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 6) */
-#if LIBVIR_CHECK_VERSION(1, 2, 8)
{(char *) "virConnectGetAllDomainStats", libvirt_virConnectGetAllDomainStats, METH_VARARGS, NULL},
{(char *) "virDomainListGetStats", libvirt_virDomainListGetStats, METH_VARARGS, NULL},
{(char *) "virDomainBlockCopy", libvirt_virDomainBlockCopy, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 8) */
-#if LIBVIR_CHECK_VERSION(1, 2, 9)
{(char *) "virNodeAllocPages", libvirt_virNodeAllocPages, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 9) */
-#if LIBVIR_CHECK_VERSION(1, 2, 11)
{(char *) "virDomainGetFSInfo", libvirt_virDomainGetFSInfo, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 11) */
-#if LIBVIR_CHECK_VERSION(1, 2, 14)
{(char *) "virDomainInterfaceAddresses", libvirt_virDomainInterfaceAddresses, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 2, 14) */
-#if LIBVIR_CHECK_VERSION(1, 3, 3)
{(char *) "virDomainGetPerfEvents", libvirt_virDomainGetPerfEvents, METH_VARARGS, NULL},
{(char *) "virDomainSetPerfEvents", libvirt_virDomainSetPerfEvents, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(1, 3, 3) */
-#if LIBVIR_CHECK_VERSION(2, 0, 0)
{(char *) "virConnectStoragePoolEventRegisterAny", libvirt_virConnectStoragePoolEventRegisterAny, METH_VARARGS, NULL},
{(char *) "virConnectStoragePoolEventDeregisterAny", libvirt_virConnectStoragePoolEventDeregisterAny, METH_VARARGS, NULL},
{(char *) "virDomainGetGuestVcpus", libvirt_virDomainGetGuestVcpus, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(2, 0, 0) */
-#if LIBVIR_CHECK_VERSION(2, 2, 0)
{(char *) "virConnectNodeDeviceEventRegisterAny", libvirt_virConnectNodeDeviceEventRegisterAny, METH_VARARGS, NULL},
{(char *) "virConnectNodeDeviceEventDeregisterAny", libvirt_virConnectNodeDeviceEventDeregisterAny, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(2, 2, 0) */
-#if LIBVIR_CHECK_VERSION(3, 0, 0)
{(char *) "virConnectSecretEventRegisterAny", libvirt_virConnectSecretEventRegisterAny, METH_VARARGS, NULL},
{(char *) "virConnectSecretEventDeregisterAny", libvirt_virConnectSecretEventDeregisterAny, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(3, 0, 0) */
-#if LIBVIR_CHECK_VERSION(3, 4, 0)
{(char *) "virStreamRecvHole", libvirt_virStreamRecvHole, METH_VARARGS, NULL},
{(char *) "virStreamSendHole", libvirt_virStreamSendHole, METH_VARARGS, NULL},
{(char *) "virStreamRecvFlags", libvirt_virStreamRecvFlags, METH_VARARGS, NULL},
-#endif /* LIBVIR_CHECK_VERSION(3, 4, 0) */
{NULL, NULL, 0, NULL}
};
--
2.13.5
3
4
Add helpers to remember existing errors when they might be overwritten
and use it to fix "unknown error" reported when attaching disk with lock
manager enabled.
Peter Krempa (3):
util: error: Add helpers for saving and restoring of last error
qemu: hotplug: Use new helpers for storing libvirt errors
qemu: Restore errors when rolling back disk image state
src/libvirt_private.syms | 2 +
src/qemu/qemu_hotplug.c | 97 ++++++++++++++++--------------------------------
src/util/virerror.c | 45 ++++++++++++++++++++++
src/util/virerror.h | 3 ++
4 files changed, 82 insertions(+), 65 deletions(-)
--
2.14.1
2
4
Hi,
here are some doc updates I found on a long unused branch but they still apply.
Cheers,
-- Guido
Guido Günther (3):
Add some missing docs
streams: fix references
gvir_stream_send: make it obvious that we send bytes
libvirt-gobject/libvirt-gobject-connection.c | 15 ++++++++++-
libvirt-gobject/libvirt-gobject-domain.c | 2 +-
libvirt-gobject/libvirt-gobject-stream.c | 38 ++++++++++++++++++----------
3 files changed, 39 insertions(+), 16 deletions(-)
--
2.14.1
1
3
Qcow2 small IO random write performance will drop dramatically if the l2
cache table could not cover the whole disk. This will be a lot of l2
cache table RW operations if cache miss happens frequently.
This patch exports the qcow2 driver parameter
l2-cache-size/refcount-cache-size, first added in Qemu 2.2, and
cache-clean-interval, first added in Qemu 2.5, in libvirt.
Change since v3: a) copy qcow2 cache configurion from source to backing
to backing file source.
Liu Qing (2):
conf, docs: Add qcow2 cache configuration support
qemu: add capability checking for qcow2 cache configuration
docs/formatdomain.html.in | 43 ++++++++++
docs/schemas/domaincommon.rng | 35 ++++++++
src/conf/domain_conf.c | 95 +++++++++++++++++++++-
src/qemu/qemu_capabilities.c | 9 ++
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_command.c | 33 ++++++++
src/qemu/qemu_driver.c | 5 ++
src/util/virstoragefile.c | 3 +
src/util/virstoragefile.h | 6 ++
tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 3 +
.../caps_2.6.0-gicv2.aarch64.xml | 3 +
.../caps_2.6.0-gicv3.aarch64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 3 +
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 3 +
.../qemuxml2argv-disk-drive-qcow2-cache.args | 28 +++++++
.../qemuxml2argv-disk-drive-qcow2-cache.xml | 43 ++++++++++
tests/qemuxml2argvtest.c | 4 +
.../qemuxml2xmlout-disk-drive-qcow2-cache.xml | 43 ++++++++++
tests/qemuxml2xmltest.c | 1 +
26 files changed, 386 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache.xml
--
1.8.3.1
3
12
*** BLURB HERE ***
Michal Privoznik (5):
rng: Drop useless <choice/>
rng: Fix formatting
qemuBuildHostNetStr: Don't leak buffer
conf: Allow usernet to have an address
qemu: Implement usernet address
docs/formatdomain.html.in | 13 +-
docs/schemas/capability.rng | 28 ++--
docs/schemas/domaincommon.rng | 141 ++++++++-------------
docs/schemas/network.rng | 2 +-
docs/schemas/nodedev.rng | 8 +-
docs/schemas/nwfilter.rng | 54 ++++----
docs/schemas/storagecommon.rng | 4 +-
docs/schemas/storagepool.rng | 4 +-
src/conf/domain_conf.c | 5 +-
src/qemu/qemu_command.c | 35 ++++-
src/qemu/qemu_domain.c | 49 +++++++
.../qemuxml2argv-net-user-addr.args | 25 ++++
.../qemuxml2argv-net-user-addr.xml | 42 ++++++
tests/qemuxml2argvtest.c | 1 +
.../qemuxml2xmlout-net-user-addr.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
16 files changed, 267 insertions(+), 146 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-user-addr.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-user-addr.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-net-user-addr.xml
--
2.13.5
3
15
changes since v2:
Patch 1 - a) add new element qcow2 as drive's child, if any qcow2
specific configuration exists.
b) merge the three test cases to one.
c) update docs. cache size only support bytes.
d) move the parameters checking to virDomainDiskDefParseValidate
Patch 2 - a) use QMP instead of qemu version to identify qemu capabilities.
b) change capablity names with prefix drive.qcow2.
c) merge the three test cases to one.
Liu Qing (2):
conf, docs: Add qcow2 cache configuration support
qemu: add capability checking for qcow2 cache configuration
docs/formatdomain.html.in | 43 ++++++++++
docs/schemas/domaincommon.rng | 35 ++++++++
src/conf/domain_conf.c | 95 +++++++++++++++++++++-
src/qemu/qemu_capabilities.c | 9 ++
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_command.c | 33 ++++++++
src/util/virstoragefile.c | 3 +
src/util/virstoragefile.h | 6 ++
tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 3 +
.../caps_2.6.0-gicv2.aarch64.xml | 3 +
.../caps_2.6.0-gicv3.aarch64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 3 +
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 3 +
.../qemuxml2argv-disk-drive-qcow2-cache.args | 28 +++++++
.../qemuxml2argv-disk-drive-qcow2-cache.xml | 43 ++++++++++
tests/qemuxml2argvtest.c | 4 +
.../qemuxml2xmlout-disk-drive-qcow2-cache.xml | 43 ++++++++++
tests/qemuxml2xmltest.c | 1 +
25 files changed, 381 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache.xml
--
1.8.3.1
2
5
diff to v1:
- moved the <ip/> directly under <interface/>
- enhanced the test
- tuned some error messages
Michal Privoznik (2):
conf: Allow usernet to have an address
qemu: Implement usernet address
docs/formatdomain.html.in | 8 +++-
src/qemu/qemu_command.c | 22 +++++++++
src/qemu/qemu_domain.c | 53 +++++++++++++++++++++-
.../qemuxml2argv-net-user-addr.args | 26 +++++++++++
.../qemuxml2argv-net-user-addr.xml | 41 +++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
.../qemuxml2xmlout-net-user-addr.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
8 files changed, 151 insertions(+), 2 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-user-addr.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-user-addr.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-net-user-addr.xml
--
2.13.5
2
4
*** BLURB HERE ***
I have taken Anton Kryukovs fix from #13 on github and am submitting
along with addition of 1.8 and 1.9 as travis go version targets
Example of failing running on 1.9, which passes on 1.7 can be found
at
git@github.com:deasmi/libvirt-go-xml.git
branch parsefailtest
Anton Kryukov (1):
Add support for hex values in DomainAddress struct
Dean Smith (1):
Adding go 1.8 and 1.9 to travis tests
.travis.yml | 2 ++
domain.go | 27 ++++++++++++++++++---------
domain_test.go | 10 +++++-----
3 files changed, 25 insertions(+), 14 deletions(-)
--
1.8.3.1
2
3
13 Sep '17
See patch 1/3
Peter Krempa (3):
qemu: Remove support for legacy block jobs
qemu: monitor: Remove support for "legacy" block jobs
qemu: caps: Deprecate QEMU_CAPS_BLOCKJOB_SYNC
src/qemu/qemu_capabilities.c | 1 -
src/qemu/qemu_capabilities.h | 2 +-
src/qemu/qemu_domain.c | 13 +++-------
src/qemu/qemu_domain.h | 2 +-
src/qemu/qemu_driver.c | 61 +++++++++++---------------------------------
src/qemu/qemu_migration.c | 2 +-
src/qemu/qemu_monitor.c | 24 ++++++++---------
src/qemu/qemu_monitor.h | 9 +++----
src/qemu/qemu_monitor_json.c | 17 +++++-------
src/qemu/qemu_monitor_json.h | 9 +++----
10 files changed, 44 insertions(+), 96 deletions(-)
--
2.14.1
2
6
13 Sep '17
Fairly simple exercise since similar processing is used for RBD,
just needed to check for the proper capabililty and then use it
and test that it works.
NB 1: Depending on order of submit either this patch will need to
add the capability flag into caps_2.10.0 or the other patch
will need to add it... Plan is to wait for the other patch
to be ACK'd and then add the capability here
NB 2: "Theoretically speaking" one could/should also consider the
<auth> for the JSON virstoragefile source parse backing code;
however, <auth> is not a <source> property rather it is a
<disk> property and thus stored in QEMU_DOMAIN_DISK_PRIVATE.
But for both RBD and iSCSI the "user" and "password-secret"
options are -drive properties that could be parsed and
handled (ok well mostly handled). In any case, the RBD code
doesn't handle it (for now), so neither will the iSCSI code.
John Ferlan (2):
qemu: Get capabilities for iscsi usage of password-secret argument
qemu: Use secret objects to pass iSCSI passwords
src/qemu/qemu_capabilities.c | 4 ++
src/qemu/qemu_capabilities.h | 3 ++
src/qemu/qemu_command.c | 19 ++++++++-
src/qemu/qemu_domain.c | 4 ++
tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 +
...xml2argv-disk-drive-network-iscsi-auth-AES.args | 39 ++++++++++++++++++
...uxml2argv-disk-drive-network-iscsi-auth-AES.xml | 43 +++++++++++++++++++
...ml2argv-hostdev-scsi-virtio-iscsi-auth-AES.args | 35 ++++++++++++++++
...xml2argv-hostdev-scsi-virtio-iscsi-auth-AES.xml | 48 ++++++++++++++++++++++
tests/qemuxml2argvtest.c | 10 +++++
12 files changed, 206 insertions(+), 2 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth-AES.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth-AES.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi-auth-AES.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi-auth-AES.xml
--
2.9.5
3
11
13 Sep '17
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
docs/news.xml | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 483f9d6d1..17f00a25e 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -37,6 +37,17 @@
<section title="New features">
</section>
<section title="Improvements">
+ <change>
+ <summary>
+ qemu: DAC permissions properly set for spice renderndoe
+ </summary>
+ <description>
+ When a rendernode= path is set for spice GL on qemu:///system,
+ we now correctly set DAC permissions on the device at VM startup.
+ This is the last remaining hurdle to let spice GL work for
+ qemu:///system without any external host changes.
+ </description>
+ </change>
</section>
<section title="Bug fixes">
</section>
--
2.13.5
2
1
13 Sep '17
The documentation mistakenly states that the unit for returned
values is kB (multiple of 1000), while in fact we are returning
KiB (multiple of 1024).
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Oops, I forgot to send this one,
tools/virsh.pod | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 01453be60..4331c76fc 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -810,16 +810,16 @@ missing from the output. Other fields may appear if communicating with a newer
version of libvirtd.
B<Explanation of fields>:
- swap_in - The amount of data read from swap space (in kB)
- swap_out - The amount of memory written out to swap space (in kB)
+ swap_in - The amount of data read from swap space (in KiB)
+ swap_out - The amount of memory written out to swap space (in KiB)
major_fault - The number of page faults where disk IO was required
minor_fault - The number of other page faults
- unused - The amount of memory left unused by the system (in kB)
- available - The amount of usable memory as seen by the domain (in kB)
- actual - Current balloon value (in KB)
- rss - Resident Set Size of the running domain's process (in kB)
+ unused - The amount of memory left unused by the system (in KiB)
+ available - The amount of usable memory as seen by the domain (in KiB)
+ actual - Current balloon value (in KiB)
+ rss - Resident Set Size of the running domain's process (in KiB)
usable - The amount of memory which can be reclaimed by balloon
-without causing host swapping (in KB)
+without causing host swapping (in KiB)
last-update - Timestamp of the last update of statistics (in seconds)
For QEMU/KVM with a memory balloon, setting the optional I<--period> to a
@@ -906,22 +906,22 @@ I<--cpu-total> returns:
I<--balloon> returns:
- "balloon.current" - the memory in kiB currently used
- "balloon.maximum" - the maximum memory in kiB allowed
- "balloon.swap_in" - the amount of data read from swap space (in kB)
+ "balloon.current" - the memory in KiB currently used
+ "balloon.maximum" - the maximum memory in KiB allowed
+ "balloon.swap_in" - the amount of data read from swap space (in KiB)
"balloon.swap_out" - the amount of memory written out to swap
- space (in kB)
+ space (in KiB)
"balloon.major_fault" - the number of page faults then disk IO
was required
"balloon.minor_fault" - the number of other page faults
"balloon.unused" - the amount of memory left unused by the
- system (in kB)
+ system (in KiB)
"balloon.available" - the amount of usable memory as seen by
- the domain (in kB)
+ the domain (in KiB)
"balloon.rss" - Resident Set Size of running domain's process
- (in kB)
+ (in KiB)
"balloon.usable" - the amount of memory which can be reclaimed by
- balloon without causing host swapping (in KB)
+ balloon without causing host swapping (in KiB)
"balloon.last-update" - timestamp of the last update of statistics
(in seconds)
--
2.13.5
2
2
No need to pass a @driver parameter since all that's done is deref
the @cfg especially since the only caller can just pass an already
referenced @cfg.
Also, looks like commit id '0298531b' at one time had a different
name for the API, so I took the liberty of fixing the comments too
since I would already be updating them for the @cfg variable.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Saw this while doing some updates for the recently posted VxHS series.
src/qemu/qemu_domain.c | 11 ++++-------
src/qemu/qemu_domain.h | 2 +-
src/qemu/qemu_process.c | 2 +-
3 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index cbee151..4cd0087 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -7454,7 +7454,7 @@ qemuDomainPrepareChannel(virDomainChrDefPtr channel,
}
-/* qemuProcessPrepareDomainChardevSourceTLS:
+/* qemuDomainPrepareChardevSourceTLS:
* @source: pointer to host interface data for char devices
* @cfg: driver configuration
*
@@ -7478,19 +7478,18 @@ qemuDomainPrepareChardevSourceTLS(virDomainChrSourceDefPtr source,
}
-/* qemuProcessPrepareDomainChardevSource:
+/* qemuDomainPrepareChardevSource:
* @def: live domain definition
- * @driver: qemu driver
+ * @cfg: driver configuration
*
* Iterate through all devices that use virDomainChrSourceDefPtr as host
* interface part.
*/
void
qemuDomainPrepareChardevSource(virDomainDefPtr def,
- virQEMUDriverPtr driver)
+ virQEMUDriverConfigPtr cfg)
{
size_t i;
- virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
for (i = 0; i < def->nserials; i++)
qemuDomainPrepareChardevSourceTLS(def->serials[i]->source, cfg);
@@ -7515,8 +7514,6 @@ qemuDomainPrepareChardevSource(virDomainDefPtr def,
for (i = 0; i < def->nredirdevs; i++)
qemuDomainPrepareChardevSourceTLS(def->redirdevs[i]->source, cfg);
-
- virObjectUnref(cfg);
}
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index f93b09b..4b030ae 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -842,7 +842,7 @@ void qemuDomainPrepareChardevSourceTLS(virDomainChrSourceDefPtr source,
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
void qemuDomainPrepareChardevSource(virDomainDefPtr def,
- virQEMUDriverPtr driver)
+ virQEMUDriverConfigPtr cfg)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuDomainPrepareShmemChardev(virDomainShmemDefPtr shmem)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 364c359..44df858 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5327,7 +5327,7 @@ qemuProcessPrepareDomain(virConnectPtr conn,
goto cleanup;
VIR_DEBUG("Prepare chardev source backends for TLS");
- qemuDomainPrepareChardevSource(vm->def, driver);
+ qemuDomainPrepareChardevSource(vm->def, cfg);
VIR_DEBUG("Add secrets to disks, hostdevs, and chardevs");
if (qemuDomainSecretPrepare(conn, driver, vm) < 0)
--
2.9.5
2
2
Suppose we have a disk with several external snapshots of it. This disk is
attached to some domain. I found that after destroying and starting the
domain the xml of attached disk doesn't contain all backingStore that it
has to.
Before the restart the part of domain xml that relates to attached disk
looks like this:
<disk type='file' device='disk'>
> <driver name='qemu' type='qcow2'/>
> <source file='...'/>
> <backingStore type='file' index='1'>
> <format type='qcow2'/> <!-- here is qcow2 -->
> <source file='...'/>
> <backingStore type='file' index='2'>
> <format type='qcow2'/>
> <source file='...'/>
> <backingStore type='file' index='3'>
> <format type='qcow2'/>
> <source file='...'/>
> <backingStore/>
> </backingStore>
> </backingStore>
> </backingStore>
> </disk>
And after the restart like this:
<disk type='file' device='disk'>
> <driver name='qemu' type='qcow2'/>
> <source file='...'/>
> <backingStore type='file' index='1'>
> <format type='raw'/> <!-- here is raw -->
> <source file='...'/>
> <backingStore/>
> </backingStore>
> </disk>
So, the difference in two xml not only in depth of backing stores but in
format type also.
The result of it is that you can't run blockcommit that will commit overlay
into base image if they don't have direct relations (if for example overlay
is child of child of base image). Virsh says it can't find base in chain (
exception
<https://github.com/libvirt/libvirt/blob/cdecfbed027ab242467580a897a636be82dā¦>
).
Then I got that libvirt stops calling virStorageFileGetMetadataRecurse
<https://github.com/libvirt/libvirt/blob/ed8661a309c96e4a1573dc0ca2c76ea7ff1ā¦>
function
after first call because it thinks that format of first backingStore of
disk is raw instead of qcow2. I solved it by adding to the qemu config
the following line:
> allow_disk_format_probing = 1
But in qemu config it was marked as secure hole.
Idea of fix is that we can try assume that backing store of qcow is qcow
insted of raw, but I really don't know what to do to implement this idea if
it at all possible
Thanks!
2
1
[libvirt] [PATCH] domain: add limit description of parameter 'size' for blockPeek and memoryPeek
by Chen Hanxiao 13 Sep '17
by Chen Hanxiao 13 Sep '17
13 Sep '17
From: Chen Hanxiao <chenhanxiao(a)gmail.com>
We had 'size' limits for virDomainMemoryPeek
and virDomainBlockPeek by macro
REMOTE_DOMAIN_BLOCK_PEEK_BUFFER_MAX and
REMOTE_DOMAIN_MEMORY_PEEK_BUFFER_MAX.
The descriptions of the two functions only emphasized
RPC buffer size.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
---
src/libvirt-domain.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index ca5a153..646ce72 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -5802,6 +5802,9 @@ virDomainMemoryStats(virDomainPtr dom, virDomainMemoryStatPtr stats,
* within the device or file. 'size' may be 0 to test if the
* call would succeed.
*
+ * 'size' should be <= 1048576(1M). Since v1.0.5, 'size' had been
+ * raised up to 4194304(4M).
+ *
* 'buffer' is the return buffer and must be at least 'size' bytes.
*
* NB. The remote driver imposes a 64K byte limit on 'size'.
@@ -5941,6 +5944,9 @@ virDomainBlockResize(virDomainPtr dom,
* 'buffer' is the return buffer and must be at least 'size' bytes.
* 'size' may be 0 to test if the call would succeed.
*
+ * 'size' should be <= 1048576(1M). Since v1.0.5, 'size' had been
+ * raised up to 4194304(4M).
+ *
* NB. The remote driver imposes a 64K byte limit on 'size'.
* For your program to be able to work reliably over a remote
* connection you should split large requests to <= 65536 bytes.
--
2.7.5
1
1
[libvirt] [PATCH] qemu: blockcopy: Probe image format only with VIR_DOMAIN_BLOCK_COPY_REUSE_EXT
by Peter Krempa 12 Sep '17
by Peter Krempa 12 Sep '17
12 Sep '17
Commit 703abf1d7 changed the logic so that we don't attempt to re-create
the image if it's a block device. This was done by modifying the
'reuse' variable. Unfortunately after modifying it one of the uses was
to infer whether we should probe the disk format. After changes in the
commit mentioned above we would attempt the probe if the target of the
copy is a block device and the format was not provided explicitly rather
than using the format of the disk.
Fix it by explicitly checking whether the user requested a reuse of the
disk rather than the modified boolean flag.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1490826
---
src/qemu/qemu_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 70cdc88e1..23a51359d 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -16988,7 +16988,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
goto endjob;
if (!mirror->format) {
- if (!reuse) {
+ if (!(flags & VIR_DOMAIN_BLOCK_COPY_REUSE_EXT)) {
mirror->format = disk->src->format;
} else {
/* If the user passed the REUSE_EXT flag, then either they
--
2.14.1
2
1
Hi,
virsh.pod states:
"balloon.maximum" - the maximum memory in kiB allowed
"balloon.swap_in" - the amount of data read from swap space (in kB)
But to me it seems there's not such kb vs kib difference [1] so it would
be nice to have a confirmation which one is actually used?
1)
http://elixir.free-electrons.com/linux/v4.13/source/drivers/virtio/virtio_bā¦
Thanks,
--
Marko Myllynen
2
1
[libvirt] [PATCH v2] storage: Adjust expected format for Disk startup processing
by John Ferlan 12 Sep '17
by John Ferlan 12 Sep '17
12 Sep '17
https://bugzilla.redhat.com/show_bug.cgi?id=1464313
If a Disk pool was defined/created using XML that either didn't
specify a specific format or specified format type='unknown', then
restarting a pool after an initial disk backend build with overwrite
would fail after a libvirtd restart for a non-autostarted pool.
This is because the persistent pool data is not updated during pool
build w/ overwrite processing to have the VIR_STORAGE_POOL_DISK_DOS
default format.
So in addition to the alteration done during disk build processing,
alter the default expectation for disk startup to be DOS if nothing
has been defined yet. That will either succeed if the pool had been
successfully built previously using the default DOS format or fail
with a message indicating the format is something else that does not
match the expect format 'dos'.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
v1: https://www.redhat.com/archives/libvir-list/2017-September/msg00124.html
Changes since v1...
* Use a totally different methodology. Rather than updating the
persistent config file, alter the start processing to handle the
unknown setting in the persistent file properly.
src/storage/storage_backend_disk.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c
index e8f67bb00..bce3b4e2a 100644
--- a/src/storage/storage_backend_disk.c
+++ b/src/storage/storage_backend_disk.c
@@ -446,8 +446,7 @@ static int
virStorageBackendDiskStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
virStoragePoolObjPtr pool)
{
- const char *format =
- virStoragePoolFormatDiskTypeToString(pool->def->source.format);
+ const char *format;
const char *path = pool->def->source.devices[0].path;
virWaitForDevices();
@@ -458,6 +457,9 @@ virStorageBackendDiskStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
return -1;
}
+ if (pool->def->source.format == VIR_STORAGE_POOL_DISK_UNKNOWN)
+ pool->def->source.format = VIR_STORAGE_POOL_DISK_DOS;
+ format = virStoragePoolFormatDiskTypeToString(pool->def->source.format);
if (!virStorageBackendDeviceIsEmpty(path, format, false))
return -1;
--
2.13.5
2
1
[libvirt] [PATCH v2] qemu: Provide default LUN=0 for iSCSI if not provided
by John Ferlan 12 Sep '17
by John Ferlan 12 Sep '17
12 Sep '17
https://bugzilla.redhat.com/show_bug.cgi?id=1477880
If the "/#" is missing from the provided iSCSI path, then we need
to provide the default LUN of /0; otherwise, QEMU will fail to parse
the URL causing a failure to either create the guest or hotplug
attach the storage.
During post parse, for any iSCSI disk or hostdev, scan the source
path looking for the presence of '/', if found, then we can assume
the LUN is provided. If not found, alter the input XML to add the
"/0". This will cause the generated XML to have the generated
value when the domain config is saved after post parse.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
v1: https://www.redhat.com/archives/libvir-list/2017-September/msg00122.html
Alter the patch to make the adjustment during device post parsing rather
than command line creation as requested by code review. This will alter
the output XML as well as the command line arguments for those entries
that don't supply a LUN. We had a few, so that works out testing wise!
src/conf/domain_conf.c | 43 ++++++++++++++++++++++
.../qemuargv2xml-disk-drive-network-iscsi.xml | 2 +-
.../qemuxml2argv-disk-drive-network-iscsi-lun.args | 2 +-
.../qemuxml2argv-disk-drive-network-iscsi.args | 2 +-
.../qemuxml2argv-hostdev-scsi-lsi-iscsi.args | 2 +-
.../qemuxml2argv-hostdev-scsi-virtio-iscsi.args | 2 +-
.../qemuxml2xmlout-disk-drive-network-iscsi.xml | 2 +-
.../qemuxml2xmlout-hostdev-scsi-lsi-iscsi.xml | 2 +-
.../qemuxml2xmlout-hostdev-scsi-virtio-iscsi.xml | 2 +-
9 files changed, 51 insertions(+), 8 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 676fc0f34..a43b25c31 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -4308,16 +4308,54 @@ virDomainHostdevAssignAddress(virDomainXMLOptionPtr xmlopt,
}
+/**
+ * virDomainPostParseCheckISCSIPath
+ * @srcpath: Source path read (a/k/a, IQN) either disk or hostdev
+ *
+ * The details of an IQN is defined by RFC 3720 and 3721, but
+ * we just need to make sure there's a lun provided. If not
+ * provided, then default to zero. For an ISCSI LUN that is
+ * is provided by /dev/disk/by-path/... , then that path will
+ * have the specific lun requested.
+ *
+ * Returns 0 on success, -1 on failure
+ */
+static int
+virDomainPostParseCheckISCSIPath(char **srcpath)
+{
+ char *path = NULL;
+
+ if (strchr(*srcpath, '/'))
+ return 0;
+
+ if (virAsprintf(&path, "%s/0", *srcpath) < 0)
+ return -1;
+ VIR_FREE(*srcpath);
+ VIR_STEAL_PTR(*srcpath, path);
+ return 0;
+}
+
+
static int
virDomainHostdevDefPostParse(virDomainHostdevDefPtr dev,
const virDomainDef *def,
virDomainXMLOptionPtr xmlopt)
{
+ virDomainHostdevSubsysSCSIPtr scsisrc;
+
if (dev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS)
return 0;
switch (dev->source.subsys.type) {
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI:
+ scsisrc = &dev->source.subsys.u.scsi;
+ if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) {
+ virDomainHostdevSubsysSCSIiSCSIPtr iscsisrc = &scsisrc->u.iscsi;
+
+ if (virDomainPostParseCheckISCSIPath(&iscsisrc->path) < 0)
+ return -1;
+ }
+
if (dev->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE &&
virDomainHostdevAssignAddress(xmlopt, def, dev) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
@@ -4455,6 +4493,11 @@ virDomainDeviceDefPostParseCommon(virDomainDeviceDefPtr dev,
}
}
+ if (disk->src->type == VIR_STORAGE_TYPE_NETWORK &&
+ disk->src->protocol == VIR_STORAGE_NET_PROTOCOL_ISCSI &&
+ virDomainPostParseCheckISCSIPath(&disk->src->path) < 0)
+ return -1;
+
if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO &&
virDomainCheckVirtioOptions(disk->virtio) < 0)
return -1;
diff --git a/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.xml b/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.xml
index 23542fa1d..694412b5c 100644
--- a/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.xml
+++ b/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.xml
@@ -16,7 +16,7 @@
<emulator>/usr/bin/qemu-system-i686</emulator>
<disk type='network' device='disk'>
<driver name='qemu' type='raw'/>
- <source protocol='iscsi' name='iqn.1992-01.com.example'>
+ <source protocol='iscsi' name='iqn.1992-01.com.example/0'>
<host name='example.org' port='6000'/>
</source>
<target dev='vda' bus='virtio'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-lun.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-lun.args
index b25f3a0d6..0fbfd9a6d 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-lun.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-lun.args
@@ -21,7 +21,7 @@ server,nowait \
-boot c \
-device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x3 \
-usb \
--drive file=iscsi://example.org:3260/iqn.1992-01.com.example,format=raw,\
+-drive file=iscsi://example.org:3260/iqn.1992-01.com.example/0,format=raw,\
if=none,id=drive-scsi0-0-0-0 \
-device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
drive=drive-scsi0-0-0-0,id=scsi0-0-0-0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args
index a1d93af10..ed15fda21 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args
@@ -19,7 +19,7 @@ server,nowait \
-no-acpi \
-boot c \
-usb \
--drive file=iscsi://example.org:6000/iqn.1992-01.com.example,format=raw,\
+-drive file=iscsi://example.org:6000/iqn.1992-01.com.example/0,format=raw,\
if=none,id=drive-virtio-disk0 \
-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
id=virtio-disk0 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.args b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.args
index 43c555a50..07ae9f592 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.args
@@ -22,7 +22,7 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--drive file=iscsi://example.org:3260/iqn.1992-01.com.example,if=none,\
+-drive file=iscsi://example.org:3260/iqn.1992-01.com.example/0,if=none,\
format=raw,id=drive-hostdev0 \
-device scsi-generic,bus=scsi0.0,scsi-id=4,drive=drive-hostdev0,id=hostdev0 \
-drive file=iscsi://example.org:3260/iqn.1992-01.com.example/1,if=none,\
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.args b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.args
index a78e3092c..d80c85918 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.args
@@ -22,7 +22,7 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--drive file=iscsi://example.org:3260/iqn.1992-01.com.example,if=none,\
+-drive file=iscsi://example.org:3260/iqn.1992-01.com.example/0,if=none,\
format=raw,id=drive-hostdev0 \
-device scsi-generic,bus=scsi0.0,channel=0,scsi-id=2,lun=4,\
drive=drive-hostdev0,id=hostdev0 \
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-iscsi.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-iscsi.xml
index 23542fa1d..694412b5c 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-iscsi.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-iscsi.xml
@@ -16,7 +16,7 @@
<emulator>/usr/bin/qemu-system-i686</emulator>
<disk type='network' device='disk'>
<driver name='qemu' type='raw'/>
- <source protocol='iscsi' name='iqn.1992-01.com.example'>
+ <source protocol='iscsi' name='iqn.1992-01.com.example/0'>
<host name='example.org' port='6000'/>
</source>
<target dev='vda' bus='virtio'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-lsi-iscsi.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-lsi-iscsi.xml
index e19bce6ea..b7312ca4f 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-lsi-iscsi.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-lsi-iscsi.xml
@@ -32,7 +32,7 @@
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<hostdev mode='subsystem' type='scsi' managed='yes'>
- <source protocol='iscsi' name='iqn.1992-01.com.example'>
+ <source protocol='iscsi' name='iqn.1992-01.com.example/0'>
<host name='example.org' port='3260'/>
</source>
<address type='drive' controller='0' bus='0' target='0' unit='4'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-virtio-iscsi.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-virtio-iscsi.xml
index 37635b4f9..ddf780160 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-virtio-iscsi.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-virtio-iscsi.xml
@@ -32,7 +32,7 @@
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<hostdev mode='subsystem' type='scsi' managed='yes'>
- <source protocol='iscsi' name='iqn.1992-01.com.example'>
+ <source protocol='iscsi' name='iqn.1992-01.com.example/0'>
<host name='example.org' port='3260'/>
</source>
<address type='drive' controller='0' bus='0' target='2' unit='4'/>
--
2.13.5
2
1
Hello everyone.
Last couple of weeks [1] I was working on CAT for libvirt. Only
clean-ups and minor things were pushed into upstream, but as I'm getting
closer and closer to actual functionality I'm seeing a problem with our
current (already discussed and approved) design. And I would like to
know your thoughts about this, even if you are not familiar with CAT,
feel free to keep the questions coming.
* Little bit of background about CAT
[I wanted to say "Long story short...", but after reading the mail in
its entirety before sending it I see it would end up like in "I Should
Have Never Gone Ziplining", so I'll rather let you brace for quite
elongated or, dare I say, endless stream of words]
Since the interface for CAT in the Linux kernel is quite hairy (together
with cache information reporting, don't even get me started on that) and
might feel pretty inconsistent if you are used to any Linux kernel
interface, I would like to summarize how is it used [2]. Feel free to
skip this part if you are familiar with it.
You can tune how much cache which processes can utilize. Let's talk
only about L3 for now, also let's assume only unified caches (no
code/data prioritization). For simplicity.
The cache is split into parts and when describing the allocation we use
hexadecimal representation of bit masks where each bit is the smallest
addressable (or rather allocable) part of the cache. Let's say you have
16MB L3 cache which the CPU is able to allocate by chunks of 1MB, so the
allocation is represented by 32 bits => 8 hexadecimal characters. Yes,
there can be minimum of continuous bits that need to be specified, you
can have multiple L3 caches, etc., but that's yet another thing that's
not important to what I need to discuss. The whole cache is then
referred to as "ffff" in this particular case. Again, for simplicity
sake, let's assume the above hardware is constant in future examples.
Now, when you want to work with the allocations, it behaves similarly
(not the same way, though) as cgroups. The default group, which
contains all processes, is in /sys/fs/resctrl, and you can create
additional groups (directories under /sys/fs/resctrl). These are flat,
not hierarchical, meaning they cannot have subdirectories. Each
resource group represents a group of processes (PIDs are written in
"tasks" file) that share the same resource settings. One of the
settings is the allocation of caches. By default there are no
additional resource groups (subdirectories of /sys/fs/resctrl) and the
default one occupies all the cache.
(IIRC, all bit masks must have only consecutive bits, but I cannot find
this in the documentation; let's assume this as well, but feel free to
correct me)
* Example time (we're almost there)
Let's say you have the default group with this setting:
L3:0=00ff
That is setting of allocation for L3 cache, both code and data, cache id
0 and the occupancy rate is 50% (lower 8MB of the only L3 cache in our
example to be precise).
If you now create additional resource group, let's say
"libvirt-qemu-3-alpine-vcpu3" (truly random name, right?) and set the
following allocation:
L3:0=0ff0
That specifies it will be allowed to use also 8MB of the cache, but this
time from the middle. Half of that will be shared between this group
and the default one, the rest is exclusive to this group only.
* The current design (finally something libvirt-related, right?)
The discussion ended with a conclusion of the following (with my best
knowledge, there were so many discussions about so many things that I
would spend too much time looking up all of them):
- Users should not need to specify bit masks, such complexity should be
abstracted. We'll use sizes (e.g. 4MB)
- Multiple vCPUs might need to share the same allocation.
- Exclusivity of allocations is to be assumed, that is only unoccupied
cache should be used for new allocations.
The last point seems trivial but it's actually very specific condition
that, if removed, can cause several problems. If it's hard to grasp the
last point together with the second one, you're on the right track. If
not, then I'll try to make a point for why the last point should be
removed in 3... 2... 1...
* Design flaws
1) Users cannot specify any allocation that would share only part with
some other allocation of the domain or the default group.
2) It was not specified what to do with the default resource group.
There might be several ways to approach this, with varying pros and
cons:
a) Treat it as any other group. That is any bit set for this group
will be excluded from usable bits when creating new allocation
for a domain.
- Very predictable behaviour
- You will not be able to allocate any amount of cache without
previous setting for the default group as that will have all
the bits set which will make all the cache unusable
b) Automatically remove the appropriate amount of bits that are
needed for new domains.
- No need to do any change to the system settings in order to
use this new feature
- We would have to change system settings, which is generally
frowned upon when done "automatically" as a side effect of
starting a domain, especially for such scarce resource as
cache
- The change to system settings would not be entirely
predictable
c) Act like it doesn't exist and don't remove its allocations from
consideration
- Doesn't really make sense as system processes might be
trashing the cache as any VM, moreover when all VM processes
without allocations will be based in the default group as
well
3) There is no way for users to know what the particular settings are
for any running domain.
The first point was deemed a corner case. Fair enough on its own, but
considering point 2 and its solutions, it is rather difficult for me to
justify it. Also, let's say you have domain with 4 vCPUs out of which
you know 1 might be trashing the cache, but you don't want to restrict
it completely, but others will utilize it very nicely. Sensible
allocations for such domain's vCPUs might be:
vCPU 0: 000f
vCPUs 1-3: ffff
as you want vCPUs 1-3 to utilize even the part of cache that might get
trashed by vCPU 0. Or they might share some data (especially
guest-memory-related).
The case above is not possible to set up with only per-vcpu(s) scalar
setting. And there are more as you might imagine now. For example how
do we behave with iothreads and emulator threads?
* My suggestion:
- Provide an API for querying and changing the allocation of the
default resource group. This would be similar to setting and
querying hugepage allocations (see virsh's freepages/allocpages
commands).
- Let users specify the starting position in addition to the size, i.e.
not only specifying "size", but also "from". If "from" is not
specified, the whole allocation must be exclusive. If "from" is
specified it will be set without checking for collisions. The latter
needs them to query the system or know what settings are applied
(this should be the case all the time), but is better then adding
non-specific and/or meaningless exclusivity settings (how do you
specify part-exclusivity of the cache as in the example above)
- After starting a domain, fill in any missing information about the
allocation (I'm generalizing here, but fro now it would only be the
optional "from" attribute)
- Add settings not only for vCPUs, but also for other threads as we do
with pinning, schedulers, etc.
Let me know what you think. As I said before, even if you're not
familiar with CAT. And thank you for reading the whole thing or at
least skipping to the end. I spend quite some time on this, I changed
the underlying code design several times (thanks again for the
"consistency" of the design of resctrlfs) and I'm afraid my head is
going to burst any moment now.
Have a nice day
Martin
P.S.: I still continue on the implementation, you can follow it on my
github [3]. Don't expect the tests to pass or all functions to be
complete, thought. You have been warned.
[1] Technically months, I can't wrap my head around how much technical
debt there is in libvirt.
[2] Detailed information in Documentation/x86/intel_rdt_ui.txt
[3] https://github.com/nertpinx/libvirt/tree/catwip
3
5
The patch passes the reconnect timeout to QEMU by monitor on chardev hotplug.
Signed-off-by: ZhiPeng Lu <lu.zhipeng(a)zte.com.cn>
---
src/qemu/qemu_monitor_json.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index df5fb7c..4169cd5 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -6444,6 +6444,17 @@ int qemuMonitorJSONGetTPMTypes(qemuMonitorPtr mon,
return qemuMonitorJSONGetStringArray(mon, "query-tpm-types", tpmtypes);
}
+static int
+qemuMonitorJSONBuildChrChardevReconnect(virJSONValuePtr object,
+ const virDomainChrSourceReconnectDef *def)
+{
+ int ret = 0;
+ if (def->enabled == VIR_TRISTATE_BOOL_YES) {
+ ret = virJSONValueObjectAppendNumberUint(object, "reconnect", def->timeout);
+ }
+ return ret;
+}
+
static virJSONValuePtr
qemuMonitorJSONAttachCharDevCommand(const char *chrID,
const virDomainChrSourceDef *chr)
@@ -6508,6 +6519,10 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
if (virJSONValueObjectAppendString(data, "tls-creds", tlsalias) < 0)
goto cleanup;
}
+
+ if (qemuMonitorJSONBuildChrChardevReconnect(data, &chr->data.tcp.reconnect) < 0) {
+ goto cleanup;
+ }
break;
case VIR_DOMAIN_CHR_TYPE_UDP:
@@ -6545,6 +6560,10 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
if (virJSONValueObjectAppendBoolean(data, "wait", false) < 0 ||
virJSONValueObjectAppendBoolean(data, "server", chr->data.nix.listen) < 0)
goto cleanup;
+
+ if (qemuMonitorJSONBuildChrChardevReconnect(data, &chr->data.nix.reconnect) < 0) {
+ goto cleanup;
+ }
break;
case VIR_DOMAIN_CHR_TYPE_SPICEVMC:
--
1.8.3.1
2
1
[libvirt] [PATCH] storage: Check and possibly update config file after build
by John Ferlan 11 Sep '17
by John Ferlan 11 Sep '17
11 Sep '17
https://bugzilla.redhat.com/show_bug.cgi?id=1464313
As it turns out, the on-disk config file (e.g. not the stateDir file)
needs to be updated when --override is provided since it's possible and
highly probable that the def->source.format has been adjusted and could
cause a future start after perhaps a libvirtd restart to have the older
format from a define operation from the backend.
So in the 2 places where it's possible a write would be needed (create
after define and build), let's perform a check and do the save/write
operation on the configFile if it's necessary.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/storage/storage_driver.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 7cf5943..afb0404 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -651,6 +651,22 @@ storagePoolIsPersistent(virStoragePoolPtr pool)
}
+/* After a pool build, it's possible the inactive configFile needs to
+ * be updated especially since overwriting the pool more than likely
+ * changes the source format and may change/update a few other fields. */
+static int
+storagePoolBuildCheckUpdateConfig(virStoragePoolObjPtr obj,
+ unsigned int flags)
+{
+ int ret = 0;
+
+ if ((flags & VIR_STORAGE_POOL_BUILD_OVERWRITE) && obj->configFile)
+ ret = virStoragePoolSaveConfig(obj->configFile, obj->def);
+
+ return ret;
+}
+
+
static virStoragePoolPtr
storagePoolCreateXML(virConnectPtr conn,
const char *xml,
@@ -916,6 +932,9 @@ storagePoolCreate(virStoragePoolPtr pool,
if (backend->buildPool(pool->conn, obj, build_flags) < 0)
goto cleanup;
}
+
+ if (storagePoolBuildCheckUpdateConfig(obj, build_flags) < 0)
+ goto cleanup;
}
VIR_INFO("Starting up storage pool '%s'", obj->def->name);
@@ -980,6 +999,10 @@ storagePoolBuild(virStoragePoolPtr pool,
if (backend->buildPool &&
backend->buildPool(pool->conn, obj, flags) < 0)
goto cleanup;
+
+ if (storagePoolBuildCheckUpdateConfig(obj, flags) < 0)
+ goto cleanup;
+
ret = 0;
cleanup:
--
2.9.5
2
4
Probably could have gone by the trivial rule.
Guido Günther (3):
storagefile: fix defintion vs definition typo
qemu_driver: fix existance vs existence typo
virnetserver: fix mesage vs message typo
src/qemu/qemu_driver.c | 2 +-
src/rpc/virnetserver.c | 2 +-
src/util/virstoragefile.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
--
2.14.1
2
5
11 Sep '17
https://bugzilla.redhat.com/show_bug.cgi?id=1477880
If the "/#" is missing from the provided iSCSI path, then we need
to provide the default LUN of /0; otherwise, QEMU will fail to parse
the URL causing a failure to either create the guest or hotplug
attach the storage.
Alter the command lines generated appropriately. This change does not
effect the XML input files.
One 'side effect' of this for the argv2xml is that if a "/0" is found
on the command line, then the generated XML would need to add the "/0"
to the output XML since it wouldn't be known whether it existed or not
at qemu process creation time.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
NB: Investigated the history quite a bit between QEMU and libiscsi and
it seems as though this probably never worked and of course never "tested"
in a real environment. Ironically, in qapi/block-core.json, it is claimed
that the LUN would default to 0, but the block/iscsi.c code that calls
iscsi_parse_full_url would never (AFAICT) have supported not supplying
some LUN on the command line.
src/qemu/qemu_command.c | 20 ++++++++++++++++----
.../qemuargv2xml-disk-drive-network-iscsi.args | 2 +-
.../qemuargv2xml-disk-drive-network-iscsi.xml | 2 +-
.../qemuxml2argv-disk-drive-network-iscsi-lun.args | 2 +-
.../qemuxml2argv-disk-drive-network-iscsi.args | 2 +-
.../qemuxml2argv-hostdev-scsi-lsi-iscsi.args | 2 +-
.../qemuxml2argv-hostdev-scsi-virtio-iscsi.args | 2 +-
7 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index ed8cb6e..cff84de 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -830,10 +830,22 @@ qemuBuildNetworkDriveURI(virStorageSourcePtr src,
src->volume, src->path) < 0)
goto cleanup;
} else {
- if (virAsprintf(&uri->path, "%s%s",
- src->path[0] == '/' ? "" : "/",
- src->path) < 0)
- goto cleanup;
+ if (src->protocol == VIR_STORAGE_NET_PROTOCOL_ISCSI &&
+ !strchr(src->path, '/')) {
+
+ /* The details of iqn is defined by RFC 3720 and 3721, but
+ * we just need to make sure there's a lun provided. If not
+ * provided, then default to zero. If ISCSI LUN is provided
+ * by /dev/disk/by-path/... , then that path will have the
+ * specific lun requested. */
+ if (virAsprintf(&uri->path, "/%s/0", src->path) < 0)
+ goto cleanup;
+ } else {
+ if (virAsprintf(&uri->path, "%s%s",
+ src->path[0] == '/' ? "" : "/",
+ src->path) < 0)
+ goto cleanup;
+ }
}
}
diff --git a/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.args b/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.args
index 62cc5c0..ec2e8dc 100644
--- a/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.args
+++ b/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.args
@@ -16,7 +16,7 @@ QEMU_AUDIO_DRV=none \
-no-acpi \
-boot c \
-usb \
--drive file=iscsi://example.org:6000/iqn.1992-01.com.example,format=raw,\
+-drive file=iscsi://example.org:6000/iqn.1992-01.com.example/0,format=raw,\
if=virtio \
-drive file=iscsi://example.org:6000/iqn.1992-01.com.example/1,format=raw,\
if=virtio \
diff --git a/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.xml b/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.xml
index 23542fa..694412b 100644
--- a/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.xml
+++ b/tests/qemuargv2xmldata/qemuargv2xml-disk-drive-network-iscsi.xml
@@ -16,7 +16,7 @@
<emulator>/usr/bin/qemu-system-i686</emulator>
<disk type='network' device='disk'>
<driver name='qemu' type='raw'/>
- <source protocol='iscsi' name='iqn.1992-01.com.example'>
+ <source protocol='iscsi' name='iqn.1992-01.com.example/0'>
<host name='example.org' port='6000'/>
</source>
<target dev='vda' bus='virtio'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-lun.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-lun.args
index b25f3a0..0fbfd9a 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-lun.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-lun.args
@@ -21,7 +21,7 @@ server,nowait \
-boot c \
-device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x3 \
-usb \
--drive file=iscsi://example.org:3260/iqn.1992-01.com.example,format=raw,\
+-drive file=iscsi://example.org:3260/iqn.1992-01.com.example/0,format=raw,\
if=none,id=drive-scsi0-0-0-0 \
-device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
drive=drive-scsi0-0-0-0,id=scsi0-0-0-0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args
index a1d93af..ed15fda 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi.args
@@ -19,7 +19,7 @@ server,nowait \
-no-acpi \
-boot c \
-usb \
--drive file=iscsi://example.org:6000/iqn.1992-01.com.example,format=raw,\
+-drive file=iscsi://example.org:6000/iqn.1992-01.com.example/0,format=raw,\
if=none,id=drive-virtio-disk0 \
-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
id=virtio-disk0 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.args b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.args
index 43c555a..07ae9f5 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.args
@@ -22,7 +22,7 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--drive file=iscsi://example.org:3260/iqn.1992-01.com.example,if=none,\
+-drive file=iscsi://example.org:3260/iqn.1992-01.com.example/0,if=none,\
format=raw,id=drive-hostdev0 \
-device scsi-generic,bus=scsi0.0,scsi-id=4,drive=drive-hostdev0,id=hostdev0 \
-drive file=iscsi://example.org:3260/iqn.1992-01.com.example/1,if=none,\
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.args b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.args
index a78e309..d80c859 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.args
@@ -22,7 +22,7 @@ server,nowait \
-usb \
-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-0-0 \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--drive file=iscsi://example.org:3260/iqn.1992-01.com.example,if=none,\
+-drive file=iscsi://example.org:3260/iqn.1992-01.com.example/0,if=none,\
format=raw,id=drive-hostdev0 \
-device scsi-generic,bus=scsi0.0,channel=0,scsi-id=2,lun=4,\
drive=drive-hostdev0,id=hostdev0 \
--
2.9.5
3
3
"domrename" is used to rename an inactive domain, should not use
id for the --domain OPTION.
---
tools/virsh-domain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index f235c66..84c8dcc 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -10151,7 +10151,7 @@ static const vshCmdInfo info_domrename[] = {
};
static const vshCmdOptDef opts_domrename[] = {
- VIRSH_COMMON_OPT_DOMAIN_FULL,
+ VIRSH_COMMON_OPT_DOMAIN(N_("domain name or uuid")),
{.name = "new-name",
.type = VSH_OT_DATA,
.flags = VSH_OFLAG_REQ,
--
1.8.3.1
2
1
[libvirt] [PATCH] qemu: Don't report failure to destroy a destroyed domain
by Jiri Denemark 11 Sep '17
by Jiri Denemark 11 Sep '17
11 Sep '17
When destroying a domain libvirt marks it internally with a
beingDestroyed flag to make sure the qemuDomainDestroyFlags API itself
cleans up after the domain rather than letting an uninformed EOF handler
do it. However, when the domain is being started at the moment libvirt
was asked to destroy it, only the starting thread can properly clean up
after the domain and thus it ignores the beingDestroyed flag. Once
qemuDomainDestroyFlags finally gets a job, the domain may not be running
anymore, which should not be reported as an error if the domain has been
starting up.
https://bugzilla.redhat.com/show_bug.cgi?id=1445600
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_driver.c | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 6255d89310..a25daae866 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2224,6 +2224,9 @@ qemuDomainDestroyFlags(virDomainPtr dom,
virObjectEventPtr event = NULL;
qemuDomainObjPrivatePtr priv;
unsigned int stopFlags = 0;
+ int state;
+ int reason;
+ bool starting;
virCheckFlags(VIR_DOMAIN_DESTROY_GRACEFUL, -1);
@@ -2235,13 +2238,29 @@ qemuDomainDestroyFlags(virDomainPtr dom,
if (virDomainDestroyFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
+ if (!virDomainObjIsActive(vm)) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ "%s", _("domain is not running"));
+ goto cleanup;
+ }
+
+ state = virDomainObjGetState(vm, &reason);
+ starting = (state == VIR_DOMAIN_PAUSED &&
+ reason == VIR_DOMAIN_PAUSED_STARTING_UP &&
+ !priv->beingDestroyed);
+
if (qemuProcessBeginStopJob(driver, vm, QEMU_JOB_DESTROY,
!(flags & VIR_DOMAIN_DESTROY_GRACEFUL)) < 0)
goto cleanup;
if (!virDomainObjIsActive(vm)) {
- virReportError(VIR_ERR_OPERATION_INVALID,
- "%s", _("domain is not running"));
+ if (starting) {
+ VIR_DEBUG("Domain %s is not running anymore", vm->def->name);
+ ret = 0;
+ } else {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ "%s", _("domain is not running"));
+ }
goto endjob;
}
--
2.14.1
2
1
[libvirt] [PATCH v6 00/13] Add support for Veritas HyperScale (VxHS) block device protocol
by John Ferlan 11 Sep '17
by John Ferlan 11 Sep '17
11 Sep '17
Here's the reworked v5 series I promised:
https://www.redhat.com/archives/libvir-list/2017-August/thread.html
Each of the patches lists changes that I recall making in the
area. I may have missed a few... and I may have missed something
from my own review - so hopefully Ashish you can keep me honest and
of course since you have the environment, please check/test that
things actually work.
I've done quite a bit of reformatting the order and splitting things
up so that XML changes are in one patch and qemu changes are in a
subsequent patch. Not too little change, but not too excessive.
I think we do need to think about the default TLS environment and
whether we really care to fail in the event that cfg->vxhsTLS = 0
and src->haveTLS = yes.
Ashish Mittal (10):
storage: Introduce VIR_STORAGE_NET_PROTOCOL_VXHS
docs: Add schema and docs for Veritas HyperScale (VxHS)
util: storage: Add JSON backing volume parse for VxHS
qemu: Add qemu command line generation for a VxHS block device
conf: Introduce TLS options for VxHS block device clients
util: Add haveTLS to virStorageSource
util: Add virstoragetest to parse/format a tls='yes'
qemu: Add TLS support for Veritas HyperScale (VxHS)
tests: Add test for failure when vxhs_tls=0
tests: Add a test case for multiple VxHS disk configuration
John Ferlan (3):
qemu: Add QEMU 2.10 x86_64 the generated capabilities
qemu: Detect support for vxhs
qemu: Introduce qemuDomainPrepareDiskSource
docs/formatdomain.html.in | 46 +-
docs/schemas/domaincommon.rng | 18 +
src/conf/domain_conf.c | 19 +
src/libxl/libxl_conf.c | 1 +
src/qemu/libvirtd_qemu.aug | 4 +
src/qemu/qemu.conf | 33 +
src/qemu/qemu_block.c | 70 +-
src/qemu/qemu_block.h | 4 +-
src/qemu/qemu_capabilities.c | 4 +
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_command.c | 41 +-
src/qemu/qemu_conf.c | 16 +
src/qemu/qemu_conf.h | 3 +
src/qemu/qemu_domain.c | 58 +
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 3 +
src/qemu/qemu_parse_command.c | 15 +
src/qemu/qemu_process.c | 4 +
src/qemu/test_libvirtd_qemu.aug.in | 2 +
src/util/virstoragefile.c | 54 +-
src/util/virstoragefile.h | 4 +
src/xenconfig/xen_xl.c | 1 +
.../caps_2.10.0.x86_64.replies | 17994 +++++++++++++++++++
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 792 +
tests/qemucapabilitiestest.c | 1 +
...ml2argv-disk-drive-network-tlsx509-err-vxhs.xml | 34 +
...-disk-drive-network-tlsx509-multidisk-vxhs.args | 43 +
...v-disk-drive-network-tlsx509-multidisk-vxhs.xml | 50 +
...muxml2argv-disk-drive-network-tlsx509-vxhs.args | 30 +
...emuxml2argv-disk-drive-network-tlsx509-vxhs.xml | 32 +
.../qemuxml2argv-disk-drive-network-vxhs.args | 27 +
.../qemuxml2argv-disk-drive-network-vxhs.xml | 32 +
tests/qemuxml2argvtest.c | 10 +
...uxml2xmlout-disk-drive-network-tlsx509-vxhs.xml | 34 +
.../qemuxml2xmlout-disk-drive-network-vxhs.xml | 34 +
tests/qemuxml2xmltest.c | 2 +
tests/virstoragetest.c | 23 +
37 files changed, 19534 insertions(+), 12 deletions(-)
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-err-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-tlsx509-vxhs.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-vxhs.xml
--
2.9.5
4
39
11 Sep '17
Requesting an automated switch to a post-copy migration (using
--timeout-postcopy) without actually enabling post-copy migration (using
--postcopy) doesn't really do anything. Let's make this dependency
explicit to avoid unexpected behavior.
https://bugzilla.redhat.com/show_bug.cgi?id=1455023
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
tools/virsh-domain.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index f235c66b07..a3f3b7c7bd 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -10768,6 +10768,7 @@ cmdMigrate(vshControl *ctl, const vshCmd *cmd)
VSH_EXCLUSIVE_OPTIONS("live", "offline");
VSH_EXCLUSIVE_OPTIONS("timeout-suspend", "timeout-postcopy");
VSH_REQUIRE_OPTION("postcopy-after-precopy", "postcopy");
+ VSH_REQUIRE_OPTION("timeout-postcopy", "postcopy");
VSH_REQUIRE_OPTION("persistent-xml", "persistent");
if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
--
2.14.1
2
1
[libvirt] [PATCH] virsh: help: Drop 'id' from possible values for <domain> argument
by Erik Skultety 11 Sep '17
by Erik Skultety 11 Sep '17
11 Sep '17
At the moment, we can only rename inactive domains.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1490164
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
Theoretically, we could also remove this check from qemu_driver.c as it's a
useless check, given that a VM which passes the 'active' check is going to be a
persistent domain:
if (!vm->persistent) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("cannot rename a transient domain"));
goto endjob;
}
Also, virshCommandOptDomainBy could be used instead of virshCommandOptDomain in
this case, but we might as well enable rename for active domains as well, who
knows and I don't think this is worth any more attention that just a help string
tweak.
tools/virsh-domain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index f235c66b0..84c8dccae 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -10151,7 +10151,7 @@ static const vshCmdInfo info_domrename[] = {
};
static const vshCmdOptDef opts_domrename[] = {
- VIRSH_COMMON_OPT_DOMAIN_FULL,
+ VIRSH_COMMON_OPT_DOMAIN(N_("domain name or uuid")),
{.name = "new-name",
.type = VSH_OT_DATA,
.flags = VSH_OFLAG_REQ,
--
2.13.3
2
2
11 Sep '17
From: Wim ten Have <wim.ten.have(a)oracle.com>
This patch extents guest domain administration adding support to advertise
node sibling distances when configuring HVM numa guests.
NUMA (non-uniform memory access), a method of configuring a cluster of nodes
within a single multiprocessing system such that it shares processor
local memory amongst others improving performance and the ability of the
system to be expanded.
A NUMA system could be illustrated as shown below. Within this 4-node
system, every socket is equipped with its own distinct memory. The whole
typically resembles a SMP (symmetric multiprocessing) system being a
"tightly-coupled," "share everything" system in which multiple processors
are working under a single operating system and can access each others'
memory over multiple "Bus Interconnect" paths.
+-----+-----+-----+ +-----+-----+-----+
| M | CPU | CPU | | CPU | CPU | M |
| E | | | | | | E |
| M +- Socket0 -+ +- Socket3 -+ M |
| O | | | | | | O |
| R | CPU | CPU <---------> CPU | CPU | R |
| Y | | | | | | Y |
+-----+--^--+-----+ +-----+--^--+-----+
| |
| Bus Interconnect |
| |
+-----+--v--+-----+ +-----+--v--+-----+
| M | | | | | | M |
| E | CPU | CPU <---------> CPU | CPU | E |
| M | | | | | | M |
| O +- Socket1 -+ +- Socket2 -+ O |
| R | | | | | | R |
| Y | CPU | CPU | | CPU | CPU | Y |
+-----+-----+-----+ +-----+-----+-----+
In contrast there is the limitation of a flat SMP system, not illustrated.
Here, as sockets are added, the bus (data and address path), under high
activity, gets overloaded and easily becomes a performance bottleneck.
NUMA adds an intermediate level of memory shared amongst a few cores per
socket as illustrated above, so that data accesses do not have to travel
over a single bus.
Unfortunately the way NUMA does this adds its own limitations. This,
as visualized in the illustration above, happens when data is stored in
memory associated with Socket2 and is accessed by a CPU (core) in Socket0.
The processors use the "Bus Interconnect" to create gateways between the
sockets (nodes) enabling inter-socket access to memory. These "Bus
Interconnect" hops add data access delays when a CPU (core) accesses
memory associated with a remote socket (node).
For terminology we refer to sockets as "nodes" where access to each
others' distinct resources such as memory make them "siblings" with a
designated "distance" between them. A specific design is described under
the ACPI (Advanced Configuration and Power Interface Specification)
within the chapter explaining the system's SLIT (System Locality Distance
Information Table).
These patches extend core libvirt's XML description of a virtual machine's
hardware to include NUMA distance information for sibling nodes, which
is then passed to Xen guests via libxl. Recently qemu landed support for
constructing the SLIT since commit 0f203430dd ("numa: Allow setting NUMA
distance for different NUMA nodes"), hence these core libvirt extensions
can also help other drivers in supporting this feature.
The XML changes made allow to describe the <cell> (or node/sockets) <distances>
amongst <sibling> node identifiers and propagate these towards the numa
domain functionality finally adding support to libxl.
[below is an example illustrating a 4 node/socket <cell> setup]
<cpu>
<numa>
<cell id='0' cpus='0,4-7' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='10'/>
<sibling id='1' value='21'/>
<sibling id='2' value='31'/>
<sibling id='3' value='41'/>
</distances>
</cell>
<cell id='1' cpus='1,8-10,12-15' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='21'/>
<sibling id='1' value='10'/>
<sibling id='2' value='21'/>
<sibling id='3' value='31'/>
</distances>
</cell>
<cell id='2' cpus='2,11' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='31'/>
<sibling id='1' value='21'/>
<sibling id='2' value='10'/>
<sibling id='3' value='21'/>
</distances>
</cell>
<cell id='3' cpus='3' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='41'/>
<sibling id='1' value='31'/>
<sibling id='2' value='21'/>
<sibling id='3' value='10'/>
</distances>
</cell>
</numa>
</cpu>
By default on libxl, if no <distances> are given to describe the SLIT data
between different <cell>s, this patch will default to a scheme using 10
for local and 21 for any remote node/socket, which is the assumption of
guest OS when no SLIT is specified. While SLIT is optional, libxl requires
that distances are set nonetheless.
On Linux systems the SLIT detail can be listed with help of the 'numactl -H'
command. An above HVM guest as described would on such prompt with below output.
[root@f25 ~]# numactl -H
available: 4 nodes (0-3)
node 0 cpus: 0 4 5 6 7
node 0 size: 1988 MB
node 0 free: 1743 MB
node 1 cpus: 1 8 9 10 12 13 14 15
node 1 size: 1946 MB
node 1 free: 1885 MB
node 2 cpus: 2 11
node 2 size: 2011 MB
node 2 free: 1912 MB
node 3 cpus: 3
node 3 size: 2010 MB
node 3 free: 1980 MB
node distances:
node 0 1 2 3
0: 10 21 31 41
1: 21 10 21 31
2: 31 21 10 21
3: 41 31 21 10
Wim ten Have (4):
numa: describe siblings distances within cells
libxl: vnuma support
xenconfig: add domxml conversions for xen-xl
xlconfigtest: add tests for numa cell sibling distances
docs/formatdomain.html.in | 70 ++++-
docs/schemas/basictypes.rng | 9 +
docs/schemas/cputypes.rng | 18 ++
src/conf/cpu_conf.c | 2 +-
src/conf/numa_conf.c | 323 +++++++++++++++++++-
src/conf/numa_conf.h | 25 +-
src/libvirt_private.syms | 6 +
src/libxl/libxl_conf.c | 120 ++++++++
src/libxl/libxl_driver.c | 3 +-
src/xenconfig/xen_xl.c | 333 +++++++++++++++++++++
.../test-fullvirt-vnuma-nodistances.cfg | 26 ++
.../test-fullvirt-vnuma-nodistances.xml | 53 ++++
tests/xlconfigdata/test-fullvirt-vnuma.cfg | 26 ++
tests/xlconfigdata/test-fullvirt-vnuma.xml | 81 +++++
tests/xlconfigtest.c | 4 +
15 files changed, 1089 insertions(+), 10 deletions(-)
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma-nodistances.cfg
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma-nodistances.xml
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma.cfg
create mode 100644 tests/xlconfigdata/test-fullvirt-vnuma.xml
--
2.9.5
4
12
08 Sep '17
*** BLURB HERE, BLURB THERE, BLURB EVERYWHERE :) ***
Erik Skultety (2):
virsh: man: Be more explicit about 'create' creating transient domain
virsh: man: Document the --validate option for create and define cmds
tools/virsh.pod | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
--
2.13.3
2
5
[libvirt] [PATCH] docs: Update --timeout description in libvirtd's man page
by Erik Skultety 08 Sep '17
by Erik Skultety 08 Sep '17
08 Sep '17
Since commit @ae2163f8, only active client connections or running
domains are allowed to inhibit daemon shutdown. The man page however
wasn't updated appropriately.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1325066
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
daemon/libvirtd.pod | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/daemon/libvirtd.pod b/daemon/libvirtd.pod
index 9f5a17d9c..8d3fbd13d 100644
--- a/daemon/libvirtd.pod
+++ b/daemon/libvirtd.pod
@@ -56,10 +56,8 @@ Use this name for the PID file, overriding the default value.
=item B<-t, --timeout> I<SECONDS>
-Exit after timeout period (in seconds) elapse with no client connections
-or registered resources. Be aware that resources such as autostart
-networks will result in never reaching the timeout, even when there are
-no client connections.
+Exit after timeout period (in seconds), provided there are neither any client
+connections nor any running domains.
=item B<-v, --verbose>
--
2.13.3
2
1
Add a new CPU model called 'EPYC' to model processors from AMD EPYC
family (which includes EPYC 76xx,75xx,74xx, 73xx and 72xx).
The following features bits have been added/removed compare to Opteron_G5
Added: monitor, movbe, rdrand, mmxext, ffxsr, rdtscp, cr8legacy, osvw,
fsgsbase, bmi1, avx2, smep, bmi2, rdseed, adx, smap, clfshopt, sha
xsaveopt, xsavec, xgetbv1, arat
Removed: xop, fma4, tbm
The patch is depend on EPYC CPU model supported introduced in qemu [1]
[1] https://patchwork.kernel.org/patch/9902205/
Cc: Tom Lendacky <Thomas.Lendacky(a)amd.com>
Signed-off-by: Brijesh Singh <brijesh.singh(a)amd.com>
---
src/cpu/cpu_map.xml | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml
index 8e7ac49..522d66b 100644
--- a/src/cpu/cpu_map.xml
+++ b/src/cpu/cpu_map.xml
@@ -251,6 +251,9 @@
<feature name='clflushopt'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00800000'/>
</feature>
+ <feature name='sha_ni'>
+ <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x20000000'/>
+ </feature>
<feature name='avx512pf'>
<cpuid eax_in='0x07' ecx_in='0x00' ebx='0x04000000'/>
</feature>
@@ -1545,6 +1548,77 @@
<feature name='xop'/>
<feature name='xsave'/>
</model>
+
+ <model name='EPYC'>
+ <signature family='23' model='1'/>
+ <vendor name='AMD'/>
+ <feature name='sse2'/>
+ <feature name='sse'/>
+ <feature name='fxsr'/>
+ <feature name='mmx'/>
+ <feature name='clflush'/>
+ <feature name='pse36'/>
+ <feature name='pat'/>
+ <feature name='cmov'/>
+ <feature name='mca'/>
+ <feature name='pge'/>
+ <feature name='mtrr'/>
+ <feature name='sep'/>
+ <feature name='apic'/>
+ <feature name='cx8'/>
+ <feature name='mce'/>
+ <feature name='pae'/>
+ <feature name='msr'/>
+ <feature name='tsc'/>
+ <feature name='pse'/>
+ <feature name='de'/>
+ <feature name='vme'/>
+ <feature name='fpu'/>
+ <feature name='rdrand'/>
+ <feature name='f16c'/>
+ <feature name='avx'/>
+ <feature name='xsave'/>
+ <feature name='aes'/>
+ <feature name='popcnt'/>
+ <feature name='movbe'/>
+ <feature name='sse4.2'/>
+ <feature name='sse4.1'/>
+ <feature name='cx16'/>
+ <feature name='fma'/>
+ <feature name='ssse3'/>
+ <feature name='monitor'/>
+ <feature name='pclmuldq'/>
+ <feature name='pni'/>
+ <feature name='lm'/>
+ <feature name='rdtscp'/>
+ <feature name='pdpe1gb'/>
+ <feature name='fxsr_opt'/>
+ <feature name='mmxext'/>
+ <feature name='nx'/>
+ <feature name='syscall'/>
+ <feature name='osvw'/>
+ <feature name='3dnowprefetch'/>
+ <feature name='misalignsse'/>
+ <feature name='sse4a'/>
+ <feature name='abm'/>
+ <feature name='cr8legacy'/>
+ <feature name='svm'/>
+ <feature name='lahf_lm'/>
+ <feature name='fsgsbase'/>
+ <feature name='bmi1'/>
+ <feature name='avx2'/>
+ <feature name='smep'/>
+ <feature name='bmi2'/>
+ <feature name='rdseed'/>
+ <feature name='adx'/>
+ <feature name='smap'/>
+ <feature name='clflushopt'/>
+ <feature name='sha_ni'/>
+ <feature name='xsaveopt'/>
+ <feature name='xsavec'/>
+ <feature name='xgetbv1'/>
+ <feature name='arat'/>
+ </model>
</arch>
<arch name='ppc64'>
--
2.9.4
3
2
[libvirt] [PATCH v4 00/13] qemu: migration: show disks stats for nbd migration
by Nikolay Shirokovskiy 07 Sep '17
by Nikolay Shirokovskiy 07 Sep '17
07 Sep '17
diff from v3:
============
1. Fix misc style issues
2. Use different structure to store mirror stats
3. Drop logic to update mirror stats after mirror become ready
This patch series add disks stats to domain job info(stats) as
well as to migration completed event in case nbd scheme is used.
Patches that were explicitly ACKed in previous review
(up to style issues) marked with A.
Nikolay Shirokovskiy (13):
A qemu: drop code for VIR_DOMAIN_JOB_BOUNDED and timeRemaining
A qemu: introduce qemu domain job status
A qemu: introduce QEMU_DOMAIN_JOB_STATUS_POSTCOPY
A qemu: drop QEMU_MIGRATION_COMPLETED_UPDATE_STATS
A qemu: drop excessive zero-out in qemuMigrationFetchJobStatus
qemu: refactor fetching migration stats
qemu: simplify getting completed job stats
A qemu: fail querying destination migration statistics always
A qemu: start all async job with job status active
A qemu: introduce migrating job status
A qemu: always get job condition on getting job stats
qemu: migrate: add mirror stats to migration stats
A qemu: migration: don't expose incomplete job as complete
src/qemu/qemu_domain.c | 69 ++++++++++----
src/qemu/qemu_domain.h | 23 ++++-
src/qemu/qemu_driver.c | 86 +++++++++--------
src/qemu/qemu_migration.c | 195 +++++++++++++++++++++++----------------
src/qemu/qemu_migration.h | 14 ++-
src/qemu/qemu_migration_cookie.c | 7 +-
src/qemu/qemu_process.c | 8 +-
7 files changed, 243 insertions(+), 159 deletions(-)
--
1.8.3.1
2
16
07 Sep '17
TPM 2 does not implement sysfs files for cancellation of commands.
We therefore use /dev/null for the cancel path passed to QEMU.
Signed-off-by: Stefan Berger <stefanb(a)linux.vnet.ibm.com>
---
src/util/virtpm.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/util/virtpm.c b/src/util/virtpm.c
index 6d9b065..d5c10da 100644
--- a/src/util/virtpm.c
+++ b/src/util/virtpm.c
@@ -61,9 +61,7 @@ virTPMCreateCancelPath(const char *devpath)
VIR_FREE(path);
}
if (!path)
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("No usable sysfs TPM cancel file could be "
- "found"));
+ ignore_value(VIR_STRDUP(path, "/dev/null"));
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("TPM device path %s is invalid"), devpath);
--
2.5.5
5
6
Brijesh Singh (1):
cpu: Add new EPYC CPU model
Jiri Denemark (2):
tests: Add CPUID data for AMD Ryzen 7 1800X Eight-Core Processor
tests: Add CPUID data for AMD EPYC 7601 32-Core Processor
src/cpu/cpu_map.xml | 74 +++++++
tests/cputest.c | 2 +
.../x86_64-cpuid-EPYC-7601-32-Core-disabled.xml | 8 +
.../x86_64-cpuid-EPYC-7601-32-Core-enabled.xml | 10 +
.../x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 16 ++
.../x86_64-cpuid-EPYC-7601-32-Core-host.xml | 17 ++
.../x86_64-cpuid-EPYC-7601-32-Core-json.xml | 11 +
.../x86_64-cpuid-EPYC-7601-32-Core.json | 241 +++++++++++++++++++++
.../cputestdata/x86_64-cpuid-EPYC-7601-32-Core.xml | 54 +++++
..._64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml | 9 +
...6_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml | 10 +
...x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 16 ++
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 17 ++
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml | 11 +
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json | 203 +++++++++++++++++
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml | 52 +++++
16 files changed, 751 insertions(+)
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.json
create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml
--
2.14.1
2
4
Brijesh Singh (1):
cpu: Add new EPYC CPU model
Jiri Denemark (1):
tests: Add CPUID data for AMD Ryzen 7 1800X Eight-Core Processor
src/cpu/cpu_map.xml | 74 ++++++++
tests/cputest.c | 1 +
..._64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml | 9 +
...6_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml | 10 +
...x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 16 ++
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 17 ++
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml | 11 ++
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json | 203 +++++++++++++++++++++
.../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml | 52 ++++++
9 files changed, 393 insertions(+)
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json
create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml
--
2.14.1
2
4
I can't believe there is no blurb here!
Andrea Bolognani (2):
travis: Sort build dependencies
travis: Install gettext
.travis.yml | 49 +++++++++++++++++++++++++------------------------
1 file changed, 25 insertions(+), 24 deletions(-)
--
2.13.5
2
5
[libvirt] [PATCH] qemu: Be more selective when determining cdrom for taint messaging
by John Ferlan 07 Sep '17
by John Ferlan 07 Sep '17
07 Sep '17
https://bugzilla.redhat.com/show_bug.cgi?id=1471225
Commit id '99a2d6af2' was a bit too aggressive with determining whether
the provided path was a "physical" cd-rom in order to generate a taint
message due to the possibility of some guest and host trying to control
the tray. For cd-rom guest devices backed to some VIR_STORAGE_TYPE_FILE
storage, this wouldn't be a problem and as such it shouldn't be a problem
for guest devices using some sort of block device on the host such as
iSCSI, LVM, or a Disk pool would present.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/libvirt_private.syms | 1 +
src/qemu/qemu_domain.c | 2 +-
src/util/virfile.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
src/util/virfile.h | 4 ++++
4 files changed, 54 insertions(+), 1 deletion(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index f30a04b..0354568 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1680,6 +1680,7 @@ virFileGetMountSubtree;
virFileHasSuffix;
virFileInData;
virFileIsAbsPath;
+virFileIsCDROM;
virFileIsDir;
virFileIsExecutable;
virFileIsLink;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 9cff501..426c577 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -4807,7 +4807,7 @@ void qemuDomainObjCheckDiskTaint(virQEMUDriverPtr driver,
if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM &&
virStorageSourceGetActualType(disk->src) == VIR_STORAGE_TYPE_BLOCK &&
- disk->src->path)
+ disk->src->path && virFileIsCDROM(disk->src->path))
qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_CDROM_PASSTHROUGH,
logCtxt);
diff --git a/src/util/virfile.c b/src/util/virfile.c
index 2f28e83..4c31949 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -4166,3 +4166,51 @@ virFileReadValueString(char **value, const char *format, ...)
VIR_FREE(str);
return ret;
}
+
+
+#if defined(__linux__)
+
+/* virFileIsCDROM
+ * @path: Supplied path.
+ *
+ * Determine if the path is a CD-ROM path. Typically on Linux systems this
+ * is either /dev/cdrom or /dev/sr0, so those are easy checks. Still if
+ * someone is trying to be tricky, we can resolve the link to /dev/cdrom
+ * and compare it to the resolved link of the supplied @path to compare
+ * if they're the same.
+ *
+ * Returns true if the path is a CDROM, false otherwise.
+ */
+bool
+virFileIsCDROM(const char *path)
+{
+ bool ret = false;
+ char *linkpath = NULL;
+ char *cdrompath = NULL;
+
+ if (STREQ(path, "/dev/cdrom") || STREQ(path, "/dev/sr0"))
+ return true;
+
+ if (virFileResolveLink(path, &linkpath) < 0 ||
+ virFileResolveLink("/dev/cdrom", &cdrompath) < 0)
+ goto cleanup;
+
+ ret = STREQ(linkpath, cdrompath);
+
+ cleanup:
+ VIR_FREE(linkpath);
+ VIR_FREE(cdrompath);
+ return ret;
+}
+
+#else /* __linux__ */
+
+bool
+virFileIsCDROM(const char *path)
+{
+ /* XXX implement me :-) */
+ virReportUnsupportedError();
+ return false;
+}
+
+#endif /* __linux__ */
diff --git a/src/util/virfile.h b/src/util/virfile.h
index 57ceb80..21caabf 100644
--- a/src/util/virfile.h
+++ b/src/util/virfile.h
@@ -352,4 +352,8 @@ int virFileInData(int fd,
int *inData,
long long *length);
+bool
+virFileIsCDROM(const char *path)
+ ATTRIBUTE_NONNULL(1);
+
#endif /* __VIR_FILE_H */
--
2.9.5
2
3
Hi,
At least on RHEL 7 / libvirt-3.2 for domainListGetStats we only have the
following in libvirt.py:
# virDomainStatsTypes
VIR_DOMAIN_STATS_STATE = 1
VIR_DOMAIN_STATS_CPU_TOTAL = 2
VIR_DOMAIN_STATS_BALLOON = 4
VIR_DOMAIN_STATS_VCPU = 8
VIR_DOMAIN_STATS_INTERFACE = 16
VIR_DOMAIN_STATS_BLOCK = 32
VIR_DOMAIN_STATS_PERF = 64
Is there a reason memory statistics is not included here? Would it be
possible to allow querying memory statistics over domainListGetStats as
well in one operation? Currently <nr-of-domains> calls from Python are
needed to fetch memory statistics for all guests which may be a bit
costly in larger environments.
Thanks,
--
Marko Myllynen
2
2
06 Sep '17
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
Pushed as trivial
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 6e5242d..f33ff1a 100755
--- a/setup.py
+++ b/setup.py
@@ -334,7 +334,7 @@ class my_clean(clean):
_c_modules, _py_modules = get_module_lists()
setup(name = 'libvirt-python',
- version = '3.7.0',
+ version = '3.8.0',
url = 'http://www.libvirt.org',
maintainer = 'Libvirt Maintainers',
maintainer_email = 'libvir-list(a)redhat.com',
--
2.13.5
1
0
https://bugzilla.redhat.com/show_bug.cgi?id=1439991
Whenever a device is being updated via
virDomainUpdateDeviceFlags() API, we parse the device XML and
ideally run some generic checks to validate the configuration
(e.g. if device defines per-device boot order but the domain has
os/boot element already). Well, that's the theory - due to a
missing check we've jumped early from that check function.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/conf/domain_conf.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f7574d77b..0064a71f5 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -26026,7 +26026,8 @@ virDomainDefCompatibleDevice(virDomainDefPtr def,
{
virDomainDeviceInfoPtr info = virDomainDeviceGetInfo(dev);
- if (action != VIR_DOMAIN_DEVICE_ACTION_ATTACH)
+ if (action != VIR_DOMAIN_DEVICE_ACTION_ATTACH &&
+ action != VIR_DOMAIN_DEVICE_ACTION_UPDATE)
return 0;
if (!virDomainDefHasUSB(def) &&
--
2.13.5
2
2
After b4f7793ce269, qemuxml2xmltest has apparently become big enough
to trigger a compilation error on aarch64:
CC qemuxml2xmltest.o
qemuxml2xmltest.c: In function 'mymain':
qemuxml2xmltest.c:1216:1: error: const/copy propagation disabled: 4361 basic blocks and 99285 registers [-Werror=disabled-optimization]
}
^
qemuxml2xmltest.c:1216:1: error: PRE disabled: 4361 basic blocks and 99285 registers [-Werror=disabled-optimization]
qemuxml2xmltest.c:1216:1: error: const/copy propagation disabled: 4361 basic blocks and 99285 registers [-Werror=disabled-optimization]
qemuxml2xmltest.c:1216:1: error: const/copy propagation disabled: 4361 basic blocks and 99285 registers [-Werror=disabled-optimization]
However, as the GCC documentation states, this warning is not really
caused by issues in our code, so it makes sense to disable it.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
m4/virt-compile-warnings.m4 | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index e8f135126..f18a08a8f 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -64,6 +64,11 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
# Several conditionals expand the same on both branches
# depending on the particular platform/architecture
dontwarn="$dontwarn -Wduplicated-branches"
+ # > This warning does not generally indicate that there is anything wrong
+ # > with your code; it merely indicates that GCC's optimizers are unable
+ # > to handle the code effectively.
+ # Source: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
+ dontwarn="$dontwarn -Wdisabled-optimization"
# gcc 4.2 treats attribute(format) as an implicit attribute(nonnull),
# which triggers spurious warnings for our usage
--
2.13.5
2
1
[libvirt] [PATCH v3] qemu: Add QEMU 2.10 x86_64 the generated capabilities
by John Ferlan 05 Sep '17
by John Ferlan 05 Sep '17
05 Sep '17
For reference, these were generated by updating a local qemu git
repository to the latest upstream, making sure the latest dependencies
were met via "dnf builddep qemu" from my sufficiently privileged root
account, checking out the v2.10.0 tag, and building in order to generate
an "x86_64-softmmu/qemu-system-x86_64" image.
Then using a clean libvirt tree updated to master and built, the image
was then provided as input:
tests/qemucapsprobe /path/to/x86_64-softmmu/qemu-system-x86_64 > \
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
With the .replies file in place and the DO_TEST line added and build,
then running the following commands:
touch tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
VIR_TEST_REGENERATE_OUTPUT=1 ./tests/qemucapabilitiestest
to generate tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml and both
were added to the commit.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
v2: https://www.redhat.com/archives/libvir-list/2017-August/msg01061.html
Differences:
* Updated my environment as discussed in v2
* Updated the commit message to describe that
* Remove the comment from tests/qemucapabilitiestest.c
.../caps_2.10.0.x86_64.replies | 18144 +++++++++++++++++++
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 798 +
tests/qemucapabilitiestest.c | 1 +
3 files changed, 18943 insertions(+)
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
new file mode 100644
index 0000000..5ddaa03
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
@@ -0,0 +1,18144 @@
+{
+ "QMP": {
+ "version": {
+ "qemu": {
+ "micro": 0,
+ "minor": 10,
+ "major": 2
+ },
+ "package": " (v2.10.0)"
+ },
+ "capabilities": [
+ ]
+ }
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": {
+ "qemu": {
+ "micro": 0,
+ "minor": 10,
+ "major": 2
+ },
+ "package": " (v2.10.0)"
+ },
+ "id": "libvirt-2"
+}
+
+{
+ "return": {
+ "arch": "x86_64"
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": [
+ {
+ "name": "netdev_add"
+ },
+ {
+ "name": "device_add"
+ },
+ {
+ "name": "query-qmp-schema"
+ },
+ {
+ "name": "xen-set-replication"
+ },
+ {
+ "name": "xen-set-global-dirty-log"
+ },
+ {
+ "name": "xen-save-devices-state"
+ },
+ {
+ "name": "xen-load-devices-state"
+ },
+ {
+ "name": "xen-colo-do-checkpoint"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256"
+ },
+ {
+ "name": "x-colo-lost-heartbeat"
+ },
+ {
+ "name": "x-blockdev-remove-medium"
+ },
+ {
+ "name": "x-blockdev-insert-medium"
+ },
+ {
+ "name": "x-blockdev-change"
+ },
+ {
+ "name": "transaction"
+ },
+ {
+ "name": "trace-event-set-state"
+ },
+ {
+ "name": "trace-event-get-state"
+ },
+ {
+ "name": "system_wakeup"
+ },
+ {
+ "name": "system_reset"
+ },
+ {
+ "name": "system_powerdown"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "set_password"
+ },
+ {
+ "name": "set_link"
+ },
+ {
+ "name": "send-key"
+ },
+ {
+ "name": "screendump"
+ },
+ {
+ "name": "rtc-reset-reinjection"
+ },
+ {
+ "name": "ringbuf-write"
+ },
+ {
+ "name": "ringbuf-read"
+ },
+ {
+ "name": "remove-fd"
+ },
+ {
+ "name": "quit"
+ },
+ {
+ "name": "query-xen-replication-status"
+ },
+ {
+ "name": "query-vnc-servers"
+ },
+ {
+ "name": "query-vnc"
+ },
+ {
+ "name": "query-vm-generation-id"
+ },
+ {
+ "name": "query-version"
+ },
+ {
+ "name": "query-uuid"
+ },
+ {
+ "name": "query-tpm-types"
+ },
+ {
+ "name": "query-tpm-models"
+ },
+ {
+ "name": "query-tpm"
+ },
+ {
+ "name": "query-target"
+ },
+ {
+ "name": "query-status"
+ },
+ {
+ "name": "query-spice"
+ },
+ {
+ "name": "query-rx-filter"
+ },
+ {
+ "name": "query-rocker-ports"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows"
+ },
+ {
+ "name": "query-rocker"
+ },
+ {
+ "name": "query-pci"
+ },
+ {
+ "name": "query-named-block-nodes"
+ },
+ {
+ "name": "query-name"
+ },
+ {
+ "name": "query-migrate-parameters"
+ },
+ {
+ "name": "query-migrate-capabilities"
+ },
+ {
+ "name": "query-migrate-cache-size"
+ },
+ {
+ "name": "query-migrate"
+ },
+ {
+ "name": "query-mice"
+ },
+ {
+ "name": "query-memory-devices"
+ },
+ {
+ "name": "query-memdev"
+ },
+ {
+ "name": "query-machines"
+ },
+ {
+ "name": "query-kvm"
+ },
+ {
+ "name": "query-iothreads"
+ },
+ {
+ "name": "query-hotpluggable-cpus"
+ },
+ {
+ "name": "query-fdsets"
+ },
+ {
+ "name": "query-events"
+ },
+ {
+ "name": "query-dump-guest-memory-capability"
+ },
+ {
+ "name": "query-dump"
+ },
+ {
+ "name": "query-cpus"
+ },
+ {
+ "name": "query-cpu-model-expansion"
+ },
+ {
+ "name": "query-cpu-definitions"
+ },
+ {
+ "name": "query-commands"
+ },
+ {
+ "name": "query-command-line-options"
+ },
+ {
+ "name": "query-chardev-backends"
+ },
+ {
+ "name": "query-chardev"
+ },
+ {
+ "name": "query-blockstats"
+ },
+ {
+ "name": "query-block-jobs"
+ },
+ {
+ "name": "query-block"
+ },
+ {
+ "name": "query-balloon"
+ },
+ {
+ "name": "query-acpi-ospm-status"
+ },
+ {
+ "name": "qom-set"
+ },
+ {
+ "name": "qom-list-types"
+ },
+ {
+ "name": "qom-list"
+ },
+ {
+ "name": "qom-get"
+ },
+ {
+ "name": "qmp_capabilities"
+ },
+ {
+ "name": "pmemsave"
+ },
+ {
+ "name": "object-del"
+ },
+ {
+ "name": "object-add"
+ },
+ {
+ "name": "netdev_del"
+ },
+ {
+ "name": "nbd-server-stop"
+ },
+ {
+ "name": "nbd-server-start"
+ },
+ {
+ "name": "nbd-server-add"
+ },
+ {
+ "name": "migrate_set_speed"
+ },
+ {
+ "name": "migrate_set_downtime"
+ },
+ {
+ "name": "migrate_cancel"
+ },
+ {
+ "name": "migrate-start-postcopy"
+ },
+ {
+ "name": "migrate-set-parameters"
+ },
+ {
+ "name": "migrate-set-capabilities"
+ },
+ {
+ "name": "migrate-set-cache-size"
+ },
+ {
+ "name": "migrate-incoming"
+ },
+ {
+ "name": "migrate"
+ },
+ {
+ "name": "memsave"
+ },
+ {
+ "name": "input-send-event"
+ },
+ {
+ "name": "inject-nmi"
+ },
+ {
+ "name": "human-monitor-command"
+ },
+ {
+ "name": "getfd"
+ },
+ {
+ "name": "expire_password"
+ },
+ {
+ "name": "eject"
+ },
+ {
+ "name": "dump-guest-memory"
+ },
+ {
+ "name": "drive-mirror"
+ },
+ {
+ "name": "drive-backup"
+ },
+ {
+ "name": "device_del"
+ },
+ {
+ "name": "device-list-properties"
+ },
+ {
+ "name": "cpu-add"
+ },
+ {
+ "name": "cpu"
+ },
+ {
+ "name": "cont"
+ },
+ {
+ "name": "closefd"
+ },
+ {
+ "name": "client_migrate_info"
+ },
+ {
+ "name": "chardev-send-break"
+ },
+ {
+ "name": "chardev-remove"
+ },
+ {
+ "name": "chardev-change"
+ },
+ {
+ "name": "chardev-add"
+ },
+ {
+ "name": "change-vnc-password"
+ },
+ {
+ "name": "change-backing-file"
+ },
+ {
+ "name": "change"
+ },
+ {
+ "name": "blockdev-snapshot-sync"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot"
+ },
+ {
+ "name": "blockdev-open-tray"
+ },
+ {
+ "name": "blockdev-mirror"
+ },
+ {
+ "name": "blockdev-del"
+ },
+ {
+ "name": "blockdev-close-tray"
+ },
+ {
+ "name": "blockdev-change-medium"
+ },
+ {
+ "name": "blockdev-backup"
+ },
+ {
+ "name": "blockdev-add"
+ },
+ {
+ "name": "block_set_io_throttle"
+ },
+ {
+ "name": "block_resize"
+ },
+ {
+ "name": "block_passwd"
+ },
+ {
+ "name": "block-stream"
+ },
+ {
+ "name": "block-set-write-threshold"
+ },
+ {
+ "name": "block-job-set-speed"
+ },
+ {
+ "name": "block-job-resume"
+ },
+ {
+ "name": "block-job-pause"
+ },
+ {
+ "name": "block-job-complete"
+ },
+ {
+ "name": "block-job-cancel"
+ },
+ {
+ "name": "block-dirty-bitmap-remove"
+ },
+ {
+ "name": "block-dirty-bitmap-clear"
+ },
+ {
+ "name": "block-dirty-bitmap-add"
+ },
+ {
+ "name": "block-commit"
+ },
+ {
+ "name": "balloon"
+ },
+ {
+ "name": "add_client"
+ },
+ {
+ "name": "add-fd"
+ }
+ ],
+ "id": "libvirt-4"
+}
+
+{
+ "return": {
+ "fd": 15,
+ "fdset-id": 0
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "id": "libvirt-6",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'bogus' not found"
+ }
+}
+
+{
+ "return": {
+ "enabled": true,
+ "present": true
+ },
+ "id": "libvirt-7"
+}
+
+{
+ "return": [
+ {
+ "name": "WATCHDOG"
+ },
+ {
+ "name": "WAKEUP"
+ },
+ {
+ "name": "VSERPORT_CHANGE"
+ },
+ {
+ "name": "VNC_INITIALIZED"
+ },
+ {
+ "name": "VNC_DISCONNECTED"
+ },
+ {
+ "name": "VNC_CONNECTED"
+ },
+ {
+ "name": "SUSPEND_DISK"
+ },
+ {
+ "name": "SUSPEND"
+ },
+ {
+ "name": "STOP"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED"
+ },
+ {
+ "name": "SPICE_INITIALIZED"
+ },
+ {
+ "name": "SPICE_DISCONNECTED"
+ },
+ {
+ "name": "SPICE_CONNECTED"
+ },
+ {
+ "name": "SHUTDOWN"
+ },
+ {
+ "name": "RTC_CHANGE"
+ },
+ {
+ "name": "RESUME"
+ },
+ {
+ "name": "RESET"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD"
+ },
+ {
+ "name": "QUORUM_FAILURE"
+ },
+ {
+ "name": "POWERDOWN"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED"
+ },
+ {
+ "name": "MIGRATION_PASS"
+ },
+ {
+ "name": "MIGRATION"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR"
+ },
+ {
+ "name": "GUEST_PANICKED"
+ },
+ {
+ "name": "DUMP_COMPLETED"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED"
+ },
+ {
+ "name": "DEVICE_DELETED"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD"
+ },
+ {
+ "name": "BLOCK_JOB_READY"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED"
+ },
+ {
+ "name": "BLOCK_IO_ERROR"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED"
+ },
+ {
+ "name": "BALLOON_CHANGE"
+ },
+ {
+ "name": "ACPI_DEVICE_OST"
+ }
+ ],
+ "id": "libvirt-8"
+}
+
+{
+ "return": [
+ {
+ "name": "vhost-vsock-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "xen-sysdev",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pc-q35-2.10-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "generic-sdhci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pc-0.13-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "cfi.pflash01",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "i82551",
+ "parent": "pci-device"
+ },
+ {
+ "name": "i82550",
+ "parent": "pci-device"
+ },
+ {
+ "name": "Westmere-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pci-serial-4x",
+ "parent": "pci-device"
+ },
+ {
+ "name": "cryptodev-backend",
+ "parent": "object"
+ },
+ {
+ "name": "Penryn-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "Haswell-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "iothread",
+ "parent": "object"
+ },
+ {
+ "name": "pc-i440fx-2.9-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "Skylake-Client-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-gpu-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "Opteron_G3-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "floppy-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "e1000e",
+ "parent": "pci-device"
+ },
+ {
+ "name": "Broadwell-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "piix3-ide",
+ "parent": "pci-ide"
+ },
+ {
+ "name": "secret",
+ "parent": "object"
+ },
+ {
+ "name": "amd-iommu-iommu-memory-region",
+ "parent": "qemu:iommu-memory-region"
+ },
+ {
+ "name": "base-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "isa-parallel",
+ "parent": "isa-device"
+ },
+ {
+ "name": "megasas",
+ "parent": "megasas-base"
+ },
+ {
+ "name": "i2c-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "pc-q35-2.4-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "vhost-vsock-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "usb-braille",
+ "parent": "usb-serial-dev"
+ },
+ {
+ "name": "mptsas1068",
+ "parent": "pci-device"
+ },
+ {
+ "name": "vmware-svga",
+ "parent": "pci-device"
+ },
+ {
+ "name": "qio-channel-tls",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "filter-buffer",
+ "parent": "netfilter"
+ },
+ {
+ "name": "PIIX3-xen",
+ "parent": "pci-piix3"
+ },
+ {
+ "name": "ccid-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "scsi-cd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "pc-i440fx-2.0-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "isa-serial",
+ "parent": "isa-device"
+ },
+ {
+ "name": "usb-ehci",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "container",
+ "parent": "object"
+ },
+ {
+ "name": "qio-channel-rdma",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "chardev-null",
+ "parent": "chardev"
+ },
+ {
+ "name": "host-x86_64-cpu",
+ "parent": "max-x86_64-cpu"
+ },
+ {
+ "name": "qemu64-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pci-serial-2x",
+ "parent": "pci-device"
+ },
+ {
+ "name": "piix4-ide",
+ "parent": "pci-ide"
+ },
+ {
+ "name": "scsi-generic",
+ "parent": "scsi-device"
+ },
+ {
+ "name": "isa-ipmi-bt",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-1.0-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "virtio-net-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "hyperv-testdev",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-dimm",
+ "parent": "device"
+ },
+ {
+ "name": "pc-q35-2.8-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "Haswell-noTSX-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pc-i440fx-2.1-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "virtio-mouse-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "virtio-mouse-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "isa-debugcon",
+ "parent": "isa-device"
+ },
+ {
+ "name": "intel-iommu-iommu-memory-region",
+ "parent": "qemu:iommu-memory-region"
+ },
+ {
+ "name": "AMDVI-PCI",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ide-hd",
+ "parent": "ide-device"
+ },
+ {
+ "name": "virtio-vga",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "rng-egd",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "isa-pcspk",
+ "parent": "isa-device"
+ },
+ {
+ "name": "isa-pit",
+ "parent": "pit-common"
+ },
+ {
+ "name": "pc-1.1-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "ich9-usb-ehci2",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "ich9-usb-ehci1",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "pxb-host",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "pc-q35-2.9-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "intel-iommu",
+ "parent": "x86-iommu"
+ },
+ {
+ "name": "irq",
+ "parent": "object"
+ },
+ {
+ "name": "qio-dns-resolver",
+ "parent": "object"
+ },
+ {
+ "name": "ipmi-bmc-sim",
+ "parent": "ipmi-bmc"
+ },
+ {
+ "name": "cirrus-vga",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtconsole",
+ "parent": "virtserialport"
+ },
+ {
+ "name": "chardev-serial",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "virtio-rng-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "PCIE",
+ "parent": "PCI"
+ },
+ {
+ "name": "qio-channel-buffer",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "chardev-pty",
+ "parent": "chardev"
+ },
+ {
+ "name": "qio-channel-file",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "pentium3-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "qxl-vga",
+ "parent": "pci-qxl"
+ },
+ {
+ "name": "xen-sysbus",
+ "parent": "bus"
+ },
+ {
+ "name": "ioapic",
+ "parent": "ioapic-common"
+ },
+ {
+ "name": "kvm-pit",
+ "parent": "pit-common"
+ },
+ {
+ "name": "chardev-memory",
+ "parent": "chardev-ringbuf"
+ },
+ {
+ "name": "pc-i440fx-2.5-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "filter-rewriter",
+ "parent": "netfilter"
+ },
+ {
+ "name": "pcie-root-port",
+ "parent": "pcie-root-port-base"
+ },
+ {
+ "name": "vhost-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "usb-kbd",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "usb-host",
+ "parent": "usb-device"
+ },
+ {
+ "name": "xen-apic",
+ "parent": "apic-common"
+ },
+ {
+ "name": "usb-ccid",
+ "parent": "usb-device"
+ },
+ {
+ "name": "usb-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "Skylake-Server-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pc-i440fx-1.4-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "PIIX3",
+ "parent": "pci-piix3"
+ },
+ {
+ "name": "486-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "ES1370",
+ "parent": "pci-device"
+ },
+ {
+ "name": "gus",
+ "parent": "isa-device"
+ },
+ {
+ "name": "kvm-pci-assign",
+ "parent": "pci-device"
+ },
+ {
+ "name": "isa-applesmc",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-i440fx-2.6-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "xen-pci-passthrough",
+ "parent": "pci-device"
+ },
+ {
+ "name": "i82559er",
+ "parent": "pci-device"
+ },
+ {
+ "name": "q35-pcihost",
+ "parent": "pcie-host-bridge"
+ },
+ {
+ "name": "usb-bt-dongle",
+ "parent": "usb-device"
+ },
+ {
+ "name": "e1000-82545em",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "e1000-82544gc",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "i6300esb",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pc-i440fx-1.5-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "tls-creds-x509",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "or-irq",
+ "parent": "device"
+ },
+ {
+ "name": "pc-0.14-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "mc146818rtc",
+ "parent": "isa-device"
+ },
+ {
+ "name": "AC97",
+ "parent": "pci-device"
+ },
+ {
+ "name": "PIIX4_PM",
+ "parent": "pci-device"
+ },
+ {
+ "name": "piix4-usb-uhci",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "sysbus-ahci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-tablet-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "filter-redirector",
+ "parent": "netfilter"
+ },
+ {
+ "name": "kvm-ioapic",
+ "parent": "ioapic-common"
+ },
+ {
+ "name": "chardev-pipe",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "unimplemented-device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pvpanic",
+ "parent": "isa-device"
+ },
+ {
+ "name": "core2duo-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "qio-channel-command",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "virtio-9p-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "scsi-disk",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "vfio-pci-igd-lpc-bridge",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-ringbuf",
+ "parent": "chardev"
+ },
+ {
+ "name": "sb16",
+ "parent": "isa-device"
+ },
+ {
+ "name": "chardev-socket",
+ "parent": "chardev"
+ },
+ {
+ "name": "qemu-console",
+ "parent": "object"
+ },
+ {
+ "name": "pc-0.15-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "filter-replay",
+ "parent": "netfilter"
+ },
+ {
+ "name": "usb-mouse",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "virtio-blk-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "xenfv-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "filter-dump",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virtio-keyboard-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "chardev-stdio",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "piix3-usb-uhci",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "virtio-scsi-device",
+ "parent": "virtio-scsi-common"
+ },
+ {
+ "name": "tpci200",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-file",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "virtio-9p-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "pc-q35-2.5-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "SUNW,fdtwo",
+ "parent": "base-sysbus-fdc"
+ },
+ {
+ "name": "hda-output",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "i8257",
+ "parent": "isa-device"
+ },
+ {
+ "name": "filter-mirror",
+ "parent": "netfilter"
+ },
+ {
+ "name": "Opteron_G4-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-mmio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-user-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "isa-i8259",
+ "parent": "pic-common"
+ },
+ {
+ "name": "System",
+ "parent": "bus"
+ },
+ {
+ "name": "pvscsi",
+ "parent": "pci-device"
+ },
+ {
+ "name": "amd-iommu",
+ "parent": "x86-iommu"
+ },
+ {
+ "name": "virtio-net-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "input-linux",
+ "parent": "object"
+ },
+ {
+ "name": "colo-compare",
+ "parent": "object"
+ },
+ {
+ "name": "sd-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "xen-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "usb-hub",
+ "parent": "usb-device"
+ },
+ {
+ "name": "chardev-testdev",
+ "parent": "chardev"
+ },
+ {
+ "name": "IvyBridge-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "hda-duplex",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "igd-passthrough-i440FX",
+ "parent": "i440FX"
+ },
+ {
+ "name": "ccid-card-passthru",
+ "parent": "ccid-card"
+ },
+ {
+ "name": "chardev-hci",
+ "parent": "chardev"
+ },
+ {
+ "name": "igd-passthrough-isa-bridge",
+ "parent": "pci-device"
+ },
+ {
+ "name": "rocker",
+ "parent": "pci-device"
+ },
+ {
+ "name": "nec-usb-xhci",
+ "parent": "base-xhci"
+ },
+ {
+ "name": "megasas-gen2",
+ "parent": "megasas-base"
+ },
+ {
+ "name": "pci-ohci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ib700",
+ "parent": "isa-device"
+ },
+ {
+ "name": "xio3130-downstream",
+ "parent": "pcie-slot"
+ },
+ {
+ "name": "chardev-vc",
+ "parent": "chardev"
+ },
+ {
+ "name": "isapc-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "ipoctal232",
+ "parent": "ipack-device"
+ },
+ {
+ "name": "ide-cd",
+ "parent": "ide-device"
+ },
+ {
+ "name": "tls-creds-anon",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "pc-i440fx-2.2-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "isabus-bridge",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "isa-ipmi-kcs",
+ "parent": "isa-device"
+ },
+ {
+ "name": "memory-backend-file",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "virtio-crypto-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "qemu:memory-region",
+ "parent": "object"
+ },
+ {
+ "name": "isa-vga",
+ "parent": "isa-device"
+ },
+ {
+ "name": "isa-ide",
+ "parent": "isa-device"
+ },
+ {
+ "name": "virtio-keyboard-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "ipmi-bmc-extern",
+ "parent": "ipmi-bmc"
+ },
+ {
+ "name": "rng-random",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "kvm-i8259",
+ "parent": "pic-common"
+ },
+ {
+ "name": "i440FX-pcihost",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "sga",
+ "parent": "isa-device"
+ },
+ {
+ "name": "tpm-tis",
+ "parent": "isa-device"
+ },
+ {
+ "name": "tpm-passthrough",
+ "parent": "tpm-backend"
+ },
+ {
+ "name": "pc-1.2-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "isa-debug-exit",
+ "parent": "isa-device"
+ },
+ {
+ "name": "Opteron_G1-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pc-testdev",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-0.10-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "pc-i440fx-2.3-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "xen-pvdevice",
+ "parent": "pci-device"
+ },
+ {
+ "name": "qemu32-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pcnet",
+ "parent": "pci-device"
+ },
+ {
+ "name": "apic",
+ "parent": "apic-common"
+ },
+ {
+ "name": "ivshmem",
+ "parent": "ivshmem-common"
+ },
+ {
+ "name": "ich9-usb-uhci2",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "hpet",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "adlib",
+ "parent": "isa-device"
+ },
+ {
+ "name": "chardev-gdb",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-pci-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "vhost-user-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "lsi53c895a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "usb-audio",
+ "parent": "usb-device"
+ },
+ {
+ "name": "chardev-udp",
+ "parent": "chardev"
+ },
+ {
+ "name": "chardev-mux",
+ "parent": "chardev"
+ },
+ {
+ "name": "pxb-bus",
+ "parent": "PCI"
+ },
+ {
+ "name": "dc390",
+ "parent": "am53c974"
+ },
+ {
+ "name": "usb-wacom-tablet",
+ "parent": "usb-device"
+ },
+ {
+ "name": "virtio-mmio-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "pc-0.11-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "kvm-apic",
+ "parent": "apic-common"
+ },
+ {
+ "name": "phenom-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "fw_cfg_io",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "usb-net",
+ "parent": "usb-device"
+ },
+ {
+ "name": "ioh3420",
+ "parent": "pcie-root-port-base"
+ },
+ {
+ "name": "virtio-crypto-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "cs4231a",
+ "parent": "isa-device"
+ },
+ {
+ "name": "chardev-braille",
+ "parent": "chardev"
+ },
+ {
+ "name": "nvme",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-wctablet",
+ "parent": "chardev"
+ },
+ {
+ "name": "i82801b11-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "kvmvapic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "usb-tablet",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "pc-i440fx-2.10-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "sdhci-bus",
+ "parent": "sd-bus"
+ },
+ {
+ "name": "pci-bridge-seat",
+ "parent": "pci-bridge"
+ },
+ {
+ "name": "mch",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pc-i440fx-2.7-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "vhost-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "virtio-balloon-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "tcg-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "usb-bot",
+ "parent": "usb-storage-dev"
+ },
+ {
+ "name": "mmio_interface",
+ "parent": "device"
+ },
+ {
+ "name": "esp",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ICH9-LPC",
+ "parent": "pci-device"
+ },
+ {
+ "name": "edu",
+ "parent": "pci-device"
+ },
+ {
+ "name": "accel",
+ "parent": "object"
+ },
+ {
+ "name": "isa-cirrus-vga",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pxb-pcie-bus",
+ "parent": "PCIE"
+ },
+ {
+ "name": "pc-i440fx-1.6-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "lsi53c810",
+ "parent": "lsi53c895a"
+ },
+ {
+ "name": "kvmclock",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "loader",
+ "parent": "device"
+ },
+ {
+ "name": "migration",
+ "parent": "device"
+ },
+ {
+ "name": "pc-i440fx-2.8-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "ich9-usb-uhci4",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "virtio-serial-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "nvdimm",
+ "parent": "pc-dimm"
+ },
+ {
+ "name": "x3130-upstream",
+ "parent": "pcie-port"
+ },
+ {
+ "name": "ich9-usb-uhci6",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "SandyBridge-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "chardev-spiceport",
+ "parent": "chardev-spice"
+ },
+ {
+ "name": "virtio-balloon-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "qxl",
+ "parent": "pci-qxl"
+ },
+ {
+ "name": "chardev-spicevmc",
+ "parent": "chardev-spice"
+ },
+ {
+ "name": "intel-hda",
+ "parent": "intel-hda-generic"
+ },
+ {
+ "name": "pc-i440fx-1.7-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "max-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-serial-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "ich9-usb-uhci3",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "ICH9 SMB",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ich9-usb-uhci5",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "pxb-pcie",
+ "parent": "pci-device"
+ },
+ {
+ "name": "piix3-ide-xen",
+ "parent": "pci-ide"
+ },
+ {
+ "name": "virtio-input-host-device",
+ "parent": "virtio-input-device"
+ },
+ {
+ "name": "vmxnet3",
+ "parent": "pci-device"
+ },
+ {
+ "name": "IDE",
+ "parent": "bus"
+ },
+ {
+ "name": "VGA",
+ "parent": "pci-vga"
+ },
+ {
+ "name": "pci-testdev",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ich9-usb-uhci1",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "xenpv-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "pci-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "SCSI",
+ "parent": "bus"
+ },
+ {
+ "name": "none-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "sysbus-fdc",
+ "parent": "base-sysbus-fdc"
+ },
+ {
+ "name": "allwinner-ahci",
+ "parent": "sysbus-ahci"
+ },
+ {
+ "name": "n270-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pci-serial",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pc-q35-2.6-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "athlon-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-rng-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "ccid-card-emulated",
+ "parent": "ccid-card"
+ },
+ {
+ "name": "am53c974",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ISA",
+ "parent": "bus"
+ },
+ {
+ "name": "i8042",
+ "parent": "isa-device"
+ },
+ {
+ "name": "kvm-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "i82559c",
+ "parent": "pci-device"
+ },
+ {
+ "name": "floppy",
+ "parent": "device"
+ },
+ {
+ "name": "i82559b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "i82559a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "scsi-hd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "qtest-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "virtio-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "hda-micro",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "scsi-block",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "ich9-intel-hda",
+ "parent": "intel-hda-generic"
+ },
+ {
+ "name": "rtl8139",
+ "parent": "pci-device"
+ },
+ {
+ "name": "vmmouse",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-q35-2.7-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "usb-mtp",
+ "parent": "usb-device"
+ },
+ {
+ "name": "ide-drive",
+ "parent": "ide-device"
+ },
+ {
+ "name": "qio-channel-websock",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "fw_cfg_mem",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "PCI",
+ "parent": "bus"
+ },
+ {
+ "name": "Opteron_G5-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "vmport",
+ "parent": "isa-device"
+ },
+ {
+ "name": "coreduo-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "xen-backend",
+ "parent": "xen-sysdev"
+ },
+ {
+ "name": "usb-redir",
+ "parent": "usb-device"
+ },
+ {
+ "name": "virtio-serial-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "xen-platform",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtio-input-host-pci",
+ "parent": "virtio-input-pci"
+ },
+ {
+ "name": "pentium2-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "i82558b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "cryptodev-backend-builtin",
+ "parent": "cryptodev-backend"
+ },
+ {
+ "name": "i82558a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "qemu,register",
+ "parent": "device"
+ },
+ {
+ "name": "ne2k_isa",
+ "parent": "isa-device"
+ },
+ {
+ "name": "sdhci-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-parallel",
+ "parent": "chardev"
+ },
+ {
+ "name": "qemu-xhci",
+ "parent": "base-xhci"
+ },
+ {
+ "name": "pxb",
+ "parent": "pci-device"
+ },
+ {
+ "name": "port92",
+ "parent": "isa-device"
+ },
+ {
+ "name": "e1000",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "Conroe-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "kvm64-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "usb-storage",
+ "parent": "usb-storage-dev"
+ },
+ {
+ "name": "vt82c686b-usb-uhci",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "HDA",
+ "parent": "bus"
+ },
+ {
+ "name": "vmgenid",
+ "parent": "device"
+ },
+ {
+ "name": "pc-1.3-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "usb-serial",
+ "parent": "usb-serial-dev"
+ },
+ {
+ "name": "i82801",
+ "parent": "pci-device"
+ },
+ {
+ "name": "sysbus-ohci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "chardev-msmouse",
+ "parent": "chardev"
+ },
+ {
+ "name": "pc-i440fx-2.4-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "i82557b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "usb-uas",
+ "parent": "usb-device"
+ },
+ {
+ "name": "Broadwell-noTSX-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "i82557c",
+ "parent": "pci-device"
+ },
+ {
+ "name": "Nehalem-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "memory-backend-ram",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "i82557a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtserialport",
+ "parent": "virtio-serial-port"
+ },
+ {
+ "name": "i440FX",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ne2k_pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "smbus-eeprom",
+ "parent": "smbus-device"
+ },
+ {
+ "name": "i82562",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ich9-ahci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "isa-fdc",
+ "parent": "isa-device"
+ },
+ {
+ "name": "sd-card",
+ "parent": "device"
+ },
+ {
+ "name": "pc-0.12-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "kvm32-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "Opteron_G2-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "vfio-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "IndustryPack",
+ "parent": "bus"
+ },
+ {
+ "name": "virtio-gpu-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "ivshmem-plain",
+ "parent": "ivshmem-common"
+ },
+ {
+ "name": "secondary-vga",
+ "parent": "pci-vga"
+ },
+ {
+ "name": "ivshmem-doorbell",
+ "parent": "ivshmem-common"
+ },
+ {
+ "name": "qio-channel-socket",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "pentium-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-blk-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "virtio-tablet-pci",
+ "parent": "virtio-input-hid-pci"
+ }
+ ],
+ "id": "libvirt-9"
+}
+
+{
+ "return": [
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-10"
+}
+
+{
+ "return": [
+ {
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "vlan",
+ "description": "Integer VLAN id to connect to",
+ "type": "int32"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_mtu",
+ "type": "uint16"
+ },
+ {
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rx_queue_size",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-11"
+}
+
+{
+ "return": [
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-12"
+}
+
+{
+ "id": "libvirt-13",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-14",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-15",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-scsi-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-16",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-17",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-18",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'pci-assign' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "share_intx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "description": "Address (bus/device/function) of the host device, example: 04:10.0",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "configfd",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "prefer_msi",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-19"
+}
+
+{
+ "return": [
+ {
+ "name": "x-pci-sub-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "x-no-kvm-msi",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-opregion",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-vga",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "x-req",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-gms",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-no-kvm-intx",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "host",
+ "description": "Address (bus/device/function) of the host device, example: 04:10.0",
+ "type": "str"
+ },
+ {
+ "name": "x-no-kvm-msix",
+ "type": "bool"
+ },
+ {
+ "name": "x-intx-mmap-timeout-ms",
+ "type": "uint32"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "x-pci-sub-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "sysfsdev",
+ "type": "str"
+ },
+ {
+ "name": "x-no-mmap",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-20"
+}
+
+{
+ "return": [
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "port_index",
+ "type": "uint16"
+ },
+ {
+ "name": "dpofua",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "max_unmap_size",
+ "type": "uint64"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "port_wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "product",
+ "type": "str"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "vendor",
+ "type": "str"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "removable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "max_io_size",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-21"
+}
+
+{
+ "return": [
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "unit",
+ "type": "uint32"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "model",
+ "type": "str"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-22"
+}
+
+{
+ "return": [
+ {
+ "name": "memory-hotplug-support",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "acpi-pci-hotplug-with-bridge-support",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "disable_s4",
+ "type": "uint8"
+ },
+ {
+ "name": "disable_s3",
+ "type": "uint8"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "s4_val",
+ "type": "uint8"
+ },
+ {
+ "name": "smb_io_base",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-23"
+}
+
+{
+ "return": [
+ {
+ "name": "filter",
+ "type": "str"
+ },
+ {
+ "name": "msos-desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "debug",
+ "type": "uint8"
+ },
+ {
+ "name": "streams",
+ "type": "bool"
+ },
+ {
+ "name": "chardev",
+ "description": "ID of a chardev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "full-path",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "attached",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-24"
+}
+
+{
+ "return": [
+ {
+ "name": "isobufs",
+ "type": "uint32"
+ },
+ {
+ "name": "hostaddr",
+ "type": "uint32"
+ },
+ {
+ "name": "msos-desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "productid",
+ "type": "uint32"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "isobsize",
+ "type": "uint32"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "vendorid",
+ "type": "uint32"
+ },
+ {
+ "name": "pipeline",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "attached",
+ "type": "bool"
+ },
+ {
+ "name": "hostport",
+ "type": "str"
+ },
+ {
+ "name": "full-path",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "loglevel",
+ "type": "uint32"
+ },
+ {
+ "name": "hostbus",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-25"
+}
+
+{
+ "return": [
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-26"
+}
+
+{
+ "return": [
+ {
+ "name": "short_root_bus",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-conf-idx[0]",
+ "type": "child<qemu:memory-region>"
+ },
+ {
+ "name": "pci-hole64-end",
+ "type": "uint64"
+ },
+ {
+ "name": "pci-hole-end",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-hole-start",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-hole64-start",
+ "type": "uint64"
+ },
+ {
+ "name": "pci-hole64-size",
+ "type": "size"
+ },
+ {
+ "name": "pci-conf-data[0]",
+ "type": "child<qemu:memory-region>"
+ }
+ ],
+ "id": "libvirt-27"
+}
+
+{
+ "return": [
+ {
+ "name": "short_root_bus",
+ "type": "uint32"
+ },
+ {
+ "name": "system-mem",
+ "type": "link<qemu:memory-region>"
+ },
+ {
+ "name": "pci-conf-idx[0]",
+ "type": "child<qemu:memory-region>"
+ },
+ {
+ "name": "pcie-mmcfg-mmio[0]",
+ "type": "child<qemu:memory-region>"
+ },
+ {
+ "name": "pci-hole64-start",
+ "type": "uint64"
+ },
+ {
+ "name": "io-mem",
+ "type": "link<qemu:memory-region>"
+ },
+ {
+ "name": "pci-hole64-end",
+ "type": "uint64"
+ },
+ {
+ "name": "pci-hole-end",
+ "type": "uint32"
+ },
+ {
+ "name": "above-4g-mem-size",
+ "type": "size"
+ },
+ {
+ "name": "below-4g-mem-size",
+ "type": "size"
+ },
+ {
+ "name": "ram-mem",
+ "type": "link<qemu:memory-region>"
+ },
+ {
+ "name": "pci-hole-start",
+ "type": "uint32"
+ },
+ {
+ "name": "MCFG",
+ "type": "uint64"
+ },
+ {
+ "name": "mch",
+ "type": "child<mch>"
+ },
+ {
+ "name": "pci-hole64-size",
+ "type": "size"
+ },
+ {
+ "name": "pci-mem",
+ "type": "link<qemu:memory-region>"
+ },
+ {
+ "name": "pci-conf-data[0]",
+ "type": "child<qemu:memory-region>"
+ },
+ {
+ "name": "mcfg_size",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-28"
+}
+
+{
+ "return": [
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "msos-desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "attached",
+ "type": "bool"
+ },
+ {
+ "name": "full-path",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "removable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-29"
+}
+
+{
+ "return": [
+ {
+ "name": "iobase",
+ "type": "uint32"
+ },
+ {
+ "name": "lost_tick_policy",
+ "type": "LostTickPolicy"
+ }
+ ],
+ "id": "libvirt-30"
+}
+
+{
+ "return": [
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mmio",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "qemu-extended-regs",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "big-endian-framebuffer",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-31"
+}
+
+{
+ "return": [
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-32"
+}
+
+{
+ "return": [
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "ram_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "debug",
+ "type": "uint32"
+ },
+ {
+ "name": "vram_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "revision",
+ "type": "uint32"
+ },
+ {
+ "name": "ram_size",
+ "type": "uint32"
+ },
+ {
+ "name": "vram64_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "guestdebug",
+ "type": "uint32"
+ },
+ {
+ "name": "vram_size",
+ "type": "uint64"
+ },
+ {
+ "name": "surfaces",
+ "type": "int32"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint16"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "cmdlog",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-33"
+}
+
+{
+ "return": [
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-gpu-device>"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "stats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virgl",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-34"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "stats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "virgl",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ }
+ ],
+ "id": "libvirt-35"
+}
+
+{
+ "return": [
+ {
+ "name": "memory-hotplug-support",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "sci_int",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gpe0_blk_len",
+ "type": "uint32"
+ },
+ {
+ "name": "pm_io_base",
+ "type": "uint32"
+ },
+ {
+ "name": "noreboot",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cpu-hotplug-legacy",
+ "type": "bool"
+ },
+ {
+ "name": "acpi_disable_cmd",
+ "type": "uint8"
+ },
+ {
+ "name": "x-smi-broadcast",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable_s3",
+ "type": "uint8"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "acpi_enable_cmd",
+ "type": "uint8"
+ },
+ {
+ "name": "s4_val",
+ "type": "uint8"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "enable_tco",
+ "type": "bool"
+ },
+ {
+ "name": "disable_s4",
+ "type": "uint8"
+ },
+ {
+ "name": "gpe0_blk",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-36"
+}
+
+{
+ "return": [
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-37"
+}
+
+{
+ "id": "libvirt-38",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-balloon-ccw' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-39"
+}
+
+{
+ "return": [
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "intrs",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "msix",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "msi",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "superspeed-ports-first",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "streams",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "force-pcie-endcap",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "p3",
+ "type": "uint32"
+ },
+ {
+ "name": "p2",
+ "type": "uint32"
+ },
+ {
+ "name": "slots",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-40"
+}
+
+{
+ "return": [
+ {
+ "name": "eim",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "caching-mode",
+ "type": "bool"
+ },
+ {
+ "name": "x-buggy-eim",
+ "type": "bool"
+ },
+ {
+ "name": "intremap",
+ "type": "bool"
+ },
+ {
+ "name": "version",
+ "type": "uint32"
+ },
+ {
+ "name": "pt",
+ "type": "bool"
+ },
+ {
+ "name": "device-iotlb",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-41"
+}
+
+{
+ "return": [
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.12",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.4",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-1.3",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.7",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.6",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "none",
+ "cpu-max": 1
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "xenpv",
+ "cpu-max": 1
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-1.7",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.8",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-1.6",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.7",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.10",
+ "is-default": true,
+ "cpu-max": 255,
+ "alias": "pc"
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.11",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.3",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.10",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-1.2",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.2",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "isapc",
+ "cpu-max": 1
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.5",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "xenfv",
+ "cpu-max": 128
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.15",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.14",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-1.5",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.6",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-1.4",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.5",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.9",
+ "cpu-max": 288
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-1.1",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.1",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.8",
+ "cpu-max": 288
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-1.0",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.0",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.4",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.9",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.13",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.10",
+ "cpu-max": 288,
+ "alias": "q35"
+ }
+ ],
+ "id": "libvirt-42"
+}
+
+{
+ "return": [
+ {
+ "name": "max",
+ "typename": "max-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "host",
+ "typename": "host-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "base",
+ "typename": "base-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu64",
+ "typename": "qemu64-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu32",
+ "typename": "qemu32-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "phenom",
+ "typename": "phenom-x86_64-cpu",
+ "unavailable-features": [
+ "mmxext",
+ "fxsr-opt",
+ "3dnowext",
+ "3dnow",
+ "sse4a",
+ "npt"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium3",
+ "typename": "pentium3-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium2",
+ "typename": "pentium2-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium",
+ "typename": "pentium-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "n270",
+ "typename": "n270-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "kvm64",
+ "typename": "kvm64-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "kvm32",
+ "typename": "kvm32-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "coreduo",
+ "typename": "coreduo-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "core2duo",
+ "typename": "core2duo-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "athlon",
+ "typename": "athlon-x86_64-cpu",
+ "unavailable-features": [
+ "mmxext",
+ "3dnowext",
+ "3dnow"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Westmere",
+ "typename": "Westmere-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Skylake-Server",
+ "typename": "Skylake-Server-x86_64-cpu",
+ "unavailable-features": [
+ "hle",
+ "rtm",
+ "mpx",
+ "avx512f",
+ "avx512dq",
+ "rdseed",
+ "adx",
+ "smap",
+ "clwb",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "3dnowprefetch",
+ "xsavec",
+ "xgetbv1",
+ "mpx",
+ "mpx",
+ "avx512f",
+ "avx512f",
+ "avx512f"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Skylake-Client",
+ "typename": "Skylake-Client-x86_64-cpu",
+ "unavailable-features": [
+ "hle",
+ "rtm",
+ "mpx",
+ "rdseed",
+ "adx",
+ "smap",
+ "3dnowprefetch",
+ "xsavec",
+ "xgetbv1",
+ "mpx",
+ "mpx"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "SandyBridge",
+ "typename": "SandyBridge-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Penryn",
+ "typename": "Penryn-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G5",
+ "typename": "Opteron_G5-x86_64-cpu",
+ "unavailable-features": [
+ "sse4a",
+ "misalignsse",
+ "3dnowprefetch",
+ "xop",
+ "fma4",
+ "tbm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G4",
+ "typename": "Opteron_G4-x86_64-cpu",
+ "unavailable-features": [
+ "sse4a",
+ "misalignsse",
+ "3dnowprefetch",
+ "xop",
+ "fma4"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G3",
+ "typename": "Opteron_G3-x86_64-cpu",
+ "unavailable-features": [
+ "sse4a",
+ "misalignsse"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G2",
+ "typename": "Opteron_G2-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G1",
+ "typename": "Opteron_G1-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Nehalem",
+ "typename": "Nehalem-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "IvyBridge",
+ "typename": "IvyBridge-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Haswell",
+ "typename": "Haswell-x86_64-cpu",
+ "unavailable-features": [
+ "hle",
+ "rtm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Haswell-noTSX",
+ "typename": "Haswell-noTSX-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Conroe",
+ "typename": "Conroe-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Broadwell",
+ "typename": "Broadwell-x86_64-cpu",
+ "unavailable-features": [
+ "hle",
+ "rtm",
+ "rdseed",
+ "adx",
+ "smap",
+ "3dnowprefetch"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Broadwell-noTSX",
+ "typename": "Broadwell-noTSX-x86_64-cpu",
+ "unavailable-features": [
+ "rdseed",
+ "adx",
+ "smap",
+ "3dnowprefetch"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "486",
+ "typename": "486-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-43"
+}
+
+{
+ "return": [
+ "tpm-tis"
+ ],
+ "id": "libvirt-44"
+}
+
+{
+ "return": [
+ "passthrough"
+ ],
+ "id": "libvirt-45"
+}
+
+{
+ "return": [
+ {
+ "parameters": [
+ {
+ "name": "timeout",
+ "help": "Request timeout in seconds (default 0 = no timeout)",
+ "type": "number"
+ },
+ {
+ "name": "initiator-name",
+ "help": "Initiator iqn name to use when connecting",
+ "type": "string"
+ },
+ {
+ "name": "header-digest",
+ "help": "HeaderDigest setting. {CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}",
+ "type": "string"
+ },
+ {
+ "name": "password-secret",
+ "help": "ID of the secret providing password for CHAP authentication to target",
+ "type": "string"
+ },
+ {
+ "name": "password",
+ "help": "password for CHAP authentication to target",
+ "type": "string"
+ },
+ {
+ "name": "user",
+ "help": "username for CHAP authentication to target",
+ "type": "string"
+ }
+ ],
+ "option": "iscsi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "non-adaptive",
+ "type": "boolean"
+ },
+ {
+ "name": "lossy",
+ "type": "boolean"
+ },
+ {
+ "name": "acl",
+ "type": "boolean"
+ },
+ {
+ "name": "x509verify",
+ "type": "string"
+ },
+ {
+ "name": "tls",
+ "type": "boolean"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "key-delay-ms",
+ "type": "number"
+ },
+ {
+ "name": "lock-key-sync",
+ "type": "boolean"
+ },
+ {
+ "name": "reverse",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "connections",
+ "type": "number"
+ },
+ {
+ "name": "head",
+ "type": "number"
+ },
+ {
+ "name": "display",
+ "type": "string"
+ },
+ {
+ "name": "share",
+ "type": "string"
+ },
+ {
+ "name": "x509",
+ "type": "string"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "websocket",
+ "type": "string"
+ },
+ {
+ "name": "vnc",
+ "type": "string"
+ }
+ ],
+ "option": "vnc"
+ },
+ {
+ "parameters": [
+ {
+ "name": "rendernode",
+ "type": "string"
+ },
+ {
+ "name": "gl",
+ "type": "boolean"
+ },
+ {
+ "name": "head",
+ "type": "number"
+ },
+ {
+ "name": "display",
+ "type": "string"
+ },
+ {
+ "name": "seamless-migration",
+ "type": "boolean"
+ },
+ {
+ "name": "playback-compression",
+ "type": "boolean"
+ },
+ {
+ "name": "agent-mouse",
+ "type": "boolean"
+ },
+ {
+ "name": "streaming-video",
+ "type": "string"
+ },
+ {
+ "name": "zlib-glz-wan-compression",
+ "type": "string"
+ },
+ {
+ "name": "jpeg-wan-compression",
+ "type": "string"
+ },
+ {
+ "name": "image-compression",
+ "type": "string"
+ },
+ {
+ "name": "plaintext-channel",
+ "type": "string"
+ },
+ {
+ "name": "tls-channel",
+ "type": "string"
+ },
+ {
+ "name": "tls-ciphers",
+ "type": "string"
+ },
+ {
+ "name": "x509-dh-key-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-cacert-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-cert-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-key-password",
+ "type": "string"
+ },
+ {
+ "name": "x509-key-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-dir",
+ "type": "string"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-agent-file-xfer",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-copy-paste",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-ticketing",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "string"
+ },
+ {
+ "name": "unix",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "addr",
+ "type": "string"
+ },
+ {
+ "name": "tls-port",
+ "type": "number"
+ },
+ {
+ "name": "port",
+ "type": "number"
+ }
+ ],
+ "option": "spice"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "smbios"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "acpi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "mount_tag",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "virtfs"
+ },
+ {
+ "parameters": [
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "fsdev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "string",
+ "help": "Sets content of the blob to be inserted from a string",
+ "type": "string"
+ },
+ {
+ "name": "file",
+ "help": "Sets the name of the file from which\nthe fw_cfg blob will be loaded",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "help": "Sets the fw_cfg name of the blob to be inserted",
+ "type": "string"
+ }
+ ],
+ "option": "fw_cfg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "arg",
+ "type": "string"
+ },
+ {
+ "name": "target",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "semihosting-config"
+ },
+ {
+ "parameters": [
+ {
+ "name": "rrsnapshot",
+ "type": "string"
+ },
+ {
+ "name": "rrfile",
+ "type": "string"
+ },
+ {
+ "name": "rr",
+ "type": "string"
+ },
+ {
+ "name": "sleep",
+ "type": "boolean"
+ },
+ {
+ "name": "align",
+ "type": "boolean"
+ },
+ {
+ "name": "shift",
+ "type": "string"
+ }
+ ],
+ "option": "icount"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "numa"
+ },
+ {
+ "parameters": [
+ {
+ "name": "debug-threads",
+ "help": "When enabled, name the individual threads; defaults off.\nNOTE: The thread names are for debugging and not a\nstable API.",
+ "type": "boolean"
+ },
+ {
+ "name": "process",
+ "help": "Sets the name of the QEMU process, as shown in top etc",
+ "type": "string"
+ },
+ {
+ "name": "guest",
+ "help": "Sets the name of the guest.\nThis name will be displayed in the SDL window caption.\nThe name will also be used for the VNC server",
+ "type": "string"
+ }
+ ],
+ "option": "name"
+ },
+ {
+ "parameters": [
+ {
+ "name": "timestamp",
+ "type": "boolean"
+ }
+ ],
+ "option": "msg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "mlock",
+ "type": "boolean"
+ }
+ ],
+ "option": "realtime"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "tpmdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "object"
+ },
+ {
+ "parameters": [
+ {
+ "name": "opaque",
+ "help": "free-form string used to describe fd",
+ "type": "string"
+ },
+ {
+ "name": "set",
+ "help": "ID of the fd set to add fd to",
+ "type": "number"
+ },
+ {
+ "name": "fd",
+ "help": "file descriptor of which a duplicate is added to fd set",
+ "type": "number"
+ }
+ ],
+ "option": "add-fd"
+ },
+ {
+ "parameters": [
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "sandbox"
+ },
+ {
+ "parameters": [
+ {
+ "name": "strict",
+ "type": "boolean"
+ },
+ {
+ "name": "reboot-timeout",
+ "type": "string"
+ },
+ {
+ "name": "splash-time",
+ "type": "string"
+ },
+ {
+ "name": "splash",
+ "type": "string"
+ },
+ {
+ "name": "menu",
+ "type": "boolean"
+ },
+ {
+ "name": "once",
+ "type": "string"
+ },
+ {
+ "name": "order",
+ "type": "string"
+ }
+ ],
+ "option": "boot-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxcpus",
+ "type": "number"
+ },
+ {
+ "name": "threads",
+ "type": "number"
+ },
+ {
+ "name": "cores",
+ "type": "number"
+ },
+ {
+ "name": "sockets",
+ "type": "number"
+ },
+ {
+ "name": "cpus",
+ "type": "number"
+ }
+ ],
+ "option": "smp-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxmem",
+ "type": "size"
+ },
+ {
+ "name": "slots",
+ "type": "number"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ }
+ ],
+ "option": "memory"
+ },
+ {
+ "parameters": [
+ {
+ "name": "thread",
+ "help": "Enable/disable multi-threaded TCG",
+ "type": "string"
+ },
+ {
+ "name": "accel",
+ "help": "Select the type of accelerator",
+ "type": "string"
+ }
+ ],
+ "option": "accel"
+ },
+ {
+ "parameters": [
+ {
+ "name": "loadparm",
+ "help": "Up to 8 chars in set of [A-Za-z0-9. ](lower case chars converted to upper case) to pass to machine loader, boot manager, and guest kernel",
+ "type": "string"
+ },
+ {
+ "name": "dea-key-wrap",
+ "help": "enable/disable DEA key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "aes-key-wrap",
+ "help": "enable/disable AES key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "help": "Set on to disable self-describing migration",
+ "type": "boolean"
+ },
+ {
+ "name": "iommu",
+ "help": "Set on/off to enable/disable Intel IOMMU (VT-d)",
+ "type": "boolean"
+ },
+ {
+ "name": "firmware",
+ "help": "firmware image",
+ "type": "string"
+ },
+ {
+ "name": "usb",
+ "help": "Set on/off to enable/disable usb",
+ "type": "boolean"
+ },
+ {
+ "name": "mem-merge",
+ "help": "enable/disable memory merge support",
+ "type": "boolean"
+ },
+ {
+ "name": "dump-guest-core",
+ "help": "Include guest memory in a core dump",
+ "type": "boolean"
+ },
+ {
+ "name": "dt_compatible",
+ "help": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "phandle_start",
+ "help": "The first phandle ID we may generate dynamically",
+ "type": "number"
+ },
+ {
+ "name": "dumpdtb",
+ "help": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "dtb",
+ "help": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "help": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "initrd",
+ "help": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "help": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "kvm_shadow_mem",
+ "help": "KVM shadow MMU size",
+ "type": "size"
+ },
+ {
+ "name": "kernel_irqchip",
+ "help": "use KVM in-kernel irqchip",
+ "type": "boolean"
+ },
+ {
+ "name": "accel",
+ "help": "accelerator list",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "help": "emulated machine",
+ "type": "string"
+ }
+ ],
+ "option": "machine"
+ },
+ {
+ "parameters": [
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "number"
+ }
+ ],
+ "option": "option-rom"
+ },
+ {
+ "parameters": [
+ {
+ "name": "file",
+ "type": "string"
+ },
+ {
+ "name": "events",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "string"
+ }
+ ],
+ "option": "trace"
+ },
+ {
+ "parameters": [
+ {
+ "name": "pretty",
+ "type": "boolean"
+ },
+ {
+ "name": "default",
+ "type": "boolean"
+ },
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "mode",
+ "type": "string"
+ }
+ ],
+ "option": "mon"
+ },
+ {
+ "parameters": [
+ {
+ "name": "value",
+ "type": "string"
+ },
+ {
+ "name": "property",
+ "type": "string"
+ },
+ {
+ "name": "driver",
+ "type": "string"
+ }
+ ],
+ "option": "global"
+ },
+ {
+ "parameters": [
+ {
+ "name": "driftfix",
+ "type": "string"
+ },
+ {
+ "name": "clock",
+ "type": "string"
+ },
+ {
+ "name": "base",
+ "type": "string"
+ }
+ ],
+ "option": "rtc"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "net"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "netdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "device"
+ },
+ {
+ "parameters": [
+ {
+ "name": "logappend",
+ "type": "boolean"
+ },
+ {
+ "name": "logfile",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "type": "boolean"
+ },
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ },
+ {
+ "name": "debug",
+ "type": "number"
+ },
+ {
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "name": "signal",
+ "type": "boolean"
+ },
+ {
+ "name": "mux",
+ "type": "boolean"
+ },
+ {
+ "name": "rows",
+ "type": "number"
+ },
+ {
+ "name": "cols",
+ "type": "number"
+ },
+ {
+ "name": "height",
+ "type": "number"
+ },
+ {
+ "name": "width",
+ "type": "number"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "tn3270",
+ "type": "boolean"
+ },
+ {
+ "name": "telnet",
+ "type": "boolean"
+ },
+ {
+ "name": "reconnect",
+ "type": "number"
+ },
+ {
+ "name": "delay",
+ "type": "boolean"
+ },
+ {
+ "name": "server",
+ "type": "boolean"
+ },
+ {
+ "name": "wait",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "localport",
+ "type": "string"
+ },
+ {
+ "name": "localaddr",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "host",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "backend",
+ "type": "string"
+ }
+ ],
+ "option": "chardev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "copy-on-read",
+ "help": "copy read data from backing file into image file",
+ "type": "boolean"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "rerror",
+ "help": "read error action",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "open drive file as read-only",
+ "type": "boolean"
+ },
+ {
+ "name": "file",
+ "help": "file name",
+ "type": "string"
+ },
+ {
+ "name": "serial",
+ "help": "disk serial number",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "help": "pci address (virtio only)",
+ "type": "string"
+ },
+ {
+ "name": "boot",
+ "help": "(deprecated, ignored)",
+ "type": "boolean"
+ },
+ {
+ "name": "trans",
+ "help": "chs translation (auto, lba, none)",
+ "type": "string"
+ },
+ {
+ "name": "secs",
+ "help": "number of sectors (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "heads",
+ "help": "number of heads (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "cyls",
+ "help": "number of cylinders (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "if",
+ "help": "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)",
+ "type": "string"
+ },
+ {
+ "name": "media",
+ "help": "media type (disk, cdrom)",
+ "type": "string"
+ },
+ {
+ "name": "index",
+ "help": "index number",
+ "type": "number"
+ },
+ {
+ "name": "unit",
+ "help": "unit number (i.e. lun for scsi)",
+ "type": "number"
+ },
+ {
+ "name": "bus",
+ "help": "bus number",
+ "type": "number"
+ },
+ {
+ "name": "stats-account-failed",
+ "help": "whether to account for failed I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "stats-account-invalid",
+ "help": "whether to account for invalid I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "detect-zeroes",
+ "help": "try to optimize zero writes (off, on, unmap)",
+ "type": "string"
+ },
+ {
+ "name": "throttling.group",
+ "help": "name of the block throttling group",
+ "type": "string"
+ },
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "format",
+ "help": "disk format (raw, qcow2, ...)",
+ "type": "string"
+ },
+ {
+ "name": "cache.writeback",
+ "help": "Enable writeback mode",
+ "type": "boolean"
+ },
+ {
+ "name": "aio",
+ "help": "host AIO implementation (threads, native)",
+ "type": "string"
+ },
+ {
+ "name": "snapshot",
+ "help": "enable/disable snapshot mode",
+ "type": "boolean"
+ },
+ {
+ "name": "force-share",
+ "help": "always accept other writers (default: off)",
+ "type": "boolean"
+ },
+ {
+ "name": "discard",
+ "help": "discard operation (ignore/off, unmap/on)",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "Node is opened in read-only mode",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.no-flush",
+ "help": "Ignore flush requests",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.direct",
+ "help": "Bypass software writeback cache on the host",
+ "type": "boolean"
+ },
+ {
+ "name": "driver",
+ "help": "Block driver to use for the node",
+ "type": "string"
+ },
+ {
+ "name": "node-name",
+ "help": "Node name of the block device node",
+ "type": "string"
+ }
+ ],
+ "option": "drive"
+ }
+ ],
+ "id": "libvirt-46"
+}
+
+{
+ "return": [
+ {
+ "state": false,
+ "capability": "xbzrle"
+ },
+ {
+ "state": false,
+ "capability": "rdma-pin-all"
+ },
+ {
+ "state": false,
+ "capability": "auto-converge"
+ },
+ {
+ "state": false,
+ "capability": "zero-blocks"
+ },
+ {
+ "state": false,
+ "capability": "compress"
+ },
+ {
+ "state": false,
+ "capability": "events"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-ram"
+ },
+ {
+ "state": false,
+ "capability": "x-colo"
+ },
+ {
+ "state": false,
+ "capability": "release-ram"
+ },
+ {
+ "state": false,
+ "capability": "block"
+ },
+ {
+ "state": false,
+ "capability": "return-path"
+ }
+ ],
+ "id": "libvirt-47"
+}
+
+{
+ "return": [
+ {
+ "name": "ACPI_DEVICE_OST",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "BALLOON_CHANGE",
+ "meta-type": "event",
+ "arg-type": "1"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED",
+ "meta-type": "event",
+ "arg-type": "2"
+ },
+ {
+ "name": "BLOCK_IO_ERROR",
+ "meta-type": "event",
+ "arg-type": "3"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED",
+ "meta-type": "event",
+ "arg-type": "4"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "5"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR",
+ "meta-type": "event",
+ "arg-type": "6"
+ },
+ {
+ "name": "BLOCK_JOB_READY",
+ "meta-type": "event",
+ "arg-type": "7"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD",
+ "meta-type": "event",
+ "arg-type": "8"
+ },
+ {
+ "name": "DEVICE_DELETED",
+ "meta-type": "event",
+ "arg-type": "9"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED",
+ "meta-type": "event",
+ "arg-type": "10"
+ },
+ {
+ "name": "DUMP_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "11"
+ },
+ {
+ "name": "GUEST_PANICKED",
+ "meta-type": "event",
+ "arg-type": "12"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR",
+ "meta-type": "event",
+ "arg-type": "13"
+ },
+ {
+ "name": "MIGRATION",
+ "meta-type": "event",
+ "arg-type": "14"
+ },
+ {
+ "name": "MIGRATION_PASS",
+ "meta-type": "event",
+ "arg-type": "15"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED",
+ "meta-type": "event",
+ "arg-type": "16"
+ },
+ {
+ "name": "POWERDOWN",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "QUORUM_FAILURE",
+ "meta-type": "event",
+ "arg-type": "18"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD",
+ "meta-type": "event",
+ "arg-type": "19"
+ },
+ {
+ "name": "RESET",
+ "meta-type": "event",
+ "arg-type": "20"
+ },
+ {
+ "name": "RESUME",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "RTC_CHANGE",
+ "meta-type": "event",
+ "arg-type": "21"
+ },
+ {
+ "name": "SHUTDOWN",
+ "meta-type": "event",
+ "arg-type": "22"
+ },
+ {
+ "name": "SPICE_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "23"
+ },
+ {
+ "name": "SPICE_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "24"
+ },
+ {
+ "name": "SPICE_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "25"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "STOP",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "SUSPEND",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "SUSPEND_DISK",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "VNC_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "26"
+ },
+ {
+ "name": "VNC_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "27"
+ },
+ {
+ "name": "VNC_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "28"
+ },
+ {
+ "name": "VSERPORT_CHANGE",
+ "meta-type": "event",
+ "arg-type": "29"
+ },
+ {
+ "name": "WAKEUP",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "WATCHDOG",
+ "meta-type": "event",
+ "arg-type": "30"
+ },
+ {
+ "name": "add-fd",
+ "ret-type": "32",
+ "meta-type": "command",
+ "arg-type": "31"
+ },
+ {
+ "name": "add_client",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "33"
+ },
+ {
+ "name": "balloon",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "34"
+ },
+ {
+ "name": "block-commit",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "35"
+ },
+ {
+ "name": "block-dirty-bitmap-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "36"
+ },
+ {
+ "name": "block-dirty-bitmap-clear",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-dirty-bitmap-remove",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-job-cancel",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "38"
+ },
+ {
+ "name": "block-job-complete",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "39"
+ },
+ {
+ "name": "block-job-pause",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "40"
+ },
+ {
+ "name": "block-job-resume",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "41"
+ },
+ {
+ "name": "block-job-set-speed",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "42"
+ },
+ {
+ "name": "block-set-write-threshold",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "43"
+ },
+ {
+ "name": "block-stream",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "44"
+ },
+ {
+ "name": "block_passwd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "block_resize",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "46"
+ },
+ {
+ "name": "block_set_io_throttle",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "47"
+ },
+ {
+ "name": "blockdev-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "48"
+ },
+ {
+ "name": "blockdev-backup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "49"
+ },
+ {
+ "name": "blockdev-change-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "50"
+ },
+ {
+ "name": "blockdev-close-tray",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "51"
+ },
+ {
+ "name": "blockdev-del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "52"
+ },
+ {
+ "name": "blockdev-mirror",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "53"
+ },
+ {
+ "name": "blockdev-open-tray",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "54"
+ },
+ {
+ "name": "blockdev-snapshot",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "55"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync",
+ "ret-type": "57",
+ "meta-type": "command",
+ "arg-type": "56"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "58"
+ },
+ {
+ "name": "blockdev-snapshot-sync",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "59"
+ },
+ {
+ "name": "change",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "60"
+ },
+ {
+ "name": "change-backing-file",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "61"
+ },
+ {
+ "name": "change-vnc-password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "62"
+ },
+ {
+ "name": "chardev-add",
+ "ret-type": "64",
+ "meta-type": "command",
+ "arg-type": "63"
+ },
+ {
+ "name": "chardev-change",
+ "ret-type": "64",
+ "meta-type": "command",
+ "arg-type": "65"
+ },
+ {
+ "name": "chardev-remove",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "66"
+ },
+ {
+ "name": "chardev-send-break",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "67"
+ },
+ {
+ "name": "client_migrate_info",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "68"
+ },
+ {
+ "name": "closefd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "69"
+ },
+ {
+ "name": "cont",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "cpu",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "70"
+ },
+ {
+ "name": "cpu-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "71"
+ },
+ {
+ "name": "device-list-properties",
+ "ret-type": "[73]",
+ "meta-type": "command",
+ "arg-type": "72"
+ },
+ {
+ "name": "device_add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "74"
+ },
+ {
+ "name": "device_del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "75"
+ },
+ {
+ "name": "drive-backup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "76"
+ },
+ {
+ "name": "drive-mirror",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "77"
+ },
+ {
+ "name": "dump-guest-memory",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "78"
+ },
+ {
+ "name": "dump-skeys",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "79"
+ },
+ {
+ "name": "eject",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "80"
+ },
+ {
+ "name": "expire_password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "81"
+ },
+ {
+ "name": "getfd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "82"
+ },
+ {
+ "name": "human-monitor-command",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "83"
+ },
+ {
+ "name": "inject-nmi",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "input-send-event",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "84"
+ },
+ {
+ "name": "memsave",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "85"
+ },
+ {
+ "name": "migrate",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "86"
+ },
+ {
+ "name": "migrate-incoming",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "87"
+ },
+ {
+ "name": "migrate-set-cache-size",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "88"
+ },
+ {
+ "name": "migrate-set-capabilities",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "89"
+ },
+ {
+ "name": "migrate-set-parameters",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "90"
+ },
+ {
+ "name": "migrate-start-postcopy",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "migrate_cancel",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "migrate_set_downtime",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "91"
+ },
+ {
+ "name": "migrate_set_speed",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "92"
+ },
+ {
+ "name": "nbd-server-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "93"
+ },
+ {
+ "name": "nbd-server-start",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "94"
+ },
+ {
+ "name": "nbd-server-stop",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "netdev_add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "95"
+ },
+ {
+ "name": "netdev_del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "96"
+ },
+ {
+ "name": "object-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "97"
+ },
+ {
+ "name": "object-del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "98"
+ },
+ {
+ "name": "pmemsave",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "99"
+ },
+ {
+ "name": "qmp_capabilities",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "qom-get",
+ "ret-type": "any",
+ "meta-type": "command",
+ "arg-type": "100"
+ },
+ {
+ "name": "qom-list",
+ "ret-type": "[102]",
+ "meta-type": "command",
+ "arg-type": "101"
+ },
+ {
+ "name": "qom-list-types",
+ "ret-type": "[104]",
+ "meta-type": "command",
+ "arg-type": "103"
+ },
+ {
+ "name": "qom-set",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "105"
+ },
+ {
+ "name": "query-acpi-ospm-status",
+ "ret-type": "[106]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-balloon",
+ "ret-type": "107",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block",
+ "ret-type": "[108]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block-jobs",
+ "ret-type": "[109]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-blockstats",
+ "ret-type": "[111]",
+ "meta-type": "command",
+ "arg-type": "110"
+ },
+ {
+ "name": "query-chardev",
+ "ret-type": "[112]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-chardev-backends",
+ "ret-type": "[113]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-command-line-options",
+ "ret-type": "[115]",
+ "meta-type": "command",
+ "arg-type": "114"
+ },
+ {
+ "name": "query-commands",
+ "ret-type": "[116]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-cpu-definitions",
+ "ret-type": "[117]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-cpu-model-baseline",
+ "ret-type": "119",
+ "meta-type": "command",
+ "arg-type": "118"
+ },
+ {
+ "name": "query-cpu-model-comparison",
+ "ret-type": "121",
+ "meta-type": "command",
+ "arg-type": "120"
+ },
+ {
+ "name": "query-cpu-model-expansion",
+ "ret-type": "123",
+ "meta-type": "command",
+ "arg-type": "122"
+ },
+ {
+ "name": "query-cpus",
+ "ret-type": "[124]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-dump",
+ "ret-type": "125",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-dump-guest-memory-capability",
+ "ret-type": "126",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-events",
+ "ret-type": "[127]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-fdsets",
+ "ret-type": "[128]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-gic-capabilities",
+ "ret-type": "[129]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-hotpluggable-cpus",
+ "ret-type": "[130]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-iothreads",
+ "ret-type": "[131]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-kvm",
+ "ret-type": "132",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-machines",
+ "ret-type": "[133]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memdev",
+ "ret-type": "[134]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memory-devices",
+ "ret-type": "[135]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-mice",
+ "ret-type": "[136]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate",
+ "ret-type": "137",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-cache-size",
+ "ret-type": "int",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-capabilities",
+ "ret-type": "[138]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-parameters",
+ "ret-type": "139",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-name",
+ "ret-type": "140",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-named-block-nodes",
+ "ret-type": "[141]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-pci",
+ "ret-type": "[142]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-qmp-schema",
+ "ret-type": "[143]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-rocker",
+ "ret-type": "145",
+ "meta-type": "command",
+ "arg-type": "144"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows",
+ "ret-type": "[147]",
+ "meta-type": "command",
+ "arg-type": "146"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups",
+ "ret-type": "[149]",
+ "meta-type": "command",
+ "arg-type": "148"
+ },
+ {
+ "name": "query-rocker-ports",
+ "ret-type": "[151]",
+ "meta-type": "command",
+ "arg-type": "150"
+ },
+ {
+ "name": "query-rx-filter",
+ "ret-type": "[153]",
+ "meta-type": "command",
+ "arg-type": "152"
+ },
+ {
+ "name": "query-spice",
+ "ret-type": "154",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-status",
+ "ret-type": "155",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-target",
+ "ret-type": "156",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm",
+ "ret-type": "[157]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm-models",
+ "ret-type": "[158]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm-types",
+ "ret-type": "[159]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-uuid",
+ "ret-type": "160",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-version",
+ "ret-type": "161",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vm-generation-id",
+ "ret-type": "162",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vnc",
+ "ret-type": "163",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vnc-servers",
+ "ret-type": "[164]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-xen-replication-status",
+ "ret-type": "165",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "quit",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "remove-fd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "166"
+ },
+ {
+ "name": "ringbuf-read",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "167"
+ },
+ {
+ "name": "ringbuf-write",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "168"
+ },
+ {
+ "name": "rtc-reset-reinjection",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "screendump",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "169"
+ },
+ {
+ "name": "send-key",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "170"
+ },
+ {
+ "name": "set_link",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "171"
+ },
+ {
+ "name": "set_password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "172"
+ },
+ {
+ "name": "stop",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_powerdown",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_reset",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_wakeup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "trace-event-get-state",
+ "ret-type": "[174]",
+ "meta-type": "command",
+ "arg-type": "173"
+ },
+ {
+ "name": "trace-event-set-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "175"
+ },
+ {
+ "name": "transaction",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "176"
+ },
+ {
+ "name": "x-blockdev-change",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "177"
+ },
+ {
+ "name": "x-blockdev-insert-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "178"
+ },
+ {
+ "name": "x-blockdev-remove-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "179"
+ },
+ {
+ "name": "x-colo-lost-heartbeat",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256",
+ "ret-type": "180",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "xen-colo-do-checkpoint",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "xen-load-devices-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "181"
+ },
+ {
+ "name": "xen-save-devices-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "182"
+ },
+ {
+ "name": "xen-set-global-dirty-log",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "183"
+ },
+ {
+ "name": "xen-set-replication",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "184"
+ },
+ {
+ "name": "0",
+ "members": [
+ {
+ "name": "info",
+ "type": "106"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "1",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "2",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "fatal",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "3",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "185"
+ },
+ {
+ "name": "action",
+ "type": "186"
+ },
+ {
+ "name": "nospace",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "4",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "5",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "6",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "185"
+ },
+ {
+ "name": "action",
+ "type": "186"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "7",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "8",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "amount-exceeded",
+ "type": "int"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "9",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "10",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "tray-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "11",
+ "members": [
+ {
+ "name": "result",
+ "type": "125"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "12",
+ "members": [
+ {
+ "name": "action",
+ "type": "188"
+ },
+ {
+ "name": "info",
+ "default": null,
+ "type": "189"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "13",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "14",
+ "members": [
+ {
+ "name": "status",
+ "type": "190"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "15",
+ "members": [
+ {
+ "name": "pass",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "16",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "17",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "18",
+ "members": [
+ {
+ "name": "reference",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "19",
+ "members": [
+ {
+ "name": "type",
+ "type": "191"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "20",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "21",
+ "members": [
+ {
+ "name": "offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "22",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "23",
+ "members": [
+ {
+ "name": "server",
+ "type": "192"
+ },
+ {
+ "name": "client",
+ "type": "192"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "24",
+ "members": [
+ {
+ "name": "server",
+ "type": "192"
+ },
+ {
+ "name": "client",
+ "type": "192"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "25",
+ "members": [
+ {
+ "name": "server",
+ "type": "193"
+ },
+ {
+ "name": "client",
+ "type": "194"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "26",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "196"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "27",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "197"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "28",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "197"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "29",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "30",
+ "members": [
+ {
+ "name": "action",
+ "type": "198"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "31",
+ "members": [
+ {
+ "name": "fdset-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "32",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "33",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "fdname",
+ "type": "str"
+ },
+ {
+ "name": "skipauth",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tls",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "34",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "35",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "top",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "36",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "persistent",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "autoload",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "37",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "38",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "39",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "40",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "41",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "42",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "43",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "44",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "base-node",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "45",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "46",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "47",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "48",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "blkdebug",
+ "type": "204"
+ },
+ {
+ "case": "blkverify",
+ "type": "205"
+ },
+ {
+ "case": "bochs",
+ "type": "206"
+ },
+ {
+ "case": "cloop",
+ "type": "206"
+ },
+ {
+ "case": "dmg",
+ "type": "206"
+ },
+ {
+ "case": "file",
+ "type": "207"
+ },
+ {
+ "case": "ftp",
+ "type": "208"
+ },
+ {
+ "case": "ftps",
+ "type": "209"
+ },
+ {
+ "case": "gluster",
+ "type": "210"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "207"
+ },
+ {
+ "case": "host_device",
+ "type": "207"
+ },
+ {
+ "case": "http",
+ "type": "211"
+ },
+ {
+ "case": "https",
+ "type": "212"
+ },
+ {
+ "case": "iscsi",
+ "type": "213"
+ },
+ {
+ "case": "luks",
+ "type": "214"
+ },
+ {
+ "case": "nbd",
+ "type": "215"
+ },
+ {
+ "case": "nfs",
+ "type": "216"
+ },
+ {
+ "case": "null-aio",
+ "type": "217"
+ },
+ {
+ "case": "null-co",
+ "type": "217"
+ },
+ {
+ "case": "parallels",
+ "type": "206"
+ },
+ {
+ "case": "qcow2",
+ "type": "218"
+ },
+ {
+ "case": "qcow",
+ "type": "219"
+ },
+ {
+ "case": "qed",
+ "type": "220"
+ },
+ {
+ "case": "quorum",
+ "type": "221"
+ },
+ {
+ "case": "raw",
+ "type": "222"
+ },
+ {
+ "case": "rbd",
+ "type": "223"
+ },
+ {
+ "case": "replication",
+ "type": "224"
+ },
+ {
+ "case": "sheepdog",
+ "type": "225"
+ },
+ {
+ "case": "ssh",
+ "type": "226"
+ },
+ {
+ "case": "vdi",
+ "type": "206"
+ },
+ {
+ "case": "vhdx",
+ "type": "206"
+ },
+ {
+ "case": "vmdk",
+ "type": "220"
+ },
+ {
+ "case": "vpc",
+ "type": "206"
+ },
+ {
+ "case": "vvfat",
+ "type": "227"
+ },
+ {
+ "case": "vxhs",
+ "type": "228"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "200"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "discard",
+ "default": null,
+ "type": "201"
+ },
+ {
+ "name": "cache",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "read-only",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "force-share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detect-zeroes",
+ "default": null,
+ "type": "203"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "49",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "50",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "read-only-mode",
+ "default": null,
+ "type": "230"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "51",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "52",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "53",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "replaces",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buf-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "54",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "55",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "overlay",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "56",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "57",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vm-state-size",
+ "type": "int"
+ },
+ {
+ "name": "date-sec",
+ "type": "int"
+ },
+ {
+ "name": "date-nsec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-sec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-nsec",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "58",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "59",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot-file",
+ "type": "str"
+ },
+ {
+ "name": "snapshot-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "60",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "arg",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "61",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "image-node-name",
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "62",
+ "members": [
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "63",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "232"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "64",
+ "members": [
+ {
+ "name": "pty",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "65",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "232"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "66",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "67",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "68",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "hostname",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cert-subject",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "69",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "70",
+ "members": [
+ {
+ "name": "index",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "71",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "72",
+ "members": [
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[73]",
+ "element-type": "73",
+ "meta-type": "array"
+ },
+ {
+ "name": "73",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "description",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "74",
+ "members": [
+ {
+ "name": "driver",
+ "type": "str"
+ },
+ {
+ "name": "bus",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "75",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "76",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "77",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "replaces",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buf-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "unmap",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "78",
+ "members": [
+ {
+ "name": "paging",
+ "type": "bool"
+ },
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "begin",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "233"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "79",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "80",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "81",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "time",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "82",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "83",
+ "members": [
+ {
+ "name": "command-line",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "str",
+ "json-type": "string",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "84",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "head",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "events",
+ "type": "[234]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "85",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "86",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ },
+ {
+ "name": "blk",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "87",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "88",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "89",
+ "members": [
+ {
+ "name": "capabilities",
+ "type": "[138]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "90",
+ "members": [
+ {
+ "name": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "235"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "235"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "91",
+ "members": [
+ {
+ "name": "value",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "92",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "93",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "writable",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "94",
+ "members": [
+ {
+ "name": "addr",
+ "type": "236"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "95",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "96",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "97",
+ "members": [
+ {
+ "name": "qom-type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "98",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "99",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "100",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "any",
+ "json-type": "value",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "101",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[102]",
+ "element-type": "102",
+ "meta-type": "array"
+ },
+ {
+ "name": "102",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "103",
+ "members": [
+ {
+ "name": "implements",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[104]",
+ "element-type": "104",
+ "meta-type": "array"
+ },
+ {
+ "name": "104",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "105",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ },
+ {
+ "name": "value",
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[106]",
+ "element-type": "106",
+ "meta-type": "array"
+ },
+ {
+ "name": "106",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "slot",
+ "type": "str"
+ },
+ {
+ "name": "slot-type",
+ "type": "237"
+ },
+ {
+ "name": "source",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "107",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[108]",
+ "element-type": "108",
+ "meta-type": "array"
+ },
+ {
+ "name": "108",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "qdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "removable",
+ "type": "bool"
+ },
+ {
+ "name": "locked",
+ "type": "bool"
+ },
+ {
+ "name": "inserted",
+ "default": null,
+ "type": "141"
+ },
+ {
+ "name": "tray_open",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "io-status",
+ "default": null,
+ "type": "238"
+ },
+ {
+ "name": "dirty-bitmaps",
+ "default": null,
+ "type": "[239]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[109]",
+ "element-type": "109",
+ "meta-type": "array"
+ },
+ {
+ "name": "109",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "busy",
+ "type": "bool"
+ },
+ {
+ "name": "paused",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "io-status",
+ "type": "238"
+ },
+ {
+ "name": "ready",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "110",
+ "members": [
+ {
+ "name": "query-nodes",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[111]",
+ "element-type": "111",
+ "meta-type": "array"
+ },
+ {
+ "name": "111",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stats",
+ "type": "240"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "111"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "111"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[112]",
+ "element-type": "112",
+ "meta-type": "array"
+ },
+ {
+ "name": "112",
+ "members": [
+ {
+ "name": "label",
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "frontend-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[113]",
+ "element-type": "113",
+ "meta-type": "array"
+ },
+ {
+ "name": "113",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "114",
+ "members": [
+ {
+ "name": "option",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[115]",
+ "element-type": "115",
+ "meta-type": "array"
+ },
+ {
+ "name": "115",
+ "members": [
+ {
+ "name": "option",
+ "type": "str"
+ },
+ {
+ "name": "parameters",
+ "type": "[241]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[116]",
+ "element-type": "116",
+ "meta-type": "array"
+ },
+ {
+ "name": "116",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[117]",
+ "element-type": "117",
+ "meta-type": "array"
+ },
+ {
+ "name": "117",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "migration-safe",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "static",
+ "type": "bool"
+ },
+ {
+ "name": "unavailable-features",
+ "default": null,
+ "type": "[str]"
+ },
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "118",
+ "members": [
+ {
+ "name": "modela",
+ "type": "242"
+ },
+ {
+ "name": "modelb",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "119",
+ "members": [
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "120",
+ "members": [
+ {
+ "name": "modela",
+ "type": "242"
+ },
+ {
+ "name": "modelb",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "121",
+ "members": [
+ {
+ "name": "result",
+ "type": "243"
+ },
+ {
+ "name": "responsible-properties",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "122",
+ "members": [
+ {
+ "name": "type",
+ "type": "244"
+ },
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "123",
+ "members": [
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[124]",
+ "element-type": "124",
+ "meta-type": "array"
+ },
+ {
+ "name": "124",
+ "tag": "arch",
+ "variants": [
+ {
+ "case": "x86",
+ "type": "247"
+ },
+ {
+ "case": "sparc",
+ "type": "248"
+ },
+ {
+ "case": "ppc",
+ "type": "249"
+ },
+ {
+ "case": "mips",
+ "type": "250"
+ },
+ {
+ "case": "tricore",
+ "type": "251"
+ },
+ {
+ "case": "other",
+ "type": "252"
+ }
+ ],
+ "members": [
+ {
+ "name": "CPU",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "halted",
+ "type": "bool"
+ },
+ {
+ "name": "qom_path",
+ "type": "str"
+ },
+ {
+ "name": "thread_id",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "245"
+ },
+ {
+ "name": "arch",
+ "type": "246"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "125",
+ "members": [
+ {
+ "name": "status",
+ "type": "253"
+ },
+ {
+ "name": "completed",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "126",
+ "members": [
+ {
+ "name": "formats",
+ "type": "[233]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[127]",
+ "element-type": "127",
+ "meta-type": "array"
+ },
+ {
+ "name": "127",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[128]",
+ "element-type": "128",
+ "meta-type": "array"
+ },
+ {
+ "name": "128",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fds",
+ "type": "[254]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[129]",
+ "element-type": "129",
+ "meta-type": "array"
+ },
+ {
+ "name": "129",
+ "members": [
+ {
+ "name": "version",
+ "type": "int"
+ },
+ {
+ "name": "emulated",
+ "type": "bool"
+ },
+ {
+ "name": "kernel",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[130]",
+ "element-type": "130",
+ "meta-type": "array"
+ },
+ {
+ "name": "130",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "vcpus-count",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "type": "245"
+ },
+ {
+ "name": "qom-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[131]",
+ "element-type": "131",
+ "meta-type": "array"
+ },
+ {
+ "name": "131",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "thread-id",
+ "type": "int"
+ },
+ {
+ "name": "poll-max-ns",
+ "type": "int"
+ },
+ {
+ "name": "poll-grow",
+ "type": "int"
+ },
+ {
+ "name": "poll-shrink",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "132",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "present",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[133]",
+ "element-type": "133",
+ "meta-type": "array"
+ },
+ {
+ "name": "133",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "alias",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "is-default",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cpu-max",
+ "type": "int"
+ },
+ {
+ "name": "hotpluggable-cpus",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[134]",
+ "element-type": "134",
+ "meta-type": "array"
+ },
+ {
+ "name": "134",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "merge",
+ "type": "bool"
+ },
+ {
+ "name": "dump",
+ "type": "bool"
+ },
+ {
+ "name": "prealloc",
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "type": "[int]"
+ },
+ {
+ "name": "policy",
+ "type": "255"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[135]",
+ "element-type": "135",
+ "meta-type": "array"
+ },
+ {
+ "name": "135",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "dimm",
+ "type": "257"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "256"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[136]",
+ "element-type": "136",
+ "meta-type": "array"
+ },
+ {
+ "name": "136",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "index",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "absolute",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "137",
+ "members": [
+ {
+ "name": "status",
+ "default": null,
+ "type": "190"
+ },
+ {
+ "name": "ram",
+ "default": null,
+ "type": "258"
+ },
+ {
+ "name": "disk",
+ "default": null,
+ "type": "258"
+ },
+ {
+ "name": "xbzrle-cache",
+ "default": null,
+ "type": "259"
+ },
+ {
+ "name": "total-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "expected-downtime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "setup-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-percentage",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "error-desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "int",
+ "json-type": "int",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "[138]",
+ "element-type": "138",
+ "meta-type": "array"
+ },
+ {
+ "name": "138",
+ "members": [
+ {
+ "name": "capability",
+ "type": "260"
+ },
+ {
+ "name": "state",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "139",
+ "members": [
+ {
+ "name": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "140",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[141]",
+ "element-type": "141",
+ "meta-type": "array"
+ },
+ {
+ "name": "141",
+ "members": [
+ {
+ "name": "file",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ro",
+ "type": "bool"
+ },
+ {
+ "name": "drv",
+ "type": "str"
+ },
+ {
+ "name": "backing_file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing_file_depth",
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "type": "bool"
+ },
+ {
+ "name": "encryption_key_missing",
+ "type": "bool"
+ },
+ {
+ "name": "detect_zeroes",
+ "type": "203"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "image",
+ "type": "261"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cache",
+ "type": "262"
+ },
+ {
+ "name": "write_threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[142]",
+ "element-type": "142",
+ "meta-type": "array"
+ },
+ {
+ "name": "142",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "devices",
+ "type": "[263]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[143]",
+ "element-type": "143",
+ "meta-type": "array"
+ },
+ {
+ "name": "143",
+ "tag": "meta-type",
+ "variants": [
+ {
+ "case": "builtin",
+ "type": "265"
+ },
+ {
+ "case": "enum",
+ "type": "266"
+ },
+ {
+ "case": "array",
+ "type": "267"
+ },
+ {
+ "case": "object",
+ "type": "268"
+ },
+ {
+ "case": "alternate",
+ "type": "269"
+ },
+ {
+ "case": "command",
+ "type": "270"
+ },
+ {
+ "case": "event",
+ "type": "271"
+ }
+ ],
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "meta-type",
+ "type": "264"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "144",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "145",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "ports",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "146",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "tbl-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[147]",
+ "element-type": "147",
+ "meta-type": "array"
+ },
+ {
+ "name": "147",
+ "members": [
+ {
+ "name": "cookie",
+ "type": "int"
+ },
+ {
+ "name": "hits",
+ "type": "int"
+ },
+ {
+ "name": "key",
+ "type": "272"
+ },
+ {
+ "name": "mask",
+ "type": "273"
+ },
+ {
+ "name": "action",
+ "type": "274"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "148",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[149]",
+ "element-type": "149",
+ "meta-type": "array"
+ },
+ {
+ "name": "149",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "index",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "out-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "set-vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "pop-vlan",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-ids",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "set-eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "set-eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ttl-check",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "150",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[151]",
+ "element-type": "151",
+ "meta-type": "array"
+ },
+ {
+ "name": "151",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "link-up",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "duplex",
+ "type": "275"
+ },
+ {
+ "name": "autoneg",
+ "type": "276"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "152",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[153]",
+ "element-type": "153",
+ "meta-type": "array"
+ },
+ {
+ "name": "153",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "promiscuous",
+ "type": "bool"
+ },
+ {
+ "name": "multicast",
+ "type": "277"
+ },
+ {
+ "name": "unicast",
+ "type": "277"
+ },
+ {
+ "name": "vlan",
+ "type": "277"
+ },
+ {
+ "name": "broadcast-allowed",
+ "type": "bool"
+ },
+ {
+ "name": "multicast-overflow",
+ "type": "bool"
+ },
+ {
+ "name": "unicast-overflow",
+ "type": "bool"
+ },
+ {
+ "name": "main-mac",
+ "type": "str"
+ },
+ {
+ "name": "vlan-table",
+ "type": "[int]"
+ },
+ {
+ "name": "unicast-table",
+ "type": "[str]"
+ },
+ {
+ "name": "multicast-table",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "154",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "migrated",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compiled-version",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mouse-mode",
+ "type": "278"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "[194]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "155",
+ "members": [
+ {
+ "name": "running",
+ "type": "bool"
+ },
+ {
+ "name": "singlestep",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "279"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "156",
+ "members": [
+ {
+ "name": "arch",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[157]",
+ "element-type": "157",
+ "meta-type": "array"
+ },
+ {
+ "name": "157",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "model",
+ "type": "158"
+ },
+ {
+ "name": "options",
+ "type": "280"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[158]",
+ "element-type": "158",
+ "meta-type": "array"
+ },
+ {
+ "name": "158",
+ "meta-type": "enum",
+ "values": [
+ "tpm-tis"
+ ]
+ },
+ {
+ "name": "[159]",
+ "element-type": "159",
+ "meta-type": "array"
+ },
+ {
+ "name": "159",
+ "meta-type": "enum",
+ "values": [
+ "passthrough"
+ ]
+ },
+ {
+ "name": "160",
+ "members": [
+ {
+ "name": "UUID",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "161",
+ "members": [
+ {
+ "name": "qemu",
+ "type": "281"
+ },
+ {
+ "name": "package",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "162",
+ "members": [
+ {
+ "name": "guid",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "163",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "default": null,
+ "type": "282"
+ },
+ {
+ "name": "service",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "clients",
+ "default": null,
+ "type": "[197]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[164]",
+ "element-type": "164",
+ "meta-type": "array"
+ },
+ {
+ "name": "164",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[283]"
+ },
+ {
+ "name": "clients",
+ "type": "[197]"
+ },
+ {
+ "name": "auth",
+ "type": "284"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "285"
+ },
+ {
+ "name": "display",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "165",
+ "members": [
+ {
+ "name": "error",
+ "type": "bool"
+ },
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "166",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "167",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "286"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "168",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "data",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "286"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "169",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "170",
+ "members": [
+ {
+ "name": "keys",
+ "type": "[287]"
+ },
+ {
+ "name": "hold-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "171",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "up",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "172",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "173",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[174]",
+ "element-type": "174",
+ "meta-type": "array"
+ },
+ {
+ "name": "174",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "state",
+ "type": "288"
+ },
+ {
+ "name": "vcpu",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "175",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "ignore-unavailable",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "176",
+ "members": [
+ {
+ "name": "actions",
+ "type": "[289]"
+ },
+ {
+ "name": "properties",
+ "default": null,
+ "type": "290"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "177",
+ "members": [
+ {
+ "name": "parent",
+ "type": "str"
+ },
+ {
+ "name": "child",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "178",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "179",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "180",
+ "members": [
+ {
+ "name": "sha256",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "181",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "182",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "183",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "184",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "primary",
+ "type": "bool"
+ },
+ {
+ "name": "failover",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "bool",
+ "json-type": "boolean",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "185",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write"
+ ]
+ },
+ {
+ "name": "186",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "report",
+ "stop"
+ ]
+ },
+ {
+ "name": "187",
+ "meta-type": "enum",
+ "values": [
+ "commit",
+ "stream",
+ "mirror",
+ "backup"
+ ]
+ },
+ {
+ "name": "188",
+ "meta-type": "enum",
+ "values": [
+ "pause",
+ "poweroff"
+ ]
+ },
+ {
+ "name": "189",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "hyper-v",
+ "type": "292"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "291"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "190",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "setup",
+ "cancelling",
+ "cancelled",
+ "active",
+ "postcopy-active",
+ "completed",
+ "failed",
+ "colo"
+ ]
+ },
+ {
+ "name": "191",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write",
+ "flush"
+ ]
+ },
+ {
+ "name": "192",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "193",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "194",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "connection-id",
+ "type": "int"
+ },
+ {
+ "name": "channel-type",
+ "type": "int"
+ },
+ {
+ "name": "channel-id",
+ "type": "int"
+ },
+ {
+ "name": "tls",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "195",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "196",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "197",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "x509_dname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sasl_username",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "198",
+ "meta-type": "enum",
+ "values": [
+ "reset",
+ "shutdown",
+ "poweroff",
+ "pause",
+ "debug",
+ "none",
+ "inject-nmi"
+ ]
+ },
+ {
+ "name": "199",
+ "meta-type": "enum",
+ "values": [
+ "report",
+ "ignore",
+ "enospc",
+ "stop",
+ "auto"
+ ]
+ },
+ {
+ "name": "200",
+ "meta-type": "enum",
+ "values": [
+ "blkdebug",
+ "blkverify",
+ "bochs",
+ "cloop",
+ "dmg",
+ "file",
+ "ftp",
+ "ftps",
+ "gluster",
+ "host_cdrom",
+ "host_device",
+ "http",
+ "https",
+ "iscsi",
+ "luks",
+ "nbd",
+ "nfs",
+ "null-aio",
+ "null-co",
+ "parallels",
+ "qcow",
+ "qcow2",
+ "qed",
+ "quorum",
+ "raw",
+ "rbd",
+ "replication",
+ "sheepdog",
+ "ssh",
+ "vdi",
+ "vhdx",
+ "vmdk",
+ "vpc",
+ "vvfat",
+ "vxhs"
+ ]
+ },
+ {
+ "name": "201",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "unmap"
+ ]
+ },
+ {
+ "name": "202",
+ "members": [
+ {
+ "name": "direct",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "203",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "unmap"
+ ]
+ },
+ {
+ "name": "204",
+ "members": [
+ {
+ "name": "image",
+ "type": "293"
+ },
+ {
+ "name": "config",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "align",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-transfer",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opt-write-zero",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-write-zero",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opt-discard",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-discard",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "inject-error",
+ "default": null,
+ "type": "[294]"
+ },
+ {
+ "name": "set-state",
+ "default": null,
+ "type": "[295]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "205",
+ "members": [
+ {
+ "name": "test",
+ "type": "293"
+ },
+ {
+ "name": "raw",
+ "type": "293"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "206",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "207",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "locking",
+ "default": null,
+ "type": "296"
+ },
+ {
+ "name": "aio",
+ "default": null,
+ "type": "297"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "208",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "209",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sslverify",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "210",
+ "members": [
+ {
+ "name": "volume",
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[298]"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "211",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "212",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sslverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cookie-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "213",
+ "members": [
+ {
+ "name": "transport",
+ "type": "299"
+ },
+ {
+ "name": "portal",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "lun",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "initiator-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "header-digest",
+ "default": null,
+ "type": "300"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "214",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "215",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "export",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "216",
+ "members": [
+ {
+ "name": "server",
+ "type": "301"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tcp-syn-count",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "readahead-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "page-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "217",
+ "members": [
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "latency-ns",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "218",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-request",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-snapshot",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-other",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "overlap-check",
+ "default": null,
+ "type": "303"
+ },
+ {
+ "name": "cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "l2-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "refcount-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cache-clean-interval",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "304"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "219",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "305"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "220",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "221",
+ "members": [
+ {
+ "name": "blkverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "children",
+ "type": "[293]"
+ },
+ {
+ "name": "vote-threshold",
+ "type": "int"
+ },
+ {
+ "name": "rewrite-corrupted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "read-pattern",
+ "default": null,
+ "type": "306"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "222",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "223",
+ "members": [
+ {
+ "name": "pool",
+ "type": "str"
+ },
+ {
+ "name": "image",
+ "type": "str"
+ },
+ {
+ "name": "conf",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "[307]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "224",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "mode",
+ "type": "308"
+ },
+ {
+ "name": "top-id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "225",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "vdi",
+ "type": "str"
+ },
+ {
+ "name": "snap-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "226",
+ "members": [
+ {
+ "name": "server",
+ "type": "309"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "227",
+ "members": [
+ {
+ "name": "dir",
+ "type": "str"
+ },
+ {
+ "name": "fat-type",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "floppy",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "label",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "rw",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "228",
+ "members": [
+ {
+ "name": "vdisk-id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "307"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "229",
+ "meta-type": "enum",
+ "values": [
+ "top",
+ "full",
+ "none",
+ "incremental"
+ ]
+ },
+ {
+ "name": "230",
+ "meta-type": "enum",
+ "values": [
+ "retain",
+ "read-only",
+ "read-write"
+ ]
+ },
+ {
+ "name": "231",
+ "meta-type": "enum",
+ "values": [
+ "existing",
+ "absolute-paths"
+ ]
+ },
+ {
+ "name": "232",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "file",
+ "type": "311"
+ },
+ {
+ "case": "serial",
+ "type": "312"
+ },
+ {
+ "case": "parallel",
+ "type": "312"
+ },
+ {
+ "case": "pipe",
+ "type": "312"
+ },
+ {
+ "case": "socket",
+ "type": "313"
+ },
+ {
+ "case": "udp",
+ "type": "314"
+ },
+ {
+ "case": "pty",
+ "type": "315"
+ },
+ {
+ "case": "null",
+ "type": "315"
+ },
+ {
+ "case": "mux",
+ "type": "316"
+ },
+ {
+ "case": "msmouse",
+ "type": "315"
+ },
+ {
+ "case": "wctablet",
+ "type": "315"
+ },
+ {
+ "case": "braille",
+ "type": "315"
+ },
+ {
+ "case": "testdev",
+ "type": "315"
+ },
+ {
+ "case": "stdio",
+ "type": "317"
+ },
+ {
+ "case": "console",
+ "type": "315"
+ },
+ {
+ "case": "spicevmc",
+ "type": "318"
+ },
+ {
+ "case": "spiceport",
+ "type": "319"
+ },
+ {
+ "case": "vc",
+ "type": "320"
+ },
+ {
+ "case": "ringbuf",
+ "type": "321"
+ },
+ {
+ "case": "memory",
+ "type": "321"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "310"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "233",
+ "meta-type": "enum",
+ "values": [
+ "elf",
+ "kdump-zlib",
+ "kdump-lzo",
+ "kdump-snappy"
+ ]
+ },
+ {
+ "name": "[234]",
+ "element-type": "234",
+ "meta-type": "array"
+ },
+ {
+ "name": "234",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "key",
+ "type": "323"
+ },
+ {
+ "case": "btn",
+ "type": "324"
+ },
+ {
+ "case": "rel",
+ "type": "325"
+ },
+ {
+ "case": "abs",
+ "type": "325"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "322"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "235",
+ "members": [
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "number",
+ "json-type": "number",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "236",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "327"
+ },
+ {
+ "case": "unix",
+ "type": "328"
+ },
+ {
+ "case": "vsock",
+ "type": "329"
+ },
+ {
+ "case": "fd",
+ "type": "330"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "326"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "237",
+ "meta-type": "enum",
+ "values": [
+ "DIMM",
+ "CPU"
+ ]
+ },
+ {
+ "name": "238",
+ "meta-type": "enum",
+ "values": [
+ "ok",
+ "failed",
+ "nospace"
+ ]
+ },
+ {
+ "name": "[239]",
+ "element-type": "239",
+ "meta-type": "array"
+ },
+ {
+ "name": "239",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "count",
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "331"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "240",
+ "members": [
+ {
+ "name": "rd_bytes",
+ "type": "int"
+ },
+ {
+ "name": "wr_bytes",
+ "type": "int"
+ },
+ {
+ "name": "rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "rd_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_highest_offset",
+ "type": "int"
+ },
+ {
+ "name": "rd_merged",
+ "type": "int"
+ },
+ {
+ "name": "wr_merged",
+ "type": "int"
+ },
+ {
+ "name": "idle_time_ns",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "failed_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "account_invalid",
+ "type": "bool"
+ },
+ {
+ "name": "account_failed",
+ "type": "bool"
+ },
+ {
+ "name": "timed_stats",
+ "type": "[332]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[241]",
+ "element-type": "241",
+ "meta-type": "array"
+ },
+ {
+ "name": "241",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "333"
+ },
+ {
+ "name": "help",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[str]",
+ "element-type": "str",
+ "meta-type": "array"
+ },
+ {
+ "name": "242",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "243",
+ "meta-type": "enum",
+ "values": [
+ "incompatible",
+ "identical",
+ "superset",
+ "subset"
+ ]
+ },
+ {
+ "name": "244",
+ "meta-type": "enum",
+ "values": [
+ "static",
+ "full"
+ ]
+ },
+ {
+ "name": "245",
+ "members": [
+ {
+ "name": "node-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "socket-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "core-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "246",
+ "meta-type": "enum",
+ "values": [
+ "x86",
+ "sparc",
+ "ppc",
+ "mips",
+ "tricore",
+ "other"
+ ]
+ },
+ {
+ "name": "247",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "248",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ },
+ {
+ "name": "npc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "249",
+ "members": [
+ {
+ "name": "nip",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "250",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "251",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "252",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "253",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "active",
+ "completed",
+ "failed"
+ ]
+ },
+ {
+ "name": "[233]",
+ "element-type": "233",
+ "meta-type": "array"
+ },
+ {
+ "name": "[254]",
+ "element-type": "254",
+ "meta-type": "array"
+ },
+ {
+ "name": "254",
+ "members": [
+ {
+ "name": "fd",
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[int]",
+ "element-type": "int",
+ "meta-type": "array"
+ },
+ {
+ "name": "255",
+ "meta-type": "enum",
+ "values": [
+ "default",
+ "preferred",
+ "bind",
+ "interleave"
+ ]
+ },
+ {
+ "name": "256",
+ "meta-type": "enum",
+ "values": [
+ "dimm"
+ ]
+ },
+ {
+ "name": "257",
+ "members": [
+ {
+ "name": "data",
+ "type": "334"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "258",
+ "members": [
+ {
+ "name": "transferred",
+ "type": "int"
+ },
+ {
+ "name": "remaining",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ },
+ {
+ "name": "duplicate",
+ "type": "int"
+ },
+ {
+ "name": "skipped",
+ "type": "int"
+ },
+ {
+ "name": "normal",
+ "type": "int"
+ },
+ {
+ "name": "normal-bytes",
+ "type": "int"
+ },
+ {
+ "name": "dirty-pages-rate",
+ "type": "int"
+ },
+ {
+ "name": "mbps",
+ "type": "number"
+ },
+ {
+ "name": "dirty-sync-count",
+ "type": "int"
+ },
+ {
+ "name": "postcopy-requests",
+ "type": "int"
+ },
+ {
+ "name": "page-size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "259",
+ "members": [
+ {
+ "name": "cache-size",
+ "type": "int"
+ },
+ {
+ "name": "bytes",
+ "type": "int"
+ },
+ {
+ "name": "pages",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss-rate",
+ "type": "number"
+ },
+ {
+ "name": "overflow",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "260",
+ "meta-type": "enum",
+ "values": [
+ "xbzrle",
+ "rdma-pin-all",
+ "auto-converge",
+ "zero-blocks",
+ "compress",
+ "events",
+ "postcopy-ram",
+ "x-colo",
+ "release-ram",
+ "block",
+ "return-path"
+ ]
+ },
+ {
+ "name": "261",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "type": "str"
+ },
+ {
+ "name": "dirty-flag",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "actual-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "virtual-size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "compressed",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "backing-filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "full-backing-filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-filename-format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshots",
+ "default": null,
+ "type": "[57]"
+ },
+ {
+ "name": "backing-image",
+ "default": null,
+ "type": "261"
+ },
+ {
+ "name": "format-specific",
+ "default": null,
+ "type": "335"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "262",
+ "members": [
+ {
+ "name": "writeback",
+ "type": "bool"
+ },
+ {
+ "name": "direct",
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[263]",
+ "element-type": "263",
+ "meta-type": "array"
+ },
+ {
+ "name": "263",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "function",
+ "type": "int"
+ },
+ {
+ "name": "class_info",
+ "type": "336"
+ },
+ {
+ "name": "id",
+ "type": "337"
+ },
+ {
+ "name": "irq",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "qdev_id",
+ "type": "str"
+ },
+ {
+ "name": "pci_bridge",
+ "default": null,
+ "type": "338"
+ },
+ {
+ "name": "regions",
+ "type": "[339]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "264",
+ "meta-type": "enum",
+ "values": [
+ "builtin",
+ "enum",
+ "array",
+ "object",
+ "alternate",
+ "command",
+ "event"
+ ]
+ },
+ {
+ "name": "265",
+ "members": [
+ {
+ "name": "json-type",
+ "type": "340"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "266",
+ "members": [
+ {
+ "name": "values",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "267",
+ "members": [
+ {
+ "name": "element-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "268",
+ "members": [
+ {
+ "name": "members",
+ "type": "[341]"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "variants",
+ "default": null,
+ "type": "[342]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "269",
+ "members": [
+ {
+ "name": "members",
+ "type": "[343]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "270",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ },
+ {
+ "name": "ret-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "271",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "272",
+ "members": [
+ {
+ "name": "priority",
+ "type": "int"
+ },
+ {
+ "name": "tbl-id",
+ "type": "int"
+ },
+ {
+ "name": "in-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-type",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ip-proto",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-tos",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-dst",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "273",
+ "members": [
+ {
+ "name": "in-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ip-proto",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-tos",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "274",
+ "members": [
+ {
+ "name": "goto-tbl",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-lport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new-vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "out-pport",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "275",
+ "meta-type": "enum",
+ "values": [
+ "half",
+ "full"
+ ]
+ },
+ {
+ "name": "276",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on"
+ ]
+ },
+ {
+ "name": "277",
+ "meta-type": "enum",
+ "values": [
+ "normal",
+ "none",
+ "all"
+ ]
+ },
+ {
+ "name": "278",
+ "meta-type": "enum",
+ "values": [
+ "client",
+ "server",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[194]",
+ "element-type": "194",
+ "meta-type": "array"
+ },
+ {
+ "name": "279",
+ "meta-type": "enum",
+ "values": [
+ "debug",
+ "inmigrate",
+ "internal-error",
+ "io-error",
+ "paused",
+ "postmigrate",
+ "prelaunch",
+ "finish-migrate",
+ "restore-vm",
+ "running",
+ "save-vm",
+ "shutdown",
+ "suspended",
+ "watchdog",
+ "guest-panicked",
+ "colo"
+ ]
+ },
+ {
+ "name": "280",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "passthrough",
+ "type": "345"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "344"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "281",
+ "members": [
+ {
+ "name": "major",
+ "type": "int"
+ },
+ {
+ "name": "minor",
+ "type": "int"
+ },
+ {
+ "name": "micro",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "282",
+ "meta-type": "enum",
+ "values": [
+ "ipv4",
+ "ipv6",
+ "unix",
+ "vsock",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[197]",
+ "element-type": "197",
+ "meta-type": "array"
+ },
+ {
+ "name": "[283]",
+ "element-type": "283",
+ "meta-type": "array"
+ },
+ {
+ "name": "283",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "type": "284"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "285"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "284",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "vnc",
+ "ra2",
+ "ra2ne",
+ "tight",
+ "ultra",
+ "tls",
+ "vencrypt",
+ "sasl"
+ ]
+ },
+ {
+ "name": "285",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "tls-none",
+ "x509-none",
+ "tls-vnc",
+ "x509-vnc",
+ "tls-plain",
+ "x509-plain",
+ "tls-sasl",
+ "x509-sasl"
+ ]
+ },
+ {
+ "name": "286",
+ "meta-type": "enum",
+ "values": [
+ "utf8",
+ "base64"
+ ]
+ },
+ {
+ "name": "[287]",
+ "element-type": "287",
+ "meta-type": "array"
+ },
+ {
+ "name": "287",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "number",
+ "type": "347"
+ },
+ {
+ "case": "qcode",
+ "type": "348"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "346"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "288",
+ "meta-type": "enum",
+ "values": [
+ "unavailable",
+ "disabled",
+ "enabled"
+ ]
+ },
+ {
+ "name": "[289]",
+ "element-type": "289",
+ "meta-type": "array"
+ },
+ {
+ "name": "289",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "abort",
+ "type": "350"
+ },
+ {
+ "case": "block-dirty-bitmap-add",
+ "type": "351"
+ },
+ {
+ "case": "block-dirty-bitmap-clear",
+ "type": "352"
+ },
+ {
+ "case": "blockdev-backup",
+ "type": "353"
+ },
+ {
+ "case": "blockdev-snapshot",
+ "type": "354"
+ },
+ {
+ "case": "blockdev-snapshot-internal-sync",
+ "type": "355"
+ },
+ {
+ "case": "blockdev-snapshot-sync",
+ "type": "356"
+ },
+ {
+ "case": "drive-backup",
+ "type": "357"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "349"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "290",
+ "members": [
+ {
+ "name": "completion-mode",
+ "default": null,
+ "type": "358"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "291",
+ "meta-type": "enum",
+ "values": [
+ "hyper-v"
+ ]
+ },
+ {
+ "name": "292",
+ "members": [
+ {
+ "name": "arg1",
+ "type": "int"
+ },
+ {
+ "name": "arg2",
+ "type": "int"
+ },
+ {
+ "name": "arg3",
+ "type": "int"
+ },
+ {
+ "name": "arg4",
+ "type": "int"
+ },
+ {
+ "name": "arg5",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "293",
+ "members": [
+ {
+ "type": "48"
+ },
+ {
+ "type": "str"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "[294]",
+ "element-type": "294",
+ "meta-type": "array"
+ },
+ {
+ "name": "294",
+ "members": [
+ {
+ "name": "event",
+ "type": "359"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "errno",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "sector",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "once",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "immediately",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[295]",
+ "element-type": "295",
+ "meta-type": "array"
+ },
+ {
+ "name": "295",
+ "members": [
+ {
+ "name": "event",
+ "type": "359"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new_state",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "296",
+ "meta-type": "enum",
+ "values": [
+ "auto",
+ "on",
+ "off"
+ ]
+ },
+ {
+ "name": "297",
+ "meta-type": "enum",
+ "values": [
+ "threads",
+ "native"
+ ]
+ },
+ {
+ "name": "[298]",
+ "element-type": "298",
+ "meta-type": "array"
+ },
+ {
+ "name": "298",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "309"
+ },
+ {
+ "case": "unix",
+ "type": "361"
+ },
+ {
+ "case": "vsock",
+ "type": "362"
+ },
+ {
+ "case": "fd",
+ "type": "363"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "360"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "299",
+ "meta-type": "enum",
+ "values": [
+ "tcp",
+ "iser"
+ ]
+ },
+ {
+ "name": "300",
+ "meta-type": "enum",
+ "values": [
+ "crc32c",
+ "none",
+ "crc32c-none",
+ "none-crc32c"
+ ]
+ },
+ {
+ "name": "301",
+ "members": [
+ {
+ "name": "type",
+ "type": "364"
+ },
+ {
+ "name": "host",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "302",
+ "members": [
+ {
+ "type": "48"
+ },
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "303",
+ "members": [
+ {
+ "type": "365"
+ },
+ {
+ "type": "366"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "304",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "368"
+ },
+ {
+ "case": "luks",
+ "type": "369"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "367"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "305",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "368"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "370"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[293]",
+ "element-type": "293",
+ "meta-type": "array"
+ },
+ {
+ "name": "306",
+ "meta-type": "enum",
+ "values": [
+ "quorum",
+ "fifo"
+ ]
+ },
+ {
+ "name": "[307]",
+ "element-type": "307",
+ "meta-type": "array"
+ },
+ {
+ "name": "307",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "308",
+ "meta-type": "enum",
+ "values": [
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "name": "309",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "numeric",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "to",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ipv4",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "ipv6",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "310",
+ "meta-type": "enum",
+ "values": [
+ "file",
+ "serial",
+ "parallel",
+ "pipe",
+ "socket",
+ "udp",
+ "pty",
+ "null",
+ "mux",
+ "msmouse",
+ "wctablet",
+ "braille",
+ "testdev",
+ "stdio",
+ "console",
+ "spicevmc",
+ "spiceport",
+ "vc",
+ "ringbuf",
+ "memory"
+ ]
+ },
+ {
+ "name": "311",
+ "members": [
+ {
+ "name": "data",
+ "type": "371"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "312",
+ "members": [
+ {
+ "name": "data",
+ "type": "372"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "313",
+ "members": [
+ {
+ "name": "data",
+ "type": "373"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "314",
+ "members": [
+ {
+ "name": "data",
+ "type": "374"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "315",
+ "members": [
+ {
+ "name": "data",
+ "type": "375"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "316",
+ "members": [
+ {
+ "name": "data",
+ "type": "376"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "317",
+ "members": [
+ {
+ "name": "data",
+ "type": "377"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "318",
+ "members": [
+ {
+ "name": "data",
+ "type": "378"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "319",
+ "members": [
+ {
+ "name": "data",
+ "type": "379"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "320",
+ "members": [
+ {
+ "name": "data",
+ "type": "380"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "321",
+ "members": [
+ {
+ "name": "data",
+ "type": "381"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "322",
+ "meta-type": "enum",
+ "values": [
+ "key",
+ "btn",
+ "rel",
+ "abs"
+ ]
+ },
+ {
+ "name": "323",
+ "members": [
+ {
+ "name": "data",
+ "type": "382"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "324",
+ "members": [
+ {
+ "name": "data",
+ "type": "383"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "325",
+ "members": [
+ {
+ "name": "data",
+ "type": "384"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "null",
+ "json-type": "null",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "326",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "327",
+ "members": [
+ {
+ "name": "data",
+ "type": "309"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "328",
+ "members": [
+ {
+ "name": "data",
+ "type": "361"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "329",
+ "members": [
+ {
+ "name": "data",
+ "type": "362"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "330",
+ "members": [
+ {
+ "name": "data",
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "331",
+ "meta-type": "enum",
+ "values": [
+ "active",
+ "disabled",
+ "frozen"
+ ]
+ },
+ {
+ "name": "[332]",
+ "element-type": "332",
+ "meta-type": "array"
+ },
+ {
+ "name": "332",
+ "members": [
+ {
+ "name": "interval_length",
+ "type": "int"
+ },
+ {
+ "name": "min_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_queue_depth",
+ "type": "number"
+ },
+ {
+ "name": "avg_wr_queue_depth",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "333",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "boolean",
+ "number",
+ "size"
+ ]
+ },
+ {
+ "name": "334",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "node",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "type": "str"
+ },
+ {
+ "name": "hotplugged",
+ "type": "bool"
+ },
+ {
+ "name": "hotpluggable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[57]",
+ "element-type": "57",
+ "meta-type": "array"
+ },
+ {
+ "name": "335",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "qcow2",
+ "type": "386"
+ },
+ {
+ "case": "vmdk",
+ "type": "387"
+ },
+ {
+ "case": "luks",
+ "type": "388"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "385"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "336",
+ "members": [
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "class",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "337",
+ "members": [
+ {
+ "name": "device",
+ "type": "int"
+ },
+ {
+ "name": "vendor",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "338",
+ "members": [
+ {
+ "name": "bus",
+ "type": "389"
+ },
+ {
+ "name": "devices",
+ "default": null,
+ "type": "[263]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[339]",
+ "element-type": "339",
+ "meta-type": "array"
+ },
+ {
+ "name": "339",
+ "members": [
+ {
+ "name": "bar",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "address",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "prefetch",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "mem_type_64",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "340",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "number",
+ "int",
+ "boolean",
+ "null",
+ "object",
+ "array",
+ "value"
+ ]
+ },
+ {
+ "name": "[341]",
+ "element-type": "341",
+ "meta-type": "array"
+ },
+ {
+ "name": "341",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[342]",
+ "element-type": "342",
+ "meta-type": "array"
+ },
+ {
+ "name": "342",
+ "members": [
+ {
+ "name": "case",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[343]",
+ "element-type": "343",
+ "meta-type": "array"
+ },
+ {
+ "name": "343",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "344",
+ "meta-type": "enum",
+ "values": [
+ "passthrough"
+ ]
+ },
+ {
+ "name": "345",
+ "members": [
+ {
+ "name": "data",
+ "type": "390"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "346",
+ "meta-type": "enum",
+ "values": [
+ "number",
+ "qcode"
+ ]
+ },
+ {
+ "name": "347",
+ "members": [
+ {
+ "name": "data",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "348",
+ "members": [
+ {
+ "name": "data",
+ "type": "391"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "349",
+ "meta-type": "enum",
+ "values": [
+ "abort",
+ "block-dirty-bitmap-add",
+ "block-dirty-bitmap-clear",
+ "blockdev-backup",
+ "blockdev-snapshot",
+ "blockdev-snapshot-internal-sync",
+ "blockdev-snapshot-sync",
+ "drive-backup"
+ ]
+ },
+ {
+ "name": "350",
+ "members": [
+ {
+ "name": "data",
+ "type": "392"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "351",
+ "members": [
+ {
+ "name": "data",
+ "type": "36"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "352",
+ "members": [
+ {
+ "name": "data",
+ "type": "37"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "353",
+ "members": [
+ {
+ "name": "data",
+ "type": "49"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "354",
+ "members": [
+ {
+ "name": "data",
+ "type": "55"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "355",
+ "members": [
+ {
+ "name": "data",
+ "type": "58"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "356",
+ "members": [
+ {
+ "name": "data",
+ "type": "59"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "357",
+ "members": [
+ {
+ "name": "data",
+ "type": "76"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "358",
+ "meta-type": "enum",
+ "values": [
+ "individual",
+ "grouped"
+ ]
+ },
+ {
+ "name": "359",
+ "meta-type": "enum",
+ "values": [
+ "l1_update",
+ "l1_grow_alloc_table",
+ "l1_grow_write_table",
+ "l1_grow_activate_table",
+ "l2_load",
+ "l2_update",
+ "l2_update_compressed",
+ "l2_alloc_cow_read",
+ "l2_alloc_write",
+ "read_aio",
+ "read_backing_aio",
+ "read_compressed",
+ "write_aio",
+ "write_compressed",
+ "vmstate_load",
+ "vmstate_save",
+ "cow_read",
+ "cow_write",
+ "reftable_load",
+ "reftable_grow",
+ "reftable_update",
+ "refblock_load",
+ "refblock_update",
+ "refblock_update_part",
+ "refblock_alloc",
+ "refblock_alloc_hookup",
+ "refblock_alloc_write",
+ "refblock_alloc_write_blocks",
+ "refblock_alloc_write_table",
+ "refblock_alloc_switch_table",
+ "cluster_alloc",
+ "cluster_alloc_bytes",
+ "cluster_free",
+ "flush_to_os",
+ "flush_to_disk",
+ "pwritev_rmw_head",
+ "pwritev_rmw_after_head",
+ "pwritev_rmw_tail",
+ "pwritev_rmw_after_tail",
+ "pwritev",
+ "pwritev_zero",
+ "pwritev_done",
+ "empty_image_prepare"
+ ]
+ },
+ {
+ "name": "360",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "361",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "362",
+ "members": [
+ {
+ "name": "cid",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "363",
+ "members": [
+ {
+ "name": "str",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "364",
+ "meta-type": "enum",
+ "values": [
+ "inet"
+ ]
+ },
+ {
+ "name": "365",
+ "members": [
+ {
+ "name": "template",
+ "default": null,
+ "type": "366"
+ },
+ {
+ "name": "main-header",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "active-l1",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "active-l2",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-table",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-block",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "snapshot-table",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inactive-l1",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inactive-l2",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "366",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "constant",
+ "cached",
+ "all"
+ ]
+ },
+ {
+ "name": "367",
+ "meta-type": "enum",
+ "values": [
+ "aes",
+ "luks"
+ ]
+ },
+ {
+ "name": "368",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "369",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "370",
+ "meta-type": "enum",
+ "values": [
+ "aes"
+ ]
+ },
+ {
+ "name": "371",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "in",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "out",
+ "type": "str"
+ },
+ {
+ "name": "append",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "372",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "373",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "type": "236"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "wait",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "nodelay",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "telnet",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tn3270",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reconnect",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "374",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "remote",
+ "type": "236"
+ },
+ {
+ "name": "local",
+ "default": null,
+ "type": "236"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "375",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "376",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "377",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "signal",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "378",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "379",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fqdn",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "380",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "width",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "height",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cols",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "rows",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "381",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "382",
+ "members": [
+ {
+ "name": "key",
+ "type": "287"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "383",
+ "members": [
+ {
+ "name": "button",
+ "type": "393"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "384",
+ "members": [
+ {
+ "name": "axis",
+ "type": "394"
+ },
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "385",
+ "meta-type": "enum",
+ "values": [
+ "qcow2",
+ "vmdk",
+ "luks"
+ ]
+ },
+ {
+ "name": "386",
+ "members": [
+ {
+ "name": "data",
+ "type": "395"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "387",
+ "members": [
+ {
+ "name": "data",
+ "type": "396"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "388",
+ "members": [
+ {
+ "name": "data",
+ "type": "397"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "389",
+ "members": [
+ {
+ "name": "number",
+ "type": "int"
+ },
+ {
+ "name": "secondary",
+ "type": "int"
+ },
+ {
+ "name": "subordinate",
+ "type": "int"
+ },
+ {
+ "name": "io_range",
+ "type": "398"
+ },
+ {
+ "name": "memory_range",
+ "type": "398"
+ },
+ {
+ "name": "prefetchable_range",
+ "type": "398"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "390",
+ "members": [
+ {
+ "name": "path",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cancel-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "391",
+ "meta-type": "enum",
+ "values": [
+ "unmapped",
+ "shift",
+ "shift_r",
+ "alt",
+ "alt_r",
+ "ctrl",
+ "ctrl_r",
+ "menu",
+ "esc",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "0",
+ "minus",
+ "equal",
+ "backspace",
+ "tab",
+ "q",
+ "w",
+ "e",
+ "r",
+ "t",
+ "y",
+ "u",
+ "i",
+ "o",
+ "p",
+ "bracket_left",
+ "bracket_right",
+ "ret",
+ "a",
+ "s",
+ "d",
+ "f",
+ "g",
+ "h",
+ "j",
+ "k",
+ "l",
+ "semicolon",
+ "apostrophe",
+ "grave_accent",
+ "backslash",
+ "z",
+ "x",
+ "c",
+ "v",
+ "b",
+ "n",
+ "m",
+ "comma",
+ "dot",
+ "slash",
+ "asterisk",
+ "spc",
+ "caps_lock",
+ "f1",
+ "f2",
+ "f3",
+ "f4",
+ "f5",
+ "f6",
+ "f7",
+ "f8",
+ "f9",
+ "f10",
+ "num_lock",
+ "scroll_lock",
+ "kp_divide",
+ "kp_multiply",
+ "kp_subtract",
+ "kp_add",
+ "kp_enter",
+ "kp_decimal",
+ "sysrq",
+ "kp_0",
+ "kp_1",
+ "kp_2",
+ "kp_3",
+ "kp_4",
+ "kp_5",
+ "kp_6",
+ "kp_7",
+ "kp_8",
+ "kp_9",
+ "less",
+ "f11",
+ "f12",
+ "print",
+ "home",
+ "pgup",
+ "pgdn",
+ "end",
+ "left",
+ "up",
+ "down",
+ "right",
+ "insert",
+ "delete",
+ "stop",
+ "again",
+ "props",
+ "undo",
+ "front",
+ "copy",
+ "open",
+ "paste",
+ "find",
+ "cut",
+ "lf",
+ "help",
+ "meta_l",
+ "meta_r",
+ "compose",
+ "pause",
+ "ro",
+ "hiragana",
+ "henkan",
+ "yen",
+ "kp_comma",
+ "kp_equals",
+ "power",
+ "sleep",
+ "wake",
+ "audionext",
+ "audioprev",
+ "audiostop",
+ "audioplay",
+ "audiomute",
+ "volumeup",
+ "volumedown",
+ "mediaselect",
+ "mail",
+ "calculator",
+ "computer",
+ "ac_home",
+ "ac_back",
+ "ac_forward",
+ "ac_refresh",
+ "ac_bookmarks"
+ ]
+ },
+ {
+ "name": "392",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "393",
+ "meta-type": "enum",
+ "values": [
+ "left",
+ "middle",
+ "right",
+ "wheel-up",
+ "wheel-down",
+ "side",
+ "extra"
+ ]
+ },
+ {
+ "name": "394",
+ "meta-type": "enum",
+ "values": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "name": "395",
+ "members": [
+ {
+ "name": "compat",
+ "type": "str"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "corrupt",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-bits",
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "399"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "396",
+ "members": [
+ {
+ "name": "create-type",
+ "type": "str"
+ },
+ {
+ "name": "cid",
+ "type": "int"
+ },
+ {
+ "name": "parent-cid",
+ "type": "int"
+ },
+ {
+ "name": "extents",
+ "type": "[261]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "397",
+ "members": [
+ {
+ "name": "cipher-alg",
+ "type": "400"
+ },
+ {
+ "name": "cipher-mode",
+ "type": "401"
+ },
+ {
+ "name": "ivgen-alg",
+ "type": "402"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "403"
+ },
+ {
+ "name": "hash-alg",
+ "type": "403"
+ },
+ {
+ "name": "payload-offset",
+ "type": "int"
+ },
+ {
+ "name": "master-key-iters",
+ "type": "int"
+ },
+ {
+ "name": "uuid",
+ "type": "str"
+ },
+ {
+ "name": "slots",
+ "type": "[404]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "398",
+ "members": [
+ {
+ "name": "base",
+ "type": "int"
+ },
+ {
+ "name": "limit",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "399",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "405"
+ },
+ {
+ "case": "luks",
+ "type": "397"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "367"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[261]",
+ "element-type": "261",
+ "meta-type": "array"
+ },
+ {
+ "name": "400",
+ "meta-type": "enum",
+ "values": [
+ "aes-128",
+ "aes-192",
+ "aes-256",
+ "des-rfb",
+ "3des",
+ "cast5-128",
+ "serpent-128",
+ "serpent-192",
+ "serpent-256",
+ "twofish-128",
+ "twofish-192",
+ "twofish-256"
+ ]
+ },
+ {
+ "name": "401",
+ "meta-type": "enum",
+ "values": [
+ "ecb",
+ "cbc",
+ "xts",
+ "ctr"
+ ]
+ },
+ {
+ "name": "402",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "plain64",
+ "essiv"
+ ]
+ },
+ {
+ "name": "403",
+ "meta-type": "enum",
+ "values": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512",
+ "ripemd160"
+ ]
+ },
+ {
+ "name": "[404]",
+ "element-type": "404",
+ "meta-type": "array"
+ },
+ {
+ "name": "404",
+ "members": [
+ {
+ "name": "active",
+ "type": "bool"
+ },
+ {
+ "name": "iters",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "stripes",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "key-offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "405",
+ "members": [
+ ],
+ "meta-type": "object"
+ }
+ ],
+ "id": "libvirt-48"
+}
+
+{
+ "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-49"
+}
+
+{
+ "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-50"
+}
+
+{
+ "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": true,
+ "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-51"
+}
+
+{
+ "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": true,
+ "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-52"
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": [
+ {
+ "name": "max",
+ "typename": "max-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "host",
+ "typename": "host-x86_64-cpu",
+ "unavailable-features": [
+ "kvm"
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "base",
+ "typename": "base-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu64",
+ "typename": "qemu64-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu32",
+ "typename": "qemu32-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "phenom",
+ "typename": "phenom-x86_64-cpu",
+ "unavailable-features": [
+ "fxsr-opt",
+ "npt"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium3",
+ "typename": "pentium3-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium2",
+ "typename": "pentium2-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium",
+ "typename": "pentium-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "n270",
+ "typename": "n270-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "kvm64",
+ "typename": "kvm64-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "kvm32",
+ "typename": "kvm32-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "coreduo",
+ "typename": "coreduo-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "core2duo",
+ "typename": "core2duo-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "athlon",
+ "typename": "athlon-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Westmere",
+ "typename": "Westmere-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Skylake-Server",
+ "typename": "Skylake-Server-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "hle",
+ "avx2",
+ "invpcid",
+ "rtm",
+ "avx512f",
+ "avx512dq",
+ "rdseed",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "3dnowprefetch",
+ "xsavec"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Skylake-Client",
+ "typename": "Skylake-Client-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "hle",
+ "avx2",
+ "invpcid",
+ "rtm",
+ "rdseed",
+ "3dnowprefetch",
+ "xsavec"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "SandyBridge",
+ "typename": "SandyBridge-x86_64-cpu",
+ "unavailable-features": [
+ "x2apic",
+ "tsc-deadline",
+ "avx"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Penryn",
+ "typename": "Penryn-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G5",
+ "typename": "Opteron_G5-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "avx",
+ "f16c",
+ "misalignsse",
+ "3dnowprefetch",
+ "xop",
+ "fma4",
+ "tbm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G4",
+ "typename": "Opteron_G4-x86_64-cpu",
+ "unavailable-features": [
+ "avx",
+ "misalignsse",
+ "3dnowprefetch",
+ "xop",
+ "fma4"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G3",
+ "typename": "Opteron_G3-x86_64-cpu",
+ "unavailable-features": [
+ "misalignsse"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G2",
+ "typename": "Opteron_G2-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G1",
+ "typename": "Opteron_G1-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Nehalem",
+ "typename": "Nehalem-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "IvyBridge",
+ "typename": "IvyBridge-x86_64-cpu",
+ "unavailable-features": [
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Haswell",
+ "typename": "Haswell-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "hle",
+ "avx2",
+ "invpcid",
+ "rtm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Haswell-noTSX",
+ "typename": "Haswell-noTSX-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "avx2",
+ "invpcid"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Conroe",
+ "typename": "Conroe-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Broadwell",
+ "typename": "Broadwell-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "hle",
+ "avx2",
+ "invpcid",
+ "rtm",
+ "rdseed",
+ "3dnowprefetch"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Broadwell-noTSX",
+ "typename": "Broadwell-noTSX-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "avx2",
+ "invpcid",
+ "rdseed",
+ "3dnowprefetch"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "486",
+ "typename": "486-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-2"
+}
+
+{
+ "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": false,
+ "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": false,
+ "cr8legacy": true,
+ "xcrypt-en": false,
+ "pn": false,
+ "dca": false,
+ "vendor": "AuthenticAMD",
+ "pku": true,
+ "smx": false,
+ "cmp-legacy": false,
+ "avx512-4fmaps": false,
+ "vmcb-clean": false,
+ "hle": false,
+ "3dnowext": true,
+ "npt": false,
+ "clwb": true,
+ "lbrv": false,
+ "adx": true,
+ "ss": true,
+ "pni": true,
+ "svm-lock": false,
+ "smep": true,
+ "smap": true,
+ "pfthreshold": false,
+ "x2apic": false,
+ "avx512vbmi": false,
+ "flushbyasid": false,
+ "f16c": false,
+ "ace2-en": false,
+ "pae": true,
+ "pat": true,
+ "sse": true,
+ "phe-en": false,
+ "kvm-nopiodelay": false,
+ "tm": false,
+ "kvmclock-stable-bit": false,
+ "hypervisor": true,
+ "pcommit": true,
+ "syscall": true,
+ "avx512dq": false,
+ "svm": true,
+ "invtsc": false,
+ "sse2": true,
+ "est": false,
+ "avx512ifma": false,
+ "tm2": false,
+ "kvm-pv-eoi": false,
+ "cx8": true,
+ "kvm-mmu": false,
+ "sse4.2": true,
+ "pge": true,
+ "pdcm": false,
+ "model": 6,
+ "movbe": true,
+ "nrip-save": false,
+ "ssse3": true,
+ "sse4a": true,
+ "invpcid": false,
+ "pdpe1gb": true,
+ "tsc-deadline": false,
+ "fma": false,
+ "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": true,
+ "osvw": false,
+ "apic": true,
+ "pmm": false,
+ "tsc-adjust": false,
+ "kvm-steal-time": false,
+ "kvmclock": false,
+ "lwp": false,
+ "xop": false,
+ "avx": false,
+ "ospke": true,
+ "acpi": true,
+ "avx512bw": false,
+ "ace2": false,
+ "fsgsbase": true,
+ "ht": false,
+ "nx": true,
+ "pclmulqdq": true,
+ "mmxext": true,
+ "popcnt": true,
+ "xsaves": false,
+ "lm": true,
+ "umip": false,
+ "pse": true,
+ "avx2": false,
+ "sep": true,
+ "nodeid-msr": false,
+ "misalignsse": false,
+ "min-xlevel": 2147483658,
+ "bmi1": true,
+ "bmi2": true,
+ "kvm-pv-unhalt": false,
+ "tsc-scale": false,
+ "topoext": false,
+ "clflushopt": true,
+ "monitor": true,
+ "avx512er": false,
+ "pmm-en": false,
+ "pcid": false,
+ "3dnow": true,
+ "erms": true,
+ "lahf-lm": true,
+ "fxsr-opt": false,
+ "xstore": false,
+ "rtm": false,
+ "lmce": false,
+ "perfctr-nb": false,
+ "rdrand": false,
+ "rdseed": false,
+ "avx512-4vnniw": false,
+ "vme": false,
+ "vmx": false,
+ "dtes64": false,
+ "mtrr": true,
+ "rdtscp": true,
+ "pse36": true,
+ "tbm": false,
+ "wdt": false,
+ "model-id": "QEMU TCG CPU version 2.5+",
+ "sha-ni": false,
+ "abm": true,
+ "avx512pf": false,
+ "xstore-en": false
+ }
+ }
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "base",
+ "props": {
+ "phys-bits": 0,
+ "core-id": -1,
+ "xlevel": 2147483658,
+ "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": false,
+ "kvm_asyncpf": false,
+ "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": false,
+ "cr8legacy": true,
+ "cpuid-0xb": true,
+ "xcrypt-en": false,
+ "kvm_pv_eoi": false,
+ "apic-id": 4294967295,
+ "pn": false,
+ "dca": false,
+ "vendor": "AuthenticAMD",
+ "pku": true,
+ "smx": false,
+ "cmp-legacy": false,
+ "cmp_legacy": false,
+ "node-id": -1,
+ "avx512-4fmaps": false,
+ "vmcb-clean": false,
+ "vmcb_clean": false,
+ "3dnowext": true,
+ "hle": false,
+ "npt": false,
+ "memory": "/machine/unattached/system[0]",
+ "clwb": true,
+ "lbrv": false,
+ "adx": true,
+ "ss": true,
+ "pni": true,
+ "svm_lock": false,
+ "svm-lock": false,
+ "smep": true,
+ "pfthreshold": false,
+ "smap": true,
+ "x2apic": false,
+ "avx512vbmi": false,
+ "hv-stimer": false,
+ "i64": true,
+ "flushbyasid": false,
+ "f16c": false,
+ "ace2-en": false,
+ "pat": true,
+ "pae": true,
+ "sse": true,
+ "phe-en": false,
+ "kvm-nopiodelay": false,
+ "kvm_nopiodelay": false,
+ "tm": false,
+ "kvmclock-stable-bit": false,
+ "hypervisor": true,
+ "socket-id": -1,
+ "pcommit": true,
+ "syscall": true,
+ "level": 13,
+ "avx512dq": false,
+ "svm": true,
+ "full-cpuid-auto-level": true,
+ "hv-reset": false,
+ "invtsc": false,
+ "sse3": true,
+ "sse2": true,
+ "est": false,
+ "avx512ifma": false,
+ "tm2": false,
+ "kvm-pv-eoi": false,
+ "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": 6,
+ "movbe": true,
+ "nrip-save": false,
+ "nrip_save": false,
+ "sse4a": true,
+ "ssse3": true,
+ "kvm_pv_unhalt": false,
+ "invpcid": false,
+ "pdpe1gb": true,
+ "tsc-deadline": false,
+ "fma": false,
+ "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": true,
+ "osvw": false,
+ "check": true,
+ "hv-spinlocks": -1,
+ "pmm": false,
+ "apic": true,
+ "pmu": false,
+ "min-xlevel2": 0,
+ "tsc-adjust": false,
+ "tsc_adjust": false,
+ "kvm-steal-time": false,
+ "kvm_steal_time": false,
+ "kvmclock": false,
+ "l3-cache": true,
+ "lwp": false,
+ "xop": false,
+ "avx": false,
+ "ospke": true,
+ "ace2": false,
+ "acpi": true,
+ "avx512bw": false,
+ "hv-vapic": false,
+ "fsgsbase": true,
+ "ht": false,
+ "nx": true,
+ "pclmulqdq": true,
+ "mmxext": true,
+ "popcnt": true,
+ "xsaves": false,
+ "tcg-cpuid": true,
+ "lm": true,
+ "umip": false,
+ "avx2": false,
+ "pse": true,
+ "sep": true,
+ "pclmuldq": true,
+ "nodeid-msr": false,
+ "kvm": true,
+ "misalignsse": false,
+ "min-xlevel": 2147483658,
+ "bmi2": true,
+ "bmi1": true,
+ "kvm-pv-unhalt": false,
+ "realized": false,
+ "tsc_scale": false,
+ "tsc-scale": false,
+ "topoext": false,
+ "hv-vpindex": false,
+ "xlevel2": 0,
+ "clflushopt": true,
+ "kvm-no-smi-migration": false,
+ "monitor": true,
+ "avx512er": false,
+ "pmm-en": false,
+ "pcid": false,
+ "3dnow": true,
+ "erms": true,
+ "lahf-lm": true,
+ "lahf_lm": true,
+ "xstore": false,
+ "hv-synic": false,
+ "fxsr-opt": false,
+ "fxsr_opt": false,
+ "rtm": false,
+ "lmce": false,
+ "hv-time": false,
+ "perfctr-nb": false,
+ "perfctr_nb": false,
+ "ffxsr": false,
+ "rdrand": false,
+ "rdseed": false,
+ "avx512-4vnniw": false,
+ "vme": false,
+ "vmx": false,
+ "dtes64": false,
+ "mtrr": true,
+ "rdtscp": true,
+ "pse36": true,
+ "tbm": false,
+ "wdt": false,
+ "pause_filter": false,
+ "model-id": "QEMU TCG CPU version 2.5+",
+ "sha-ni": false,
+ "abm": true,
+ "avx512pf": false,
+ "xstore-en": false
+ }
+ }
+ },
+ "id": "libvirt-4"
+}
+
+{
+ "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": false,
+ "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": false,
+ "cr8legacy": true,
+ "xcrypt-en": false,
+ "pn": false,
+ "dca": false,
+ "vendor": "AuthenticAMD",
+ "pku": true,
+ "smx": false,
+ "cmp-legacy": false,
+ "avx512-4fmaps": false,
+ "vmcb-clean": false,
+ "hle": false,
+ "3dnowext": true,
+ "npt": false,
+ "clwb": true,
+ "lbrv": false,
+ "adx": true,
+ "ss": true,
+ "pni": true,
+ "svm-lock": false,
+ "smep": true,
+ "smap": true,
+ "pfthreshold": false,
+ "x2apic": false,
+ "avx512vbmi": false,
+ "flushbyasid": false,
+ "f16c": false,
+ "ace2-en": false,
+ "pae": true,
+ "pat": true,
+ "sse": true,
+ "phe-en": false,
+ "kvm-nopiodelay": false,
+ "tm": false,
+ "kvmclock-stable-bit": false,
+ "hypervisor": true,
+ "pcommit": true,
+ "syscall": true,
+ "avx512dq": false,
+ "svm": true,
+ "invtsc": false,
+ "sse2": true,
+ "est": false,
+ "avx512ifma": false,
+ "tm2": false,
+ "kvm-pv-eoi": false,
+ "cx8": true,
+ "kvm-mmu": false,
+ "sse4.2": true,
+ "pge": true,
+ "pdcm": false,
+ "model": 6,
+ "movbe": true,
+ "nrip-save": false,
+ "ssse3": true,
+ "sse4a": true,
+ "invpcid": false,
+ "pdpe1gb": true,
+ "tsc-deadline": false,
+ "fma": false,
+ "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": true,
+ "osvw": false,
+ "apic": true,
+ "pmm": false,
+ "tsc-adjust": false,
+ "kvm-steal-time": false,
+ "kvmclock": false,
+ "lwp": false,
+ "xop": false,
+ "avx": false,
+ "ospke": true,
+ "acpi": true,
+ "avx512bw": false,
+ "ace2": false,
+ "fsgsbase": true,
+ "ht": false,
+ "nx": true,
+ "pclmulqdq": true,
+ "mmxext": true,
+ "popcnt": true,
+ "xsaves": false,
+ "lm": true,
+ "umip": false,
+ "pse": true,
+ "avx2": false,
+ "sep": true,
+ "nodeid-msr": false,
+ "misalignsse": false,
+ "min-xlevel": 2147483658,
+ "bmi1": true,
+ "bmi2": true,
+ "kvm-pv-unhalt": false,
+ "tsc-scale": false,
+ "topoext": false,
+ "clflushopt": true,
+ "monitor": true,
+ "avx512er": false,
+ "pmm-en": false,
+ "pcid": false,
+ "3dnow": true,
+ "erms": true,
+ "lahf-lm": true,
+ "fxsr-opt": false,
+ "xstore": false,
+ "rtm": false,
+ "lmce": false,
+ "perfctr-nb": false,
+ "rdrand": false,
+ "rdseed": false,
+ "avx512-4vnniw": false,
+ "vme": false,
+ "vmx": false,
+ "dtes64": false,
+ "mtrr": true,
+ "rdtscp": true,
+ "pse36": true,
+ "tbm": false,
+ "wdt": false,
+ "model-id": "QEMU TCG CPU version 2.5+",
+ "sha-ni": false,
+ "abm": true,
+ "avx512pf": false,
+ "xstore-en": false
+ }
+ }
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "base",
+ "props": {
+ "phys-bits": 0,
+ "core-id": -1,
+ "xlevel": 2147483658,
+ "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": false,
+ "kvm_asyncpf": false,
+ "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": false,
+ "cr8legacy": true,
+ "cpuid-0xb": true,
+ "xcrypt-en": false,
+ "kvm_pv_eoi": false,
+ "apic-id": 4294967295,
+ "pn": false,
+ "dca": false,
+ "vendor": "AuthenticAMD",
+ "pku": true,
+ "smx": false,
+ "cmp-legacy": false,
+ "cmp_legacy": false,
+ "node-id": -1,
+ "avx512-4fmaps": false,
+ "vmcb-clean": false,
+ "vmcb_clean": false,
+ "3dnowext": true,
+ "hle": false,
+ "npt": false,
+ "memory": "/machine/unattached/system[0]",
+ "clwb": true,
+ "lbrv": false,
+ "adx": true,
+ "ss": true,
+ "pni": true,
+ "svm_lock": false,
+ "svm-lock": false,
+ "smep": true,
+ "pfthreshold": false,
+ "smap": true,
+ "x2apic": false,
+ "avx512vbmi": false,
+ "hv-stimer": false,
+ "i64": true,
+ "flushbyasid": false,
+ "f16c": false,
+ "ace2-en": false,
+ "pat": true,
+ "pae": true,
+ "sse": true,
+ "phe-en": false,
+ "kvm-nopiodelay": false,
+ "kvm_nopiodelay": false,
+ "tm": false,
+ "kvmclock-stable-bit": false,
+ "hypervisor": true,
+ "socket-id": -1,
+ "pcommit": true,
+ "syscall": true,
+ "level": 13,
+ "avx512dq": false,
+ "svm": true,
+ "full-cpuid-auto-level": true,
+ "hv-reset": false,
+ "invtsc": false,
+ "sse3": true,
+ "sse2": true,
+ "est": false,
+ "avx512ifma": false,
+ "tm2": false,
+ "kvm-pv-eoi": false,
+ "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": 6,
+ "movbe": true,
+ "nrip-save": false,
+ "nrip_save": false,
+ "sse4a": true,
+ "ssse3": true,
+ "kvm_pv_unhalt": false,
+ "invpcid": false,
+ "pdpe1gb": true,
+ "tsc-deadline": false,
+ "fma": false,
+ "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": true,
+ "osvw": false,
+ "check": true,
+ "hv-spinlocks": -1,
+ "pmm": false,
+ "apic": true,
+ "pmu": false,
+ "min-xlevel2": 0,
+ "tsc-adjust": false,
+ "tsc_adjust": false,
+ "kvm-steal-time": false,
+ "kvm_steal_time": false,
+ "kvmclock": false,
+ "l3-cache": true,
+ "lwp": false,
+ "xop": false,
+ "avx": false,
+ "ospke": true,
+ "ace2": false,
+ "acpi": true,
+ "avx512bw": false,
+ "hv-vapic": false,
+ "fsgsbase": true,
+ "ht": false,
+ "nx": true,
+ "pclmulqdq": true,
+ "mmxext": true,
+ "popcnt": true,
+ "xsaves": false,
+ "tcg-cpuid": true,
+ "lm": true,
+ "umip": false,
+ "avx2": false,
+ "pse": true,
+ "sep": true,
+ "pclmuldq": true,
+ "nodeid-msr": false,
+ "kvm": true,
+ "misalignsse": false,
+ "min-xlevel": 2147483658,
+ "bmi2": true,
+ "bmi1": true,
+ "kvm-pv-unhalt": false,
+ "realized": false,
+ "tsc_scale": false,
+ "tsc-scale": false,
+ "topoext": false,
+ "hv-vpindex": false,
+ "xlevel2": 0,
+ "clflushopt": true,
+ "kvm-no-smi-migration": false,
+ "monitor": true,
+ "avx512er": false,
+ "pmm-en": false,
+ "pcid": false,
+ "3dnow": true,
+ "erms": true,
+ "lahf-lm": true,
+ "lahf_lm": true,
+ "xstore": false,
+ "hv-synic": false,
+ "fxsr-opt": false,
+ "fxsr_opt": false,
+ "rtm": false,
+ "lmce": false,
+ "hv-time": false,
+ "perfctr-nb": false,
+ "perfctr_nb": false,
+ "ffxsr": false,
+ "rdrand": false,
+ "rdseed": false,
+ "avx512-4vnniw": false,
+ "vme": false,
+ "vmx": false,
+ "dtes64": false,
+ "mtrr": true,
+ "rdtscp": true,
+ "pse36": true,
+ "tbm": false,
+ "wdt": false,
+ "pause_filter": false,
+ "model-id": "QEMU TCG CPU version 2.5+",
+ "sha-ni": false,
+ "abm": true,
+ "avx512pf": false,
+ "xstore-en": false
+ }
+ }
+ },
+ "id": "libvirt-6"
+}
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
new file mode 100644
index 0000000..6049211
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
@@ -0,0 +1,798 @@
+<qemuCaps>
+ <qemuctime>0</qemuctime>
+ <selfctime>0</selfctime>
+ <selfvers>0</selfvers>
+ <usedQMP/>
+ <flag name='kvm'/>
+ <flag name='mem-path'/>
+ <flag name='drive-serial'/>
+ <flag name='monitor-json'/>
+ <flag name='sdl'/>
+ <flag name='netdev'/>
+ <flag name='rtc'/>
+ <flag name='vhost-net'/>
+ <flag name='no-hpet'/>
+ <flag name='no-kvm-pit'/>
+ <flag name='pci-configfd'/>
+ <flag name='nodefconfig'/>
+ <flag name='boot-menu'/>
+ <flag name='fsdev'/>
+ <flag name='name-process'/>
+ <flag name='smbios-type'/>
+ <flag name='spice'/>
+ <flag name='vga-none'/>
+ <flag name='boot-index'/>
+ <flag name='hda-duplex'/>
+ <flag name='drive-aio'/>
+ <flag name='pci-bootindex'/>
+ <flag name='ccid-emulated'/>
+ <flag name='ccid-passthru'/>
+ <flag name='chardev-spicevmc'/>
+ <flag name='virtio-tx-alg'/>
+ <flag name='pci-multifunction'/>
+ <flag name='virtio-blk-pci.ioeventfd'/>
+ <flag name='sga'/>
+ <flag name='virtio-blk-pci.event_idx'/>
+ <flag name='virtio-net-pci.event_idx'/>
+ <flag name='cache-directsync'/>
+ <flag name='piix3-usb-uhci'/>
+ <flag name='piix4-usb-uhci'/>
+ <flag name='usb-ehci'/>
+ <flag name='ich9-usb-ehci1'/>
+ <flag name='vt82c686b-usb-uhci'/>
+ <flag name='pci-ohci'/>
+ <flag name='usb-redir'/>
+ <flag name='usb-hub'/>
+ <flag name='no-shutdown'/>
+ <flag name='cache-unsafe'/>
+ <flag name='ich9-ahci'/>
+ <flag name='no-acpi'/>
+ <flag name='fsdev-readonly'/>
+ <flag name='virtio-blk-pci.scsi'/>
+ <flag name='drive-copy-on-read'/>
+ <flag name='fsdev-writeout'/>
+ <flag name='drive-iotune'/>
+ <flag name='system_wakeup'/>
+ <flag name='scsi-disk.channel'/>
+ <flag name='scsi-block'/>
+ <flag name='transaction'/>
+ <flag name='block-job-async'/>
+ <flag name='scsi-cd'/>
+ <flag name='ide-cd'/>
+ <flag name='no-user-config'/>
+ <flag name='hda-micro'/>
+ <flag name='dump-guest-memory'/>
+ <flag name='nec-usb-xhci'/>
+ <flag name='balloon-event'/>
+ <flag name='bridge'/>
+ <flag name='lsi'/>
+ <flag name='virtio-scsi-pci'/>
+ <flag name='blockio'/>
+ <flag name='disable-s3'/>
+ <flag name='disable-s4'/>
+ <flag name='usb-redir.filter'/>
+ <flag name='ide-drive.wwn'/>
+ <flag name='scsi-disk.wwn'/>
+ <flag name='seccomp-sandbox'/>
+ <flag name='reboot-timeout'/>
+ <flag name='dump-guest-core'/>
+ <flag name='seamless-migration'/>
+ <flag name='block-commit'/>
+ <flag name='vnc'/>
+ <flag name='drive-mirror'/>
+ <flag name='usb-redir.bootindex'/>
+ <flag name='usb-host.bootindex'/>
+ <flag name='blockdev-snapshot-sync'/>
+ <flag name='qxl'/>
+ <flag name='VGA'/>
+ <flag name='cirrus-vga'/>
+ <flag name='vmware-svga'/>
+ <flag name='device-video-primary'/>
+ <flag name='usb-serial'/>
+ <flag name='usb-net'/>
+ <flag name='add-fd'/>
+ <flag name='nbd-server'/>
+ <flag name='virtio-rng'/>
+ <flag name='rng-random'/>
+ <flag name='rng-egd'/>
+ <flag name='dtb'/>
+ <flag name='megasas'/>
+ <flag name='ipv6-migration'/>
+ <flag name='machine-opt'/>
+ <flag name='machine-usb-opt'/>
+ <flag name='tpm-passthrough'/>
+ <flag name='tpm-tis'/>
+ <flag name='pci-bridge'/>
+ <flag name='vfio-pci'/>
+ <flag name='vfio-pci.bootindex'/>
+ <flag name='scsi-generic'/>
+ <flag name='scsi-generic.bootindex'/>
+ <flag name='mem-merge'/>
+ <flag name='vnc-websocket'/>
+ <flag name='drive-discard'/>
+ <flag name='mlock'/>
+ <flag name='vnc-share-policy'/>
+ <flag name='device-del-event'/>
+ <flag name='dmi-to-pci-bridge'/>
+ <flag name='i440fx-pci-hole64-size'/>
+ <flag name='q35-pci-hole64-size'/>
+ <flag name='usb-storage'/>
+ <flag name='usb-storage.removable'/>
+ <flag name='virtio-mmio'/>
+ <flag name='ich9-intel-hda'/>
+ <flag name='kvm-pit-lost-tick-policy'/>
+ <flag name='boot-strict'/>
+ <flag name='pvpanic'/>
+ <flag name='spice-file-xfer-disable'/>
+ <flag name='spiceport'/>
+ <flag name='usb-kbd'/>
+ <flag name='host-pci-multidomain'/>
+ <flag name='msg-timestamp'/>
+ <flag name='active-commit'/>
+ <flag name='change-backing-file'/>
+ <flag name='memory-backend-ram'/>
+ <flag name='numa'/>
+ <flag name='memory-backend-file'/>
+ <flag name='usb-audio'/>
+ <flag name='rtc-reset-reinjection'/>
+ <flag name='splash-timeout'/>
+ <flag name='iothread'/>
+ <flag name='migrate-rdma'/>
+ <flag name='ivshmem'/>
+ <flag name='drive-iotune-max'/>
+ <flag name='VGA.vgamem_mb'/>
+ <flag name='vmware-svga.vgamem_mb'/>
+ <flag name='qxl.vgamem_mb'/>
+ <flag name='pc-dimm'/>
+ <flag name='machine-vmport-opt'/>
+ <flag name='aes-key-wrap'/>
+ <flag name='dea-key-wrap'/>
+ <flag name='pci-serial'/>
+ <flag name='vhost-user-multiqueue'/>
+ <flag name='migration-event'/>
+ <flag name='ioh3420'/>
+ <flag name='x3130-upstream'/>
+ <flag name='xio3130-downstream'/>
+ <flag name='rtl8139'/>
+ <flag name='e1000'/>
+ <flag name='virtio-net'/>
+ <flag name='gic-version'/>
+ <flag name='incoming-defer'/>
+ <flag name='virtio-gpu'/>
+ <flag name='virtio-gpu.virgl'/>
+ <flag name='virtio-keyboard'/>
+ <flag name='virtio-mouse'/>
+ <flag name='virtio-tablet'/>
+ <flag name='virtio-input-host'/>
+ <flag name='chardev-file-append'/>
+ <flag name='ich9-disable-s3'/>
+ <flag name='ich9-disable-s4'/>
+ <flag name='vserport-change-event'/>
+ <flag name='virtio-balloon-pci.deflate-on-oom'/>
+ <flag name='mptsas1068'/>
+ <flag name='spice-gl'/>
+ <flag name='qxl.vram64_size_mb'/>
+ <flag name='chardev-logfile'/>
+ <flag name='debug-threads'/>
+ <flag name='secret'/>
+ <flag name='pxb'/>
+ <flag name='pxb-pcie'/>
+ <flag name='device-tray-moved-event'/>
+ <flag name='nec-usb-xhci-ports'/>
+ <flag name='virtio-scsi-pci.iothread'/>
+ <flag name='name-guest'/>
+ <flag name='qxl.max_outputs'/>
+ <flag name='spice-unix'/>
+ <flag name='drive-detect-zeroes'/>
+ <flag name='tls-creds-x509'/>
+ <flag name='display'/>
+ <flag name='intel-iommu'/>
+ <flag name='smm'/>
+ <flag name='virtio-pci-disable-legacy'/>
+ <flag name='query-hotpluggable-cpus'/>
+ <flag name='virtio-net.rx_queue_size'/>
+ <flag name='virtio-vga'/>
+ <flag name='drive-iotune-max-length'/>
+ <flag name='ivshmem-plain'/>
+ <flag name='ivshmem-doorbell'/>
+ <flag name='query-qmp-schema'/>
+ <flag name='gluster.debug_level'/>
+ <flag name='vhost-scsi'/>
+ <flag name='drive-iotune-group'/>
+ <flag name='query-cpu-model-expansion'/>
+ <flag name='virtio-net.host_mtu'/>
+ <flag name='spice-rendernode'/>
+ <flag name='nvdimm'/>
+ <flag name='pcie-root-port'/>
+ <flag name='query-cpu-definitions'/>
+ <flag name='block-write-threshold'/>
+ <flag name='query-named-block-nodes'/>
+ <flag name='cpu-cache'/>
+ <flag name='qemu-xhci'/>
+ <flag name='kernel-irqchip'/>
+ <flag name='kernel-irqchip.split'/>
+ <flag name='intel-iommu.intremap'/>
+ <flag name='intel-iommu.caching-mode'/>
+ <flag name='intel-iommu.eim'/>
+ <flag name='intel-iommu.device-iotlb'/>
+ <flag name='virtio.iommu_platform'/>
+ <flag name='virtio.ats'/>
+ <flag name='loadparm'/>
+ <flag name='vnc-multi-servers'/>
+ <flag name='virtio-net.tx_queue_size'/>
+ <flag name='chardev-reconnect'/>
+ <flag name='virtio-gpu.max_outputs'/>
+ <version>2010000</version>
+ <kvmVersion>0</kvmVersion>
+ <package> (v2.10.0)</package>
+ <arch>x86_64</arch>
+ <hostCPU type='kvm' model='base' migratability='yes'>
+ <property name='phys-bits' type='number' value='0'/>
+ <property name='core-id' type='number' value='-1'/>
+ <property name='xlevel' type='number' value='2147483656'/>
+ <property name='cmov' type='boolean' value='true' migratable='yes'/>
+ <property name='ia64' type='boolean' value='false'/>
+ <property name='aes' type='boolean' value='true' migratable='yes'/>
+ <property name='mmx' type='boolean' value='true' migratable='yes'/>
+ <property name='arat' type='boolean' value='true' migratable='yes'/>
+ <property name='rdpid' type='boolean' value='false'/>
+ <property name='pause-filter' type='boolean' value='false'/>
+ <property name='xsavec' type='boolean' value='false'/>
+ <property name='osxsave' type='boolean' value='false'/>
+ <property name='tsc-frequency' type='number' value='0'/>
+ <property name='xd' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-vendor-id' type='string' value=''/>
+ <property name='kvm-asyncpf' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_asyncpf' type='boolean' value='true' migratable='yes'/>
+ <property name='perfctr_core' type='boolean' value='false'/>
+ <property name='perfctr-core' type='boolean' value='false'/>
+ <property name='mpx' type='boolean' value='false'/>
+ <property name='avx512cd' type='boolean' value='false'/>
+ <property name='decodeassists' type='boolean' value='false'/>
+ <property name='pbe' type='boolean' value='false'/>
+ <property name='sse4_1' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4.1' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4-1' type='boolean' value='true' migratable='yes'/>
+ <property name='family' type='number' value='6'/>
+ <property name='vmware-cpuid-freq' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512f' type='boolean' value='false'/>
+ <property name='xcrypt' type='boolean' value='false'/>
+ <property name='hv-runtime' type='boolean' value='false'/>
+ <property name='msr' type='boolean' value='true' migratable='yes'/>
+ <property name='mce' type='boolean' value='true' migratable='yes'/>
+ <property name='mca' type='boolean' value='true' migratable='yes'/>
+ <property name='thread-id' type='number' value='-1'/>
+ <property name='min-level' type='number' value='13'/>
+ <property name='xgetbv1' type='boolean' value='false'/>
+ <property name='cid' type='boolean' value='false'/>
+ <property name='hv-relaxed' type='boolean' value='false'/>
+ <property name='fxsr' type='boolean' value='true' migratable='yes'/>
+ <property name='ds' type='boolean' value='false'/>
+ <property name='hv-crash' type='boolean' value='false'/>
+ <property name='xsaveopt' type='boolean' value='true' migratable='yes'/>
+ <property name='xtpr' type='boolean' value='false'/>
+ <property name='avx512-vpopcntdq' type='boolean' value='false'/>
+ <property name='phe' type='boolean' value='false'/>
+ <property name='avx512vl' type='boolean' value='false'/>
+ <property name='extapic' type='boolean' value='false'/>
+ <property name='3dnowprefetch' type='boolean' value='false'/>
+ <property name='cr8legacy' type='boolean' value='false'/>
+ <property name='cpuid-0xb' type='boolean' value='true' migratable='yes'/>
+ <property name='xcrypt-en' type='boolean' value='false'/>
+ <property name='kvm_pv_eoi' type='boolean' value='true' migratable='yes'/>
+ <property name='apic-id' type='number' value='4294967295'/>
+ <property name='pn' type='boolean' value='false'/>
+ <property name='dca' type='boolean' value='false'/>
+ <property name='vendor' type='string' value='GenuineIntel'/>
+ <property name='pku' type='boolean' value='false'/>
+ <property name='smx' type='boolean' value='false'/>
+ <property name='cmp-legacy' type='boolean' value='false'/>
+ <property name='cmp_legacy' type='boolean' value='false'/>
+ <property name='node-id' type='number' value='-1'/>
+ <property name='avx512-4fmaps' type='boolean' value='false'/>
+ <property name='vmcb-clean' type='boolean' value='false'/>
+ <property name='vmcb_clean' type='boolean' value='false'/>
+ <property name='3dnowext' type='boolean' value='false'/>
+ <property name='hle' type='boolean' value='false'/>
+ <property name='npt' type='boolean' value='false'/>
+ <property name='memory' type='string' value='/machine/unattached/system[0]'/>
+ <property name='clwb' type='boolean' value='false'/>
+ <property name='lbrv' type='boolean' value='false'/>
+ <property name='adx' type='boolean' value='false'/>
+ <property name='ss' type='boolean' value='true' migratable='yes'/>
+ <property name='pni' type='boolean' value='true' migratable='yes'/>
+ <property name='svm_lock' type='boolean' value='false'/>
+ <property name='svm-lock' type='boolean' value='false'/>
+ <property name='smep' type='boolean' value='true' migratable='yes'/>
+ <property name='pfthreshold' type='boolean' value='false'/>
+ <property name='smap' type='boolean' value='false'/>
+ <property name='x2apic' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512vbmi' type='boolean' value='false'/>
+ <property name='hv-stimer' type='boolean' value='false'/>
+ <property name='i64' type='boolean' value='true' migratable='yes'/>
+ <property name='flushbyasid' type='boolean' value='false'/>
+ <property name='f16c' type='boolean' value='true' migratable='yes'/>
+ <property name='ace2-en' type='boolean' value='false'/>
+ <property name='pat' type='boolean' value='true' migratable='yes'/>
+ <property name='pae' type='boolean' value='true' migratable='yes'/>
+ <property name='sse' type='boolean' value='true' migratable='yes'/>
+ <property name='phe-en' type='boolean' value='false'/>
+ <property name='kvm-nopiodelay' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_nopiodelay' type='boolean' value='true' migratable='yes'/>
+ <property name='tm' type='boolean' value='false'/>
+ <property name='kvmclock-stable-bit' type='boolean' value='true' migratable='yes'/>
+ <property name='hypervisor' type='boolean' value='true' migratable='yes'/>
+ <property name='socket-id' type='number' value='-1'/>
+ <property name='pcommit' type='boolean' value='false'/>
+ <property name='syscall' type='boolean' value='true' migratable='yes'/>
+ <property name='level' type='number' value='13'/>
+ <property name='avx512dq' type='boolean' value='false'/>
+ <property name='svm' type='boolean' value='false'/>
+ <property name='full-cpuid-auto-level' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-reset' type='boolean' value='false'/>
+ <property name='invtsc' type='boolean' value='true' migratable='no'/>
+ <property name='sse3' type='boolean' value='true' migratable='yes'/>
+ <property name='sse2' type='boolean' value='true' migratable='yes'/>
+ <property name='est' type='boolean' value='false'/>
+ <property name='avx512ifma' type='boolean' value='false'/>
+ <property name='tm2' type='boolean' value='false'/>
+ <property name='kvm-pv-eoi' type='boolean' value='true' migratable='yes'/>
+ <property name='cx8' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-mmu' type='boolean' value='false'/>
+ <property name='kvm_mmu' type='boolean' value='false'/>
+ <property name='sse4_2' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4.2' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4-2' type='boolean' value='true' migratable='yes'/>
+ <property name='pge' type='boolean' value='true' migratable='yes'/>
+ <property name='fill-mtrr-mask' type='boolean' value='true' migratable='yes'/>
+ <property name='pdcm' type='boolean' value='false'/>
+ <property name='nodeid_msr' type='boolean' value='false'/>
+ <property name='model' type='number' value='60'/>
+ <property name='movbe' type='boolean' value='true' migratable='yes'/>
+ <property name='nrip-save' type='boolean' value='false'/>
+ <property name='nrip_save' type='boolean' value='false'/>
+ <property name='sse4a' type='boolean' value='false'/>
+ <property name='ssse3' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_pv_unhalt' type='boolean' value='true' migratable='yes'/>
+ <property name='invpcid' type='boolean' value='true' migratable='yes'/>
+ <property name='pdpe1gb' type='boolean' value='true' migratable='yes'/>
+ <property name='tsc-deadline' type='boolean' value='true' migratable='yes'/>
+ <property name='fma' type='boolean' value='true' migratable='yes'/>
+ <property name='cx16' type='boolean' value='true' migratable='yes'/>
+ <property name='de' type='boolean' value='true' migratable='yes'/>
+ <property name='enforce' type='boolean' value='false'/>
+ <property name='stepping' type='number' value='3'/>
+ <property name='xsave' type='boolean' value='true' migratable='yes'/>
+ <property name='clflush' type='boolean' value='true' migratable='yes'/>
+ <property name='skinit' type='boolean' value='false'/>
+ <property name='tce' type='boolean' value='false'/>
+ <property name='tsc' type='boolean' value='true' migratable='yes'/>
+ <property name='fpu' type='boolean' value='true' migratable='yes'/>
+ <property name='ds-cpl' type='boolean' value='false'/>
+ <property name='ds_cpl' type='boolean' value='false'/>
+ <property name='ibs' type='boolean' value='false'/>
+ <property name='host-phys-bits' type='boolean' value='false'/>
+ <property name='fma4' type='boolean' value='false'/>
+ <property name='la57' type='boolean' value='false'/>
+ <property name='osvw' type='boolean' value='false'/>
+ <property name='check' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-spinlocks' type='number' value='-1'/>
+ <property name='pmm' type='boolean' value='false'/>
+ <property name='apic' type='boolean' value='true' migratable='yes'/>
+ <property name='pmu' type='boolean' value='false'/>
+ <property name='min-xlevel2' type='number' value='0'/>
+ <property name='tsc-adjust' type='boolean' value='true' migratable='yes'/>
+ <property name='tsc_adjust' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-steal-time' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_steal_time' type='boolean' value='true' migratable='yes'/>
+ <property name='kvmclock' type='boolean' value='true' migratable='yes'/>
+ <property name='l3-cache' type='boolean' value='true' migratable='yes'/>
+ <property name='lwp' type='boolean' value='false'/>
+ <property name='xop' type='boolean' value='false'/>
+ <property name='avx' type='boolean' value='true' migratable='yes'/>
+ <property name='ospke' type='boolean' value='false'/>
+ <property name='ace2' type='boolean' value='false'/>
+ <property name='acpi' type='boolean' value='false'/>
+ <property name='avx512bw' type='boolean' value='false'/>
+ <property name='hv-vapic' type='boolean' value='false'/>
+ <property name='fsgsbase' type='boolean' value='true' migratable='yes'/>
+ <property name='ht' type='boolean' value='false'/>
+ <property name='nx' type='boolean' value='true' migratable='yes'/>
+ <property name='pclmulqdq' type='boolean' value='true' migratable='yes'/>
+ <property name='mmxext' type='boolean' value='false'/>
+ <property name='popcnt' type='boolean' value='true' migratable='yes'/>
+ <property name='xsaves' type='boolean' value='false'/>
+ <property name='tcg-cpuid' type='boolean' value='true' migratable='yes'/>
+ <property name='lm' type='boolean' value='true' migratable='yes'/>
+ <property name='umip' type='boolean' value='false'/>
+ <property name='avx2' type='boolean' value='true' migratable='yes'/>
+ <property name='pse' type='boolean' value='true' migratable='yes'/>
+ <property name='sep' type='boolean' value='true' migratable='yes'/>
+ <property name='pclmuldq' type='boolean' value='true' migratable='yes'/>
+ <property name='nodeid-msr' type='boolean' value='false'/>
+ <property name='kvm' type='boolean' value='true' migratable='yes'/>
+ <property name='misalignsse' type='boolean' value='false'/>
+ <property name='min-xlevel' type='number' value='2147483656'/>
+ <property name='bmi2' type='boolean' value='true' migratable='yes'/>
+ <property name='bmi1' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-pv-unhalt' type='boolean' value='true' migratable='yes'/>
+ <property name='realized' type='boolean' value='false'/>
+ <property name='tsc_scale' type='boolean' value='false'/>
+ <property name='tsc-scale' type='boolean' value='false'/>
+ <property name='topoext' type='boolean' value='false'/>
+ <property name='hv-vpindex' type='boolean' value='false'/>
+ <property name='xlevel2' type='number' value='0'/>
+ <property name='clflushopt' type='boolean' value='false'/>
+ <property name='kvm-no-smi-migration' type='boolean' value='false'/>
+ <property name='monitor' type='boolean' value='false'/>
+ <property name='avx512er' type='boolean' value='false'/>
+ <property name='pmm-en' type='boolean' value='false'/>
+ <property name='pcid' type='boolean' value='true' migratable='yes'/>
+ <property name='3dnow' type='boolean' value='false'/>
+ <property name='erms' type='boolean' value='true' migratable='yes'/>
+ <property name='lahf-lm' type='boolean' value='true' migratable='yes'/>
+ <property name='lahf_lm' type='boolean' value='true' migratable='yes'/>
+ <property name='xstore' type='boolean' value='false'/>
+ <property name='hv-synic' type='boolean' value='false'/>
+ <property name='fxsr-opt' type='boolean' value='false'/>
+ <property name='fxsr_opt' type='boolean' value='false'/>
+ <property name='rtm' type='boolean' value='false'/>
+ <property name='lmce' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-time' type='boolean' value='false'/>
+ <property name='perfctr-nb' type='boolean' value='false'/>
+ <property name='perfctr_nb' type='boolean' value='false'/>
+ <property name='ffxsr' type='boolean' value='false'/>
+ <property name='rdrand' type='boolean' value='true' migratable='yes'/>
+ <property name='rdseed' type='boolean' value='false'/>
+ <property name='avx512-4vnniw' type='boolean' value='false'/>
+ <property name='vme' type='boolean' value='true' migratable='yes'/>
+ <property name='vmx' type='boolean' value='true' migratable='yes'/>
+ <property name='dtes64' type='boolean' value='false'/>
+ <property name='mtrr' type='boolean' value='true' migratable='yes'/>
+ <property name='rdtscp' type='boolean' value='true' migratable='yes'/>
+ <property name='pse36' type='boolean' value='true' migratable='yes'/>
+ <property name='tbm' type='boolean' value='false'/>
+ <property name='wdt' type='boolean' value='false'/>
+ <property name='pause_filter' type='boolean' value='false'/>
+ <property name='model-id' type='string' value='Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz'/>
+ <property name='sha-ni' type='boolean' value='false'/>
+ <property name='abm' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512pf' type='boolean' value='false'/>
+ <property name='xstore-en' type='boolean' value='false'/>
+ </hostCPU>
+ <hostCPU type='tcg' model='base' migratability='yes'>
+ <property name='phys-bits' type='number' value='0'/>
+ <property name='core-id' type='number' value='-1'/>
+ <property name='xlevel' type='number' value='2147483658'/>
+ <property name='cmov' type='boolean' value='true' migratable='yes'/>
+ <property name='ia64' type='boolean' value='false'/>
+ <property name='aes' type='boolean' value='true' migratable='yes'/>
+ <property name='mmx' type='boolean' value='true' migratable='yes'/>
+ <property name='arat' type='boolean' value='true' migratable='yes'/>
+ <property name='rdpid' type='boolean' value='false'/>
+ <property name='pause-filter' type='boolean' value='false'/>
+ <property name='xsavec' type='boolean' value='false'/>
+ <property name='osxsave' type='boolean' value='false'/>
+ <property name='tsc-frequency' type='number' value='0'/>
+ <property name='xd' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-vendor-id' type='string' value=''/>
+ <property name='kvm-asyncpf' type='boolean' value='false'/>
+ <property name='kvm_asyncpf' type='boolean' value='false'/>
+ <property name='perfctr_core' type='boolean' value='false'/>
+ <property name='perfctr-core' type='boolean' value='false'/>
+ <property name='mpx' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512cd' type='boolean' value='false'/>
+ <property name='decodeassists' type='boolean' value='false'/>
+ <property name='pbe' type='boolean' value='false'/>
+ <property name='sse4_1' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4.1' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4-1' type='boolean' value='true' migratable='yes'/>
+ <property name='family' type='number' value='6'/>
+ <property name='vmware-cpuid-freq' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512f' type='boolean' value='false'/>
+ <property name='xcrypt' type='boolean' value='false'/>
+ <property name='hv-runtime' type='boolean' value='false'/>
+ <property name='msr' type='boolean' value='true' migratable='yes'/>
+ <property name='mce' type='boolean' value='true' migratable='yes'/>
+ <property name='mca' type='boolean' value='true' migratable='yes'/>
+ <property name='thread-id' type='number' value='-1'/>
+ <property name='min-level' type='number' value='13'/>
+ <property name='xgetbv1' type='boolean' value='true' migratable='yes'/>
+ <property name='cid' type='boolean' value='false'/>
+ <property name='hv-relaxed' type='boolean' value='false'/>
+ <property name='fxsr' type='boolean' value='true' migratable='yes'/>
+ <property name='ds' type='boolean' value='false'/>
+ <property name='hv-crash' type='boolean' value='false'/>
+ <property name='xsaveopt' type='boolean' value='true' migratable='yes'/>
+ <property name='xtpr' type='boolean' value='false'/>
+ <property name='avx512-vpopcntdq' type='boolean' value='false'/>
+ <property name='phe' type='boolean' value='false'/>
+ <property name='avx512vl' type='boolean' value='false'/>
+ <property name='extapic' type='boolean' value='false'/>
+ <property name='3dnowprefetch' type='boolean' value='false'/>
+ <property name='cr8legacy' type='boolean' value='true' migratable='yes'/>
+ <property name='cpuid-0xb' type='boolean' value='true' migratable='yes'/>
+ <property name='xcrypt-en' type='boolean' value='false'/>
+ <property name='kvm_pv_eoi' type='boolean' value='false'/>
+ <property name='apic-id' type='number' value='4294967295'/>
+ <property name='pn' type='boolean' value='false'/>
+ <property name='dca' type='boolean' value='false'/>
+ <property name='vendor' type='string' value='AuthenticAMD'/>
+ <property name='pku' type='boolean' value='true' migratable='yes'/>
+ <property name='smx' type='boolean' value='false'/>
+ <property name='cmp-legacy' type='boolean' value='false'/>
+ <property name='cmp_legacy' type='boolean' value='false'/>
+ <property name='node-id' type='number' value='-1'/>
+ <property name='avx512-4fmaps' type='boolean' value='false'/>
+ <property name='vmcb-clean' type='boolean' value='false'/>
+ <property name='vmcb_clean' type='boolean' value='false'/>
+ <property name='3dnowext' type='boolean' value='true' migratable='yes'/>
+ <property name='hle' type='boolean' value='false'/>
+ <property name='npt' type='boolean' value='false'/>
+ <property name='memory' type='string' value='/machine/unattached/system[0]'/>
+ <property name='clwb' type='boolean' value='true' migratable='yes'/>
+ <property name='lbrv' type='boolean' value='false'/>
+ <property name='adx' type='boolean' value='true' migratable='yes'/>
+ <property name='ss' type='boolean' value='true' migratable='yes'/>
+ <property name='pni' type='boolean' value='true' migratable='yes'/>
+ <property name='svm_lock' type='boolean' value='false'/>
+ <property name='svm-lock' type='boolean' value='false'/>
+ <property name='smep' type='boolean' value='true' migratable='yes'/>
+ <property name='pfthreshold' type='boolean' value='false'/>
+ <property name='smap' type='boolean' value='true' migratable='yes'/>
+ <property name='x2apic' type='boolean' value='false'/>
+ <property name='avx512vbmi' type='boolean' value='false'/>
+ <property name='hv-stimer' type='boolean' value='false'/>
+ <property name='i64' type='boolean' value='true' migratable='yes'/>
+ <property name='flushbyasid' type='boolean' value='false'/>
+ <property name='f16c' type='boolean' value='false'/>
+ <property name='ace2-en' type='boolean' value='false'/>
+ <property name='pat' type='boolean' value='true' migratable='yes'/>
+ <property name='pae' type='boolean' value='true' migratable='yes'/>
+ <property name='sse' type='boolean' value='true' migratable='yes'/>
+ <property name='phe-en' type='boolean' value='false'/>
+ <property name='kvm-nopiodelay' type='boolean' value='false'/>
+ <property name='kvm_nopiodelay' type='boolean' value='false'/>
+ <property name='tm' type='boolean' value='false'/>
+ <property name='kvmclock-stable-bit' type='boolean' value='false'/>
+ <property name='hypervisor' type='boolean' value='true' migratable='yes'/>
+ <property name='socket-id' type='number' value='-1'/>
+ <property name='pcommit' type='boolean' value='true' migratable='yes'/>
+ <property name='syscall' type='boolean' value='true' migratable='yes'/>
+ <property name='level' type='number' value='13'/>
+ <property name='avx512dq' type='boolean' value='false'/>
+ <property name='svm' type='boolean' value='true' migratable='yes'/>
+ <property name='full-cpuid-auto-level' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-reset' type='boolean' value='false'/>
+ <property name='invtsc' type='boolean' value='false'/>
+ <property name='sse3' type='boolean' value='true' migratable='yes'/>
+ <property name='sse2' type='boolean' value='true' migratable='yes'/>
+ <property name='est' type='boolean' value='false'/>
+ <property name='avx512ifma' type='boolean' value='false'/>
+ <property name='tm2' type='boolean' value='false'/>
+ <property name='kvm-pv-eoi' type='boolean' value='false'/>
+ <property name='cx8' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-mmu' type='boolean' value='false'/>
+ <property name='kvm_mmu' type='boolean' value='false'/>
+ <property name='sse4_2' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4.2' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4-2' type='boolean' value='true' migratable='yes'/>
+ <property name='pge' type='boolean' value='true' migratable='yes'/>
+ <property name='fill-mtrr-mask' type='boolean' value='true' migratable='yes'/>
+ <property name='pdcm' type='boolean' value='false'/>
+ <property name='nodeid_msr' type='boolean' value='false'/>
+ <property name='model' type='number' value='6'/>
+ <property name='movbe' type='boolean' value='true' migratable='yes'/>
+ <property name='nrip-save' type='boolean' value='false'/>
+ <property name='nrip_save' type='boolean' value='false'/>
+ <property name='sse4a' type='boolean' value='true' migratable='yes'/>
+ <property name='ssse3' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_pv_unhalt' type='boolean' value='false'/>
+ <property name='invpcid' type='boolean' value='false'/>
+ <property name='pdpe1gb' type='boolean' value='true' migratable='yes'/>
+ <property name='tsc-deadline' type='boolean' value='false'/>
+ <property name='fma' type='boolean' value='false'/>
+ <property name='cx16' type='boolean' value='true' migratable='yes'/>
+ <property name='de' type='boolean' value='true' migratable='yes'/>
+ <property name='enforce' type='boolean' value='false'/>
+ <property name='stepping' type='number' value='3'/>
+ <property name='xsave' type='boolean' value='true' migratable='yes'/>
+ <property name='clflush' type='boolean' value='true' migratable='yes'/>
+ <property name='skinit' type='boolean' value='false'/>
+ <property name='tce' type='boolean' value='false'/>
+ <property name='tsc' type='boolean' value='true' migratable='yes'/>
+ <property name='fpu' type='boolean' value='true' migratable='yes'/>
+ <property name='ds-cpl' type='boolean' value='false'/>
+ <property name='ds_cpl' type='boolean' value='false'/>
+ <property name='ibs' type='boolean' value='false'/>
+ <property name='host-phys-bits' type='boolean' value='false'/>
+ <property name='fma4' type='boolean' value='false'/>
+ <property name='la57' type='boolean' value='true' migratable='yes'/>
+ <property name='osvw' type='boolean' value='false'/>
+ <property name='check' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-spinlocks' type='number' value='-1'/>
+ <property name='pmm' type='boolean' value='false'/>
+ <property name='apic' type='boolean' value='true' migratable='yes'/>
+ <property name='pmu' type='boolean' value='false'/>
+ <property name='min-xlevel2' type='number' value='0'/>
+ <property name='tsc-adjust' type='boolean' value='false'/>
+ <property name='tsc_adjust' type='boolean' value='false'/>
+ <property name='kvm-steal-time' type='boolean' value='false'/>
+ <property name='kvm_steal_time' type='boolean' value='false'/>
+ <property name='kvmclock' type='boolean' value='false'/>
+ <property name='l3-cache' type='boolean' value='true' migratable='yes'/>
+ <property name='lwp' type='boolean' value='false'/>
+ <property name='xop' type='boolean' value='false'/>
+ <property name='avx' type='boolean' value='false'/>
+ <property name='ospke' type='boolean' value='true' migratable='yes'/>
+ <property name='ace2' type='boolean' value='false'/>
+ <property name='acpi' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512bw' type='boolean' value='false'/>
+ <property name='hv-vapic' type='boolean' value='false'/>
+ <property name='fsgsbase' type='boolean' value='true' migratable='yes'/>
+ <property name='ht' type='boolean' value='false'/>
+ <property name='nx' type='boolean' value='true' migratable='yes'/>
+ <property name='pclmulqdq' type='boolean' value='true' migratable='yes'/>
+ <property name='mmxext' type='boolean' value='true' migratable='yes'/>
+ <property name='popcnt' type='boolean' value='true' migratable='yes'/>
+ <property name='xsaves' type='boolean' value='false'/>
+ <property name='tcg-cpuid' type='boolean' value='true' migratable='yes'/>
+ <property name='lm' type='boolean' value='true' migratable='yes'/>
+ <property name='umip' type='boolean' value='false'/>
+ <property name='avx2' type='boolean' value='false'/>
+ <property name='pse' type='boolean' value='true' migratable='yes'/>
+ <property name='sep' type='boolean' value='true' migratable='yes'/>
+ <property name='pclmuldq' type='boolean' value='true' migratable='yes'/>
+ <property name='nodeid-msr' type='boolean' value='false'/>
+ <property name='kvm' type='boolean' value='true' migratable='yes'/>
+ <property name='misalignsse' type='boolean' value='false'/>
+ <property name='min-xlevel' type='number' value='2147483658'/>
+ <property name='bmi2' type='boolean' value='true' migratable='yes'/>
+ <property name='bmi1' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-pv-unhalt' type='boolean' value='false'/>
+ <property name='realized' type='boolean' value='false'/>
+ <property name='tsc_scale' type='boolean' value='false'/>
+ <property name='tsc-scale' type='boolean' value='false'/>
+ <property name='topoext' type='boolean' value='false'/>
+ <property name='hv-vpindex' type='boolean' value='false'/>
+ <property name='xlevel2' type='number' value='0'/>
+ <property name='clflushopt' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-no-smi-migration' type='boolean' value='false'/>
+ <property name='monitor' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512er' type='boolean' value='false'/>
+ <property name='pmm-en' type='boolean' value='false'/>
+ <property name='pcid' type='boolean' value='false'/>
+ <property name='3dnow' type='boolean' value='true' migratable='yes'/>
+ <property name='erms' type='boolean' value='true' migratable='yes'/>
+ <property name='lahf-lm' type='boolean' value='true' migratable='yes'/>
+ <property name='lahf_lm' type='boolean' value='true' migratable='yes'/>
+ <property name='xstore' type='boolean' value='false'/>
+ <property name='hv-synic' type='boolean' value='false'/>
+ <property name='fxsr-opt' type='boolean' value='false'/>
+ <property name='fxsr_opt' type='boolean' value='false'/>
+ <property name='rtm' type='boolean' value='false'/>
+ <property name='lmce' type='boolean' value='false'/>
+ <property name='hv-time' type='boolean' value='false'/>
+ <property name='perfctr-nb' type='boolean' value='false'/>
+ <property name='perfctr_nb' type='boolean' value='false'/>
+ <property name='ffxsr' type='boolean' value='false'/>
+ <property name='rdrand' type='boolean' value='false'/>
+ <property name='rdseed' type='boolean' value='false'/>
+ <property name='avx512-4vnniw' type='boolean' value='false'/>
+ <property name='vme' type='boolean' value='false'/>
+ <property name='vmx' type='boolean' value='false'/>
+ <property name='dtes64' type='boolean' value='false'/>
+ <property name='mtrr' type='boolean' value='true' migratable='yes'/>
+ <property name='rdtscp' type='boolean' value='true' migratable='yes'/>
+ <property name='pse36' type='boolean' value='true' migratable='yes'/>
+ <property name='tbm' type='boolean' value='false'/>
+ <property name='wdt' type='boolean' value='false'/>
+ <property name='pause_filter' type='boolean' value='false'/>
+ <property name='model-id' type='string' value='QEMU TCG CPU version 2.5+'/>
+ <property name='sha-ni' type='boolean' value='false'/>
+ <property name='abm' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512pf' type='boolean' value='false'/>
+ <property name='xstore-en' type='boolean' value='false'/>
+ </hostCPU>
+ <cpu type='kvm' name='max' usable='yes'/>
+ <cpu type='kvm' name='host' usable='yes'/>
+ <cpu type='kvm' name='base' usable='yes'/>
+ <cpu type='kvm' name='qemu64' usable='yes'/>
+ <cpu type='kvm' name='qemu32' usable='yes'/>
+ <cpu type='kvm' name='phenom' usable='no'/>
+ <cpu type='kvm' name='pentium3' usable='yes'/>
+ <cpu type='kvm' name='pentium2' usable='yes'/>
+ <cpu type='kvm' name='pentium' usable='yes'/>
+ <cpu type='kvm' name='n270' usable='yes'/>
+ <cpu type='kvm' name='kvm64' usable='yes'/>
+ <cpu type='kvm' name='kvm32' usable='yes'/>
+ <cpu type='kvm' name='coreduo' usable='yes'/>
+ <cpu type='kvm' name='core2duo' usable='yes'/>
+ <cpu type='kvm' name='athlon' usable='no'/>
+ <cpu type='kvm' name='Westmere' usable='yes'/>
+ <cpu type='kvm' name='Skylake-Server' usable='no'/>
+ <cpu type='kvm' name='Skylake-Client' usable='no'/>
+ <cpu type='kvm' name='SandyBridge' usable='yes'/>
+ <cpu type='kvm' name='Penryn' usable='yes'/>
+ <cpu type='kvm' name='Opteron_G5' usable='no'/>
+ <cpu type='kvm' name='Opteron_G4' usable='no'/>
+ <cpu type='kvm' name='Opteron_G3' usable='no'/>
+ <cpu type='kvm' name='Opteron_G2' usable='yes'/>
+ <cpu type='kvm' name='Opteron_G1' usable='yes'/>
+ <cpu type='kvm' name='Nehalem' usable='yes'/>
+ <cpu type='kvm' name='IvyBridge' usable='yes'/>
+ <cpu type='kvm' name='Haswell' usable='no'/>
+ <cpu type='kvm' name='Haswell-noTSX' usable='yes'/>
+ <cpu type='kvm' name='Conroe' usable='yes'/>
+ <cpu type='kvm' name='Broadwell' usable='no'/>
+ <cpu type='kvm' name='Broadwell-noTSX' usable='no'/>
+ <cpu type='kvm' name='486' usable='yes'/>
+ <cpu type='tcg' name='max' usable='yes'/>
+ <cpu type='tcg' name='host' usable='no'/>
+ <cpu type='tcg' name='base' usable='yes'/>
+ <cpu type='tcg' name='qemu64' usable='yes'/>
+ <cpu type='tcg' name='qemu32' usable='yes'/>
+ <cpu type='tcg' name='phenom' usable='no'/>
+ <cpu type='tcg' name='pentium3' usable='yes'/>
+ <cpu type='tcg' name='pentium2' usable='yes'/>
+ <cpu type='tcg' name='pentium' usable='yes'/>
+ <cpu type='tcg' name='n270' usable='yes'/>
+ <cpu type='tcg' name='kvm64' usable='yes'/>
+ <cpu type='tcg' name='kvm32' usable='yes'/>
+ <cpu type='tcg' name='coreduo' usable='yes'/>
+ <cpu type='tcg' name='core2duo' usable='yes'/>
+ <cpu type='tcg' name='athlon' usable='yes'/>
+ <cpu type='tcg' name='Westmere' usable='yes'/>
+ <cpu type='tcg' name='Skylake-Server' usable='no'/>
+ <cpu type='tcg' name='Skylake-Client' usable='no'/>
+ <cpu type='tcg' name='SandyBridge' usable='no'/>
+ <cpu type='tcg' name='Penryn' usable='yes'/>
+ <cpu type='tcg' name='Opteron_G5' usable='no'/>
+ <cpu type='tcg' name='Opteron_G4' usable='no'/>
+ <cpu type='tcg' name='Opteron_G3' usable='no'/>
+ <cpu type='tcg' name='Opteron_G2' usable='yes'/>
+ <cpu type='tcg' name='Opteron_G1' usable='yes'/>
+ <cpu type='tcg' name='Nehalem' usable='yes'/>
+ <cpu type='tcg' name='IvyBridge' usable='no'/>
+ <cpu type='tcg' name='Haswell' usable='no'/>
+ <cpu type='tcg' name='Haswell-noTSX' usable='no'/>
+ <cpu type='tcg' name='Conroe' usable='yes'/>
+ <cpu type='tcg' name='Broadwell' usable='no'/>
+ <cpu type='tcg' name='Broadwell-noTSX' usable='no'/>
+ <cpu type='tcg' name='486' usable='yes'/>
+ <machine name='pc-i440fx-2.10' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-1.3' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.7' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='xenpv' maxCpus='1'/>
+ <machine name='pc-i440fx-1.7' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.8' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.7' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.11' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.3' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.10' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-1.2' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.2' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='isapc' hotplugCpus='yes' maxCpus='1'/>
+ <machine name='pc-q35-2.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='xenfv' hotplugCpus='yes' maxCpus='128'/>
+ <machine name='pc-0.15' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.14' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.9' hotplugCpus='yes' maxCpus='288'/>
+ <machine name='pc-1.1' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.1' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.8' hotplugCpus='yes' maxCpus='288'/>
+ <machine name='pc-1.0' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.0' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.9' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.13' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.10' alias='q35' hotplugCpus='yes' maxCpus='288'/>
+</qemuCaps>
diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c
index 3ae55fc..4115bca 100644
--- a/tests/qemucapabilitiestest.c
+++ b/tests/qemucapabilitiestest.c
@@ -170,6 +170,7 @@ mymain(void)
DO_TEST("x86_64", "caps_2.7.0");
DO_TEST("x86_64", "caps_2.8.0");
DO_TEST("x86_64", "caps_2.9.0");
+ DO_TEST("x86_64", "caps_2.10.0");
DO_TEST("aarch64", "caps_2.6.0-gicv2");
DO_TEST("aarch64", "caps_2.6.0-gicv3");
DO_TEST("ppc64le", "caps_2.6.0");
--
2.9.5
1
1
[libvirt] [PATCH v2 2/2] qemu: add capability checking for qcow2 cache configuration
by Liu Qing 05 Sep '17
by Liu Qing 05 Sep '17
05 Sep '17
Add qemu capabilities QEMU_CAPS_L2_CACHE_SIZE,
QEMU_CAPS_REFCOUNT_CACHE_SIZE, QEMU_CAPS_CACHE_CLEAN_INTERVAL.
Add testing for the above qemu capabilities.
Signed-off-by: Liu Qing <liuqing(a)huayun.com>
---
src/qemu/qemu_capabilities.c | 15 +++++++
src/qemu/qemu_capabilities.h | 3 ++
src/qemu/qemu_command.c | 47 ++++++++++++++++++++--
tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 2 +
tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 3 ++
.../caps_2.6.0-gicv2.aarch64.xml | 3 ++
.../caps_2.6.0-gicv3.aarch64.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 3 ++
...argv-disk-drive-qcow2-cache-clean-interval.args | 27 +++++++++++++
...emuxml2argv-disk-drive-qcow2-l2-cache-size.args | 27 +++++++++++++
...2argv-disk-drive-qcow2-refcount-cache-size.args | 27 +++++++++++++
tests/qemuxml2argvtest.c | 6 +++
20 files changed, 187 insertions(+), 3 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.args
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index e7ea6f4..619735d 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -376,6 +376,8 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"nec-usb-xhci-ports",
"virtio-scsi-pci.iothread",
"name-guest",
+ "l2-cache-size",
+ "refcount-cache-size",
/* 225 */
"qxl.max_outputs",
@@ -418,6 +420,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"query-named-block-nodes",
"cpu-cache",
"qemu-xhci",
+ "cache-clean-interval",
/* 255 */
"kernel-irqchip",
@@ -4753,6 +4756,14 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
if (qemuCaps->version >= 2002000)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_VMPORT_OPT);
+ /* qcow2 l2-cache-size option is supported v2.2.0 onwards */
+ if (qemuCaps->version >= 2002000)
+ virQEMUCapsSet(qemuCaps, QEMU_CAPS_L2_CACHE_SIZE);
+
+ /* qcow2 refcount_cache_size option is supported v2.2.0 onwards */
+ if (qemuCaps->version >= 2002000)
+ virQEMUCapsSet(qemuCaps, QEMU_CAPS_REFCOUNT_CACHE_SIZE);
+
/* -cpu ...,aarch64=off supported in v2.3.0 and onwards. But it
isn't detectable via qmp at this point */
if (qemuCaps->arch == VIR_ARCH_AARCH64 &&
@@ -4772,6 +4783,10 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
if (qemuCaps->version >= 2004050)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACH_VIRT_GIC_VERSION);
+ /* qcow2 cache_clean_interval option is supported v2.5.0 onwards */
+ if (qemuCaps->version >= 2005000)
+ virQEMUCapsSet(qemuCaps, QEMU_CAPS_CACHE_CLEAN_INTERVAL);
+
/* no way to query if -machine kernel_irqchip supports split */
if (qemuCaps->version >= 2006000)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_KERNEL_IRQCHIP_SPLIT);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index f32687d..f1302ee 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -362,6 +362,8 @@ typedef enum {
QEMU_CAPS_NEC_USB_XHCI_PORTS, /* -device nec-usb-xhci.p3 ports setting */
QEMU_CAPS_VIRTIO_SCSI_IOTHREAD, /* virtio-scsi-{pci,ccw}.iothread */
QEMU_CAPS_NAME_GUEST, /* -name guest= */
+ QEMU_CAPS_L2_CACHE_SIZE, /* -drive support qcow2 l2 cache size */
+ QEMU_CAPS_REFCOUNT_CACHE_SIZE, /* -drive support qcow2 refcount cache size */
/* 225 */
QEMU_CAPS_QXL_MAX_OUTPUTS, /* -device qxl,max-outputs= */
@@ -404,6 +406,7 @@ typedef enum {
QEMU_CAPS_QUERY_NAMED_BLOCK_NODES, /* qmp query-named-block-nodes */
QEMU_CAPS_CPU_CACHE, /* -cpu supports host-cache-info and l3-cache properties */
QEMU_CAPS_DEVICE_QEMU_XHCI, /* -device qemu-xhci */
+ QEMU_CAPS_CACHE_CLEAN_INTERVAL, /* -drive qcow2 cache clean interval */
/* 255 */
QEMU_CAPS_MACHINE_KERNEL_IRQCHIP, /* -machine kernel_irqchip */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 7996eed..0ace3ff 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1430,12 +1430,53 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk,
qemuformat = "luks";
virBufferAsprintf(buf, "format=%s,", qemuformat);
}
- if (disk->src->format == VIR_STORAGE_FILE_QCOW2 && disk->src->l2_cache_size > 0)
+ if (disk->src->format == VIR_STORAGE_FILE_QCOW2 &&
+ disk->src->l2_cache_size > 0 &&
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_L2_CACHE_SIZE)) {
virBufferAsprintf(buf, "l2-cache-size=%u,", disk->src->l2_cache_size);
- if (disk->src->format == VIR_STORAGE_FILE_QCOW2 && disk->src->refcount_cache_size > 0)
+ } else if (disk->src->l2_cache_size > 0 &&
+ disk->src->format != VIR_STORAGE_FILE_QCOW2) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("l2-cache-size is supported by QCOW2 format only"));
+ goto cleanup;
+ } else if (disk->src->l2_cache_size > 0 &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_L2_CACHE_SIZE)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("l2-cache-size is not supported by this QEMU"));
+ goto cleanup;
+ }
+
+ if (disk->src->format == VIR_STORAGE_FILE_QCOW2 &&
+ disk->src->refcount_cache_size > 0 &&
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_REFCOUNT_CACHE_SIZE)) {
virBufferAsprintf(buf, "refcount-cache-size=%u,", disk->src->refcount_cache_size);
- if (disk->src->format == VIR_STORAGE_FILE_QCOW2 && disk->src->cache_clean_interval > 0)
+ } else if (disk->src->refcount_cache_size > 0 &&
+ disk->src->format != VIR_STORAGE_FILE_QCOW2) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("refcount-cache-size is supported by QCOW2 format only"));
+ goto cleanup;
+ } else if (disk->src->refcount_cache_size > 0 &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_REFCOUNT_CACHE_SIZE)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("refcount-cache-size is not supported by this QEMU"));
+ goto cleanup;
+ }
+
+ if (disk->src->format == VIR_STORAGE_FILE_QCOW2 &&
+ disk->src->cache_clean_interval > 0 &&
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_CACHE_CLEAN_INTERVAL)) {
virBufferAsprintf(buf, "cache-clean-interval=%u,", disk->src->cache_clean_interval);
+ } else if (disk->src->cache_clean_interval > 0 &&
+ disk->src->format != VIR_STORAGE_FILE_QCOW2) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("cache-clean-interval is supported by QCOW2 format only"));
+ goto cleanup;
+ } else if (disk->src->cache_clean_interval > 0 &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_CACHE_CLEAN_INTERVAL)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("cache-clean-interval is not supported by this QEMU"));
+ goto cleanup;
+ }
ret = 0;
diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
index f97e4cb..e69bef7 100644
--- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
@@ -171,6 +171,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='qxl.max_outputs'/>
<flag name='spice-unix'/>
<flag name='drive-detect-zeroes'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
index 2ba40fc..28fa421 100644
--- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
@@ -175,6 +175,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='qxl.max_outputs'/>
<flag name='spice-unix'/>
<flag name='drive-detect-zeroes'/>
@@ -190,6 +192,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='vnc-multi-servers'/>
<flag name='chardev-reconnect'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml
index 0b34fa3..b7e0121 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml
@@ -153,6 +153,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='drive-detect-zeroes'/>
<flag name='tls-creds-x509'/>
<flag name='display'/>
@@ -167,6 +169,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='vnc-multi-servers'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml
index d41d578..a995e2f 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml
@@ -153,6 +153,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='drive-detect-zeroes'/>
<flag name='tls-creds-x509'/>
<flag name='display'/>
@@ -167,6 +169,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='vnc-multi-servers'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml
index f1c9fc9..59ba6fa 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml
@@ -146,6 +146,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='drive-detect-zeroes'/>
<flag name='tls-creds-x509'/>
<flag name='display'/>
@@ -161,6 +163,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='spapr-pci-host-bridge'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
index bdf006f..064d447 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
@@ -181,6 +181,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='qxl.max_outputs'/>
<flag name='spice-unix'/>
<flag name='drive-detect-zeroes'/>
@@ -199,6 +201,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='vnc-multi-servers'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
index fe7bca9..0eef3c6 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
@@ -115,6 +115,8 @@
<flag name='device-tray-moved-event'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='drive-detect-zeroes'/>
<flag name='tls-creds-x509'/>
<flag name='display'/>
@@ -129,6 +131,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='vnc-multi-servers'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
index 3fd28f0..c391536 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
@@ -181,6 +181,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='qxl.max_outputs'/>
<flag name='spice-unix'/>
<flag name='drive-detect-zeroes'/>
@@ -201,6 +203,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='intel-iommu.intremap'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
index 21bbb82..ada5de5 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
@@ -115,6 +115,8 @@
<flag name='device-tray-moved-event'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='drive-detect-zeroes'/>
<flag name='tls-creds-x509'/>
<flag name='display'/>
@@ -131,6 +133,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='vnc-multi-servers'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
index 761f9d1..61057d9 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
@@ -181,6 +181,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='qxl.max_outputs'/>
<flag name='spice-unix'/>
<flag name='drive-detect-zeroes'/>
@@ -202,6 +204,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='intel-iommu.intremap'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml
index a373a6d..a82b506 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml
@@ -143,6 +143,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='drive-detect-zeroes'/>
<flag name='tls-creds-x509'/>
<flag name='display'/>
@@ -163,6 +165,7 @@
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
<flag name='qemu-xhci'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='virtio.iommu_platform'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
index e80782c..473e95e 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
@@ -113,6 +113,8 @@
<flag name='device-tray-moved-event'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='drive-detect-zeroes'/>
<flag name='tls-creds-x509'/>
<flag name='display'/>
@@ -130,6 +132,7 @@
<flag name='query-cpu-definitions'/>
<flag name='block-write-threshold'/>
<flag name='query-named-block-nodes'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='virtio.iommu_platform'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
index 3641d03..9ac72ca 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
@@ -181,6 +181,8 @@
<flag name='nec-usb-xhci-ports'/>
<flag name='virtio-scsi-pci.iothread'/>
<flag name='name-guest'/>
+ <flag name='l2-cache-size'/>
+ <flag name='refcount-cache-size'/>
<flag name='qxl.max_outputs'/>
<flag name='spice-unix'/>
<flag name='drive-detect-zeroes'/>
@@ -209,6 +211,7 @@
<flag name='query-named-block-nodes'/>
<flag name='cpu-cache'/>
<flag name='qemu-xhci'/>
+ <flag name='cache-clean-interval'/>
<flag name='kernel-irqchip'/>
<flag name='kernel-irqchip.split'/>
<flag name='intel-iommu.intremap'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.args
new file mode 100644
index 0000000..ceaf299
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.args
@@ -0,0 +1,27 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-m 214 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c \
+-usb \
+-drive file=/dev/HostVG/QEMUGuest1,format=qcow2,cache-clean-interval=900,\
+if=none,id=drive-ide0-0-0,cache=none \
+-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
+-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,media=cdrom,\
+id=drive-ide0-1-0,readonly=on \
+-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.args
new file mode 100644
index 0000000..4240477
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.args
@@ -0,0 +1,27 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-m 214 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c \
+-usb \
+-drive file=/dev/HostVG/QEMUGuest1,format=qcow2,l2-cache-size=2097152,if=none,\
+id=drive-ide0-0-0,cache=none \
+-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
+-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,media=cdrom,\
+id=drive-ide0-1-0,readonly=on \
+-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.args b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.args
new file mode 100644
index 0000000..b6ecacf
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.args
@@ -0,0 +1,27 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-m 214 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c \
+-usb \
+-drive file=/dev/HostVG/QEMUGuest1,format=qcow2,refcount-cache-size=524288,\
+if=none,id=drive-ide0-0-0,cache=none \
+-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
+-drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,media=cdrom,\
+id=drive-ide0-1-0,readonly=on \
+-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 18f06e5..608ca18 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -910,6 +910,12 @@ mymain(void)
QEMU_CAPS_DRIVE_CACHE_UNSAFE);
DO_TEST("disk-drive-copy-on-read",
QEMU_CAPS_DRIVE_COPY_ON_READ);
+ DO_TEST("disk-drive-qcow2-l2-cache-size",
+ QEMU_CAPS_L2_CACHE_SIZE);
+ DO_TEST("disk-drive-qcow2-refcount-cache-size",
+ QEMU_CAPS_REFCOUNT_CACHE_SIZE);
+ DO_TEST("disk-drive-qcow2-cache-clean-interval",
+ QEMU_CAPS_CACHE_CLEAN_INTERVAL);
DO_TEST("disk-drive-network-nbd", NONE);
DO_TEST("disk-drive-network-nbd-export", NONE);
DO_TEST("disk-drive-network-nbd-ipv6", NONE);
--
1.8.3.1
2
1
05 Sep '17
Random write IOPS will drop dramatically if qcow2 l2 cache could not
cover the whole disk. This patch gives libvirt user a chance to adjust
the qcow2 cache configuration.
Three new qcow2 driver paramters are added. They are l2-cache-size,
refcount-cache-size and cache-clean-interval.
The following are from qcow2-cache.txt.
The amount of virtual disk that can be mapped by the L2 and refcount
caches (in bytes) is:
disk_size = l2_cache_size * cluster_size / 8
disk_size = refcount_cache_size * cluster_size * 8 / refcount_bits
The parameter "cache-clean-interval" defines an interval (in seconds).
All cache entries that haven't been accessed during that interval are
removed from memory.
Signed-off-by: Liu Qing <liuqing(a)huayun.com>
---
docs/formatdomain.html.in | 21 +++++++++++
docs/schemas/domaincommon.rng | 24 +++++++++++++
src/conf/domain_conf.c | 30 ++++++++++++++++
src/qemu/qemu_command.c | 6 ++++
src/util/virstoragefile.c | 3 ++
src/util/virstoragefile.h | 4 +++
...2argv-disk-drive-qcow2-cache-clean-interval.xml | 37 +++++++++++++++++++
...qemuxml2argv-disk-drive-qcow2-l2-cache-size.xml | 37 +++++++++++++++++++
...l2argv-disk-drive-qcow2-refcount-cache-size.xml | 37 +++++++++++++++++++
...mlout-disk-drive-qcow2-cache-clean-interval.xml | 41 ++++++++++++++++++++++
...muxml2xmlout-disk-drive-qcow2-l2-cache-size.xml | 41 ++++++++++++++++++++++
...xmlout-disk-drive-qcow2-refcount-cache-size.xml | 41 ++++++++++++++++++++++
tests/qemuxml2xmltest.c | 3 ++
13 files changed, 325 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache-clean-interval.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-l2-cache-size.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-refcount-cache-size.xml
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 8ca7637..8f093b5 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -3035,6 +3035,27 @@
<a href="#elementsVirtio">Virtio-specific options</a> can also be
set. (<span class="since">Since 3.5.0</span>)
</li>
+ <li>
+ The optional <code>l2_cache_size</code> attribute controls how much
+ memory will be consumed by qcow2 l2 table cache. This option is
+ only valid when the driver type is qcow2. The default size is 1MB.
+ <span class='since'>Since 3.7.0</span>
+ </li>
+ <li>
+ The optional <code>refcount_cache_size</code> attribute controls
+ how much memory will be consumed by qcow2 reference count table
+ cache. This option is only valid when the driver type is qcow2.
+ The default size is 256KB.
+ <span class='since'>Since 3.7.0</span>
+ </li>
+ <li>
+ The optional <code>cache_clean_interval</code> attribute defines
+ an interval (in seconds). All cache entries that haven't been
+ accessed during that interval are removed from memory. This option
+ is only valid when the driver type is qcow2. The defaut value is 0,
+ which disables this feature.
+ <span class='since'>Since 3.7.0</span>
+ </li>
</ul>
</dd>
<dt><code>backenddomain</code></dt>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 06c5a91..5545179 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1797,6 +1797,15 @@
<ref name="driverIOThread"/>
</optional>
<optional>
+ <ref name="qcow2_l2_cache_size"/>
+ </optional>
+ <optional>
+ <ref name="qcow2_refcount_cache_size"/>
+ </optional>
+ <optional>
+ <ref name="qcow2_cache_clean_interval"/>
+ </optional>
+ <optional>
<ref name="detect_zeroes"/>
</optional>
<ref name="virtioOptions"/>
@@ -1895,6 +1904,21 @@
</choice>
</attribute>
</define>
+ <define name="qcow2_l2_cache_size">
+ <attribute name='l2_cache_size'>
+ <ref name="unsignedInt"/>
+ </attribute>
+ </define>
+ <define name="qcow2_refcount_cache_size">
+ <attribute name='refcount_cache_size'>
+ <ref name="unsignedInt"/>
+ </attribute>
+ </define>
+ <define name="qcow2_cache_clean_interval">
+ <attribute name='cache_clean_interval'>
+ <ref name="unsignedInt"/>
+ </attribute>
+ </define>
<define name="controller">
<element name="controller">
<optional>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f7574d7..f07ab72 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8600,6 +8600,30 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
VIR_FREE(tmp);
}
+ if ((tmp = virXMLPropString(cur, "l2_cache_size")) &&
+ (virStrToLong_ui(tmp, NULL, 10, &def->src->l2_cache_size) < 0)) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("Invalid l2_cache_size attribute in disk driver element: %s"),
+ tmp);
+ goto cleanup;
+ }
+
+ if ((tmp = virXMLPropString(cur, "refcount_cache_size")) &&
+ (virStrToLong_ui(tmp, NULL, 10, &def->src->refcount_cache_size) < 0)) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("Invalid refcount_cache_size attribute in disk driver element: %s"),
+ tmp);
+ goto cleanup;
+ }
+
+ if ((tmp = virXMLPropString(cur, "cache_clean_interval")) &&
+ (virStrToLong_ui(tmp, NULL, 10, &def->src->cache_clean_interval) < 0)) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("Invalid cache_clean_interval attribute in disk driver element: %s"),
+ tmp);
+ goto cleanup;
+ }
+
if ((tmp = virXMLPropString(cur, "detect_zeroes")) &&
(def->detect_zeroes = virDomainDiskDetectZeroesTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
@@ -21897,6 +21921,12 @@ virDomainDiskDefFormat(virBufferPtr buf,
virBufferAsprintf(&driverBuf, " iothread='%u'", def->iothread);
if (def->detect_zeroes)
virBufferAsprintf(&driverBuf, " detect_zeroes='%s'", detect_zeroes);
+ if (def->src->l2_cache_size > 0)
+ virBufferAsprintf(&driverBuf, " l2_cache_size='%u'", def->src->l2_cache_size);
+ if (def->src->refcount_cache_size > 0)
+ virBufferAsprintf(&driverBuf, " refcount_cache_size='%u'", def->src->refcount_cache_size);
+ if (def->src->cache_clean_interval > 0)
+ virBufferAsprintf(&driverBuf, " cache_clean_interval='%u'", def->src->cache_clean_interval);
virDomainVirtioOptionsFormat(&driverBuf, def->virtio);
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 9a27987..7996eed 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1430,6 +1430,12 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk,
qemuformat = "luks";
virBufferAsprintf(buf, "format=%s,", qemuformat);
}
+ if (disk->src->format == VIR_STORAGE_FILE_QCOW2 && disk->src->l2_cache_size > 0)
+ virBufferAsprintf(buf, "l2-cache-size=%u,", disk->src->l2_cache_size);
+ if (disk->src->format == VIR_STORAGE_FILE_QCOW2 && disk->src->refcount_cache_size > 0)
+ virBufferAsprintf(buf, "refcount-cache-size=%u,", disk->src->refcount_cache_size);
+ if (disk->src->format == VIR_STORAGE_FILE_QCOW2 && disk->src->cache_clean_interval > 0)
+ virBufferAsprintf(buf, "cache-clean-interval=%u,", disk->src->cache_clean_interval);
ret = 0;
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index fbc8245..c685331 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -2038,6 +2038,9 @@ virStorageSourceCopy(const virStorageSource *src,
ret->physical = src->physical;
ret->readonly = src->readonly;
ret->shared = src->shared;
+ ret->l2_cache_size = src->l2_cache_size;
+ ret->refcount_cache_size = src->refcount_cache_size;
+ ret->cache_clean_interval = src->cache_clean_interval;
/* storage driver metadata are not copied */
ret->drv = NULL;
diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
index 6c388b1..e7889d9 100644
--- a/src/util/virstoragefile.h
+++ b/src/util/virstoragefile.h
@@ -280,6 +280,10 @@ struct _virStorageSource {
/* metadata that allows identifying given storage source */
char *nodeformat; /* name of the format handler object */
char *nodestorage; /* name of the storage object */
+
+ unsigned l2_cache_size; /* qcow2 l2 cache size */
+ unsigned refcount_cache_size; /* qcow2 reference count table cache size */
+ unsigned cache_clean_interval; /* clean unused cache entries interval */
};
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.xml
new file mode 100644
index 0000000..1c3174d
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.xml
@@ -0,0 +1,37 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i686</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none' cache_clean_interval='900'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdc' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='1' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.xml
new file mode 100644
index 0000000..ebe4c3c
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.xml
@@ -0,0 +1,37 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i686</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none' l2_cache_size='2097152'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdc' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='1' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.xml
new file mode 100644
index 0000000..e8835e2
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.xml
@@ -0,0 +1,37 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i686</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none' refcount_cache_size='524288'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdc' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='1' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'/>
+ <controller type='ide' index='0'/>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache-clean-interval.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache-clean-interval.xml
new file mode 100644
index 0000000..6c1934f
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache-clean-interval.xml
@@ -0,0 +1,41 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i686</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none' cache_clean_interval='900'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdc' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='1' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-l2-cache-size.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-l2-cache-size.xml
new file mode 100644
index 0000000..4da0e4d
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-l2-cache-size.xml
@@ -0,0 +1,41 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i686</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none' l2_cache_size='2097152'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdc' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='1' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-refcount-cache-size.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-refcount-cache-size.xml
new file mode 100644
index 0000000..bda4574
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-refcount-cache-size.xml
@@ -0,0 +1,41 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-i686</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='qcow2' cache='none' refcount_cache_size='524288'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <disk type='block' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdc' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='1' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='ide' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 311b713..a1af6e5 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -461,6 +461,9 @@ mymain(void)
DO_TEST("disk-drive-cache-v2-none", NONE);
DO_TEST("disk-drive-cache-directsync", NONE);
DO_TEST("disk-drive-cache-unsafe", NONE);
+ DO_TEST("disk-drive-qcow2-l2-cache-size", NONE);
+ DO_TEST("disk-drive-qcow2-refcount-cache-size", NONE);
+ DO_TEST("disk-drive-qcow2-cache-clean-interval", NONE);
DO_TEST("disk-drive-network-nbd", NONE);
DO_TEST("disk-drive-network-nbd-export", NONE);
DO_TEST("disk-drive-network-nbd-ipv6", NONE);
--
1.8.3.1
2
1
[libvirt] [PATCH python] Remove unused variables for event callbacks
by Daniel P. Berrange 05 Sep '17
by Daniel P. Berrange 05 Sep '17
05 Sep '17
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
libvirt-override.c | 22 ----------------------
1 file changed, 22 deletions(-)
diff --git a/libvirt-override.c b/libvirt-override.c
index c04ce2e..a3a0508 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -5182,19 +5182,11 @@ libvirt_virConnectDomainEventDeregister(PyObject *self ATTRIBUTE_UNUSED,
* Event Impl
*******************************************/
static PyObject *addHandleObj;
-static char *addHandleName;
static PyObject *updateHandleObj;
-static char *updateHandleName;
static PyObject *removeHandleObj;
-static char *removeHandleName;
static PyObject *addTimeoutObj;
-static char *addTimeoutName;
static PyObject *updateTimeoutObj;
-static char *updateTimeoutName;
static PyObject *removeTimeoutObj;
-static char *removeTimeoutName;
-
-#define NAME(fn) ( fn ## Name ? fn ## Name : # fn )
static int
libvirt_virEventAddHandleFunc(int fd,
@@ -5442,12 +5434,6 @@ libvirt_virEventRegisterImpl(PyObject *self ATTRIBUTE_UNUSED,
Py_XDECREF(addTimeoutObj);
Py_XDECREF(updateTimeoutObj);
Py_XDECREF(removeTimeoutObj);
- VIR_FREE(addHandleName);
- VIR_FREE(updateHandleName);
- VIR_FREE(removeHandleName);
- VIR_FREE(addTimeoutName);
- VIR_FREE(updateTimeoutName);
- VIR_FREE(removeTimeoutName);
/* Parse and check arguments */
if (!PyArg_ParseTuple(args, (char *) "OOOOOO:virEventRegisterImpl",
@@ -5462,14 +5448,6 @@ libvirt_virEventRegisterImpl(PyObject *self ATTRIBUTE_UNUSED,
!PyCallable_Check(removeTimeoutObj))
return NULL;
- /* Get argument string representations (for error reporting) */
- addHandleName = py_str(addHandleObj);
- updateHandleName = py_str(updateHandleObj);
- removeHandleName = py_str(removeHandleObj);
- addTimeoutName = py_str(addTimeoutObj);
- updateTimeoutName = py_str(updateTimeoutObj);
- removeTimeoutName = py_str(removeTimeoutObj);
-
/* Inc refs since we're holding on to these objects until
* the next call (if any) to this function.
*/
--
2.13.5
2
1
[libvirt] [PATCH python] Report an error if registering an event loop twice
by Daniel P. Berrange 05 Sep '17
by Daniel P. Berrange 05 Sep '17
05 Sep '17
The C library will now ignore an attempt to register an event
loop twice. It is unable to report an error in this case though
due to the C API returning 'void'. To improve this we must
manually report an error at the python level.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
libvirt-override.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/libvirt-override.c b/libvirt-override.c
index a3a0508..9eba4ed 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -5427,13 +5427,12 @@ static PyObject *
libvirt_virEventRegisterImpl(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
{
- /* Unref the previously-registered impl (if any) */
- Py_XDECREF(addHandleObj);
- Py_XDECREF(updateHandleObj);
- Py_XDECREF(removeHandleObj);
- Py_XDECREF(addTimeoutObj);
- Py_XDECREF(updateTimeoutObj);
- Py_XDECREF(removeTimeoutObj);
+ if (addHandleObj || updateHandleObj || removeHandleObj ||
+ addTimeoutObj || updateTimeoutObj || removeTimeoutObj) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "Event loop is already registered");
+ return NULL;
+ }
/* Parse and check arguments */
if (!PyArg_ParseTuple(args, (char *) "OOOOOO:virEventRegisterImpl",
--
2.13.5
2
1
[libvirt] [PATCH] maint: Fix incorrect parenthesis placement causing true/false assignment
by Erik Skultety 05 Sep '17
by Erik Skultety 05 Sep '17
05 Sep '17
There were a few places in our code where the following pattern in 'if'
condition occurred:
if ((foo = bar() < 0))
do something;
This patch adjusts the conditions to the expected format:
if ((foo = bar()) < 0)
do something;
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1488192
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
This can be especially "fun" if you try to assign multiple RNG devices to a
domain and then try to hot-unplug any of them but the first. Anyhow I used the
regex below to find these, I haven't spent much time tuning in, so in case
you can come up with a better one that yields more results like these I'm all
ears :).
[[:alnum:]_]+ = [[:print:]]+[^)]) < 0))
daemon/admin.c | 2 +-
src/locking/lock_daemon.c | 2 +-
src/locking/lock_driver_sanlock.c | 2 +-
src/qemu/qemu_hotplug.c | 2 +-
tests/virnettlshelpers.c | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/daemon/admin.c b/daemon/admin.c
index c5678bb99..baf310c7b 100644
--- a/daemon/admin.c
+++ b/daemon/admin.c
@@ -446,7 +446,7 @@ adminDispatchConnectGetLoggingOutputs(virNetServerPtr server ATTRIBUTE_UNUSED,
char *outputs = NULL;
int noutputs = 0;
- if ((noutputs = adminConnectGetLoggingOutputs(&outputs, args->flags) < 0)) {
+ if ((noutputs = adminConnectGetLoggingOutputs(&outputs, args->flags)) < 0) {
virNetMessageSaveError(rerr);
return -1;
}
diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c
index 6fbbf4b3d..fe3eaf903 100644
--- a/src/locking/lock_daemon.c
+++ b/src/locking/lock_daemon.c
@@ -1310,7 +1310,7 @@ int main(int argc, char **argv) {
}
srv = virNetDaemonGetServer(lockDaemon->dmn, "virtlockd");
- if ((rv = virLockDaemonSetupNetworkingSystemD(srv) < 0)) {
+ if ((rv = virLockDaemonSetupNetworkingSystemD(srv)) < 0) {
ret = VIR_LOCK_DAEMON_ERR_NETWORK;
goto cleanup;
}
diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c
index b5e69c472..7513df4d7 100644
--- a/src/locking/lock_driver_sanlock.c
+++ b/src/locking/lock_driver_sanlock.c
@@ -313,7 +313,7 @@ virLockManagerSanlockSetupLockspace(virLockManagerSanlockDriverPtr driver)
goto error_unlink;
}
- if ((rv = virLockManagerSanlockInitLockspace(driver, &ls) < 0)) {
+ if ((rv = virLockManagerSanlockInitLockspace(driver, &ls)) < 0) {
char *err = NULL;
if (virLockManagerSanlockError(rv, &err)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 9611df517..b365078ec 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -5270,7 +5270,7 @@ qemuDomainDetachRNGDevice(virQEMUDriverPtr driver,
int rc;
int ret = -1;
- if ((idx = virDomainRNGFind(vm->def, rng) < 0)) {
+ if ((idx = virDomainRNGFind(vm->def, rng)) < 0) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("device not present in domain configuration"));
return -1;
diff --git a/tests/virnettlshelpers.c b/tests/virnettlshelpers.c
index b735c4e2f..f66205ef7 100644
--- a/tests/virnettlshelpers.c
+++ b/tests/virnettlshelpers.c
@@ -424,7 +424,7 @@ void testTLSWriteCertChain(const char *filename,
for (i = 0; i < ncerts; i++) {
size = sizeof(buffer);
- if ((err = gnutls_x509_crt_export(certs[i], GNUTLS_X509_FMT_PEM, buffer, &size) < 0)) {
+ if ((err = gnutls_x509_crt_export(certs[i], GNUTLS_X509_FMT_PEM, buffer, &size)) < 0) {
VIR_WARN("Failed to export certificate %s", gnutls_strerror(err));
unlink(filename);
abort();
--
2.13.3
3
3
04 Sep '17
According to the comments in the file and the git history, the
list of forbidden symbols was originally built against Fedora 9
in 2009 (!) and pretty much never refreshed afterwards.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
I didn't put too much thought into this, but the results looks
sane enough as we are only *adding* to the list.
Makefile.nonreentrant | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/Makefile.nonreentrant b/Makefile.nonreentrant
index 5cc64c0d5..a83298322 100644
--- a/Makefile.nonreentrant
+++ b/Makefile.nonreentrant
@@ -15,9 +15,9 @@
## <http://www.gnu.org/licenses/>.
#
-# Generated by running the following on Fedora 9:
+# Generated by running the following on Fedora 26:
#
-# nm -D --defined-only /lib/libc.so.6 \
+# nm -D --defined-only /lib64/libc.so.6 \
# | grep '_r$' \
# | awk '{print $3}' \
# | grep -v __ \
@@ -43,6 +43,7 @@ NON_REENTRANT += ether_ntoa
NON_REENTRANT += fcvt
NON_REENTRANT += fgetgrent
NON_REENTRANT += fgetpwent
+NON_REENTRANT += fgetsgent
NON_REENTRANT += fgetspent
NON_REENTRANT += getaliasbyname
NON_REENTRANT += getaliasent
@@ -72,6 +73,8 @@ NON_REENTRANT += getrpcent
NON_REENTRANT += getservbyname
NON_REENTRANT += getservbyport
NON_REENTRANT += getservent
+NON_REENTRANT += getsgent
+NON_REENTRANT += getsgnam
NON_REENTRANT += getspent
NON_REENTRANT += getspnam
NON_REENTRANT += getutent
@@ -95,6 +98,7 @@ NON_REENTRANT += random
NON_REENTRANT += rand
NON_REENTRANT += seed48
NON_REENTRANT += setstate
+NON_REENTRANT += sgetsgent
NON_REENTRANT += sgetspent
NON_REENTRANT += srand48
NON_REENTRANT += srandom
--
2.13.5
2
1
Suggested-by: Martin Kletzander <mkletzan(a)redhat.com>
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
I would push this as trivial, but I feel like someone might not be
okay with touching the release notes for libvirt versions that are
already out. I think in this case it's perfectly justified, but if
you disagree this is your chance to point it out :)
docs/internals/rpc.html.in | 2 +-
docs/news.xml | 2 +-
src/libxl/libxl.conf | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/internals/rpc.html.in b/docs/internals/rpc.html.in
index 45c07cb61..fca9cb784 100644
--- a/docs/internals/rpc.html.in
+++ b/docs/internals/rpc.html.in
@@ -534,7 +534,7 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply)
<dt><code>virNetDaemonPtr</code> (virnetdaemon.h)</dt>
<dd>The virNetDaemon APIs are used to manage a daemon process. A
- deamon is a process that might expose one or more servers. It
+ daemon is a process that might expose one or more servers. It
handles most process-related details, network-related should
be part of the underlying server.
</dd>
diff --git a/docs/news.xml b/docs/news.xml
index 452711717..483f9d6d1 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -195,7 +195,7 @@
Fix --verbose option for all daemons
</summary>
<description>
- Since v3.0.0, the option had been ignored by all libvirt deamons
+ Since v3.0.0, the option had been ignored by all libvirt daemons
(<code>libvirtd</code>, <code>virtlogd</code> and
<code>virtlockd</code>); it's now working as intended once again.
</description>
diff --git a/src/libxl/libxl.conf b/src/libxl/libxl.conf
index 5c9bdaac2..264af7cf9 100644
--- a/src/libxl/libxl.conf
+++ b/src/libxl/libxl.conf
@@ -28,7 +28,7 @@
# is sent to the daemon after keepalive_interval seconds of inactivity
# to check if the daemon is still responding; keepalive_count is a
# maximum number of keepalive messages that are allowed to be sent to
-# the deamon without getting any response before the connection is
+# the daemon without getting any response before the connection is
# considered broken. In other words, the connection is automatically
# closed after approximately keepalive_interval * (keepalive_count + 1)
# seconds since the last message was received from the daemon. If
--
2.13.5
2
1
This fixes the last issue preventing qemu:///system spice GL from working
out of the box: chown'ing the rendernode path so we have permissions
to open it.
We skip this if mount namespaces are disabled, so the chown'ing won't
interfere with other rendernode users on the host.
https://bugzilla.redhat.com/show_bug.cgi?id=1460804
v2:
Add the MOUNT_NAMESPACE handling
Drop DAC restore of rendernode
Cole Robinson (2):
security: add MANAGER_MOUNT_NAMESPACE flag
security: dac: relabel spice rendernode
src/qemu/qemu_driver.c | 2 ++
src/security/security_dac.c | 68 +++++++++++++++++++++++++++++++++++++++++
src/security/security_dac.h | 3 ++
src/security/security_manager.c | 4 ++-
src/security/security_manager.h | 1 +
5 files changed, 77 insertions(+), 1 deletion(-)
--
2.13.5
2
3
04 Sep '17
The libxslt package is needed since:
commit 94d2d6429d686c5af95115d09c01f3c6bd5ea7c6
Author: Daniel P. Berrange <berrange(a)redhat.com>
Date: Wed Jul 26 17:40:44 2017 +0100
docs: make xmllint & xsltproc compulsory
The native RPM had it already, but mingw build was missing it.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
Pushed as a build breaker & trivial fix
mingw-libvirt.spec.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index 6b0ce0bf5..dc18d055b 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -60,6 +60,7 @@ BuildRequires: mingw64-dlfcn
BuildRequires: pkgconfig
# Need native version for msgfmt
BuildRequires: gettext
+BuildRequires: libxslt
BuildRequires: python
%if 0%{?fedora} >= 27
BuildRequires: perl-interpreter
--
2.13.5
1
0
I pushed the final version earlier today, it is tagged in git and
I made available sigend tarball and rpms at the usual place:
ftp://libvirt.org/libvirt/
I also rolled out the 3.7.0 version of libvirt-python bindings, those are
available from:
ftp://libvirt.org/libvirt/python/
This is a balanced release with new features available from virsh command
line and API, as well a general improvements and a fair amount of bug fixes:
* New features
- qemu: Add managedsave-edit commands
Using managedsave-dumpxml, managedsave-define and managedsave-edit
commands, now we can dump and edit the XML configuration of domain
which has managedsave image.
- qemu: Add migrate-getmaxdowntime command
Currently, the maximum tolerable downtime for a domain being migrated
is write-only from libvirt, via migrate-setmaxdowntime. This implements
a complementary migrate-getmaxdowntime command
- bhyve: Support autoport for VNC ports
It's no longer necessary to explicitly specify VNC port for the bhyve
guests. With the autoport feature it will be allocated automatically.
Please refer to the bhyve driver documentation for examples.
- qemu: Added support for setting heads of virtio GPU
- qemu: Added support to configure reconnect timeout for chardev devices
When you have a TCP or UNIX chardev device and it's connected somewhere
you can configure reconnect timeout if the connection is closed.
* Improvements
- qemu: Report a clear error when dropping a VM during startup
"Failed to load config for domain 'DOMNAME'" is now reported if a VM
config can't be parsed for some reason, and thus provides a clear
indication for users (and devs).
- apparmor: Update for QEMU 2.10 compatibility
Starting with QEMU 2.10, disk images and NVRAM files get automatically
locked to prevent them from being corrupted; however, file locking
needs to be explicitly allowed through virt-aa-helper or AppArmor will
reject the requests and the guest will not be able to run.
- virsh: List Unix sockets in 'domdisplay' output
VNC and SPICE graphics can use Unix sockets instead of TCP/IP sockets
as connection endpoints, but such a configuration was not handled
correctly by virsh domdisplay, causing the respective endpoints to be
missing from the output.
- qemu: Don't check whether offline migration is safe
Since offline migration only copies the guest definition to the
destination host, data corruption is not a concern and the operation
can always be performed safely.
- virt-host-validate: Fix IOMMU detection on ppc64
* Bug fixes
- qemu: Better support for international domain names (with wide
characters)
There were some issues with multi-byte domains getting lost on daemon
restart due to truncation, so the code now handles multi-byte names a
bit better.
- qemu: Support long domain names with namespaces
Domains with extremely long names would fail to start due to temporary
namespace paths being created with the whole name. The path is now
generated with shortened name instead.
- qemu: Tolerate missing emulator binary during libvirtd restart
For some time libvirt required qemu capabilities being present when
parsing VM configs during startup. As a side effect VM configs would
fail to parse and thus vanish, if the emulator binary would be
uninstalled or broken. Libvirt now tolerates when capabilities are
missing during startup.
- qemu: Prevent pSeries guests from disappearing in some situations
pSeries guest would disappear if any of the host devices they were
configured to use was not available during libvirtd startup, which
could easily happen for SR-IOV Virtual Functions. This scenario is now
handled correctly.
- qemu: Honor <on_reboot/> setting
The setting was accepted by the parser, but not actually implemented.
- Fix --verbose option for all daemons
Since v3.0.0, the option had been ignored by all libvirt deamons
(libvirtd, virtlogd and virtlockd); it's now working as intended once
again.
Thanks everybody for your help with this release, be it with code, patches,
review, documentation, but reports, etc ...
Enjoy this release !
Daniel
--
Daniel Veillard | Red Hat Developers Tools http://developer.redhat.com/
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
1
0
[libvirt] [PATCH v2] vmx: Expose VMware Managed Object Reference (moref) in
by Richard W.M. Jones 04 Sep '17
by Richard W.M. Jones 04 Sep '17
04 Sep '17
v1 -> v2:
- Implemented all the review recommendations.
I didn't add a test. Is it even possible to test this without a
VMware server?
I did however test it myself with a real server and it works as
expected for me.
Rich.
2
2
[libvirt] [PATCH] event: ignore attempts to replace the event loop impl
by Daniel P. Berrange 04 Sep '17
by Daniel P. Berrange 04 Sep '17
04 Sep '17
Although not previously explicitly documented, the expectation for
the libvirt event loop is that an implementation is registered early
in application startup, before calling any libvirt APIs and then
run forever after. Replacing a previously registered event loop is
not safe & subject to races even if virConnectClose has been called
on open handles, due to delayed deregistration of callbacks during
conenction close.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/util/virevent.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/src/util/virevent.c b/src/util/virevent.c
index e0fd35e41..51d8714df 100644
--- a/src/util/virevent.c
+++ b/src/util/virevent.c
@@ -220,6 +220,13 @@ virEventRemoveTimeout(int timer)
* existing event loop implementation, then the
* virEventRegisterDefaultImpl() method can be used to setup
* the generic libvirt implementation.
+ *
+ * Once registered, the event loop implementation cannot be
+ * changed, and must be run continuously. Note that callbacks
+ * may remain registered for a short time even after calling
+ * virConnectClose on all open connections, so it is not safe
+ * to stop running the event loop immediately after closing
+ * the connection.
*/
void virEventRegisterImpl(virEventAddHandleFunc addHandle,
virEventUpdateHandleFunc updateHandle,
@@ -233,6 +240,12 @@ void virEventRegisterImpl(virEventAddHandleFunc addHandle,
addHandle, updateHandle, removeHandle,
addTimeout, updateTimeout, removeTimeout);
+ if (addHandleImpl || updateHandleImpl || removeHandleImpl ||
+ addTimeoutImpl || updateTimeoutImpl || removeHandleImpl) {
+ VIR_WARN("Ignoring attempt to replace registered event loop");
+ return;
+ }
+
addHandleImpl = addHandle;
updateHandleImpl = updateHandle;
removeHandleImpl = removeHandle;
--
2.13.5
2
1
[libvirt] [PATCH] docs: Remove <code> from <summary> entries due to RNG error
by John Ferlan 04 Sep '17
by John Ferlan 04 Sep '17
04 Sep '17
commit '96e55048' caused make check failure for virschematest:
1929) Checking ../docs/news.xml against ../news.rng ... libvirt: XML Util error : XML document failed to validate against schema: Unable to validate doc against /home/jferlan/git/libvirt.work/docs/schemas/../news.rng
Datatype element summary has child elements
Element summary failed to validate content
Datatype element summary has child elements
Element summary failed to validate content
^[[31m^[[1mFAILED^[[0m
That's because <code> elements don't appear to be allowed in the schema.
Rather than attempt to fix the schema, figured it was simpler to just
remove them and let the schema fix happen later.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Pushed as build breaker.
docs/news.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/news.xml b/docs/news.xml
index 7e9395b..dd2e653 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -176,7 +176,7 @@
</change>
<change>
<summary>
- qemu: Honor <code><on_reboot/></code> setting
+ qemu: Honor <on_reboot/> setting
</summary>
<description>
The setting was accepted by the parser, but not actually implemented.
@@ -184,7 +184,7 @@
</change>
<change>
<summary>
- Fix <code>--verbose</code> option for all daemons
+ Fix --verbose option for all daemons
</summary>
<description>
Since v3.0.0, the option had been ignored by all libvirt deamons
--
2.9.5
2
1
[libvirt] [PATCH] qemu: Remove unused params from qemuDomainDeviceDefValidate
by John Ferlan 04 Sep '17
by John Ferlan 04 Sep '17
04 Sep '17
Neither @cfg nor (now) @driver is used in the API, so remove them
and mark @opaque as UNUSED.
NB: Commit id 'fa3c558596' dropped the unused @qemuCaps which was the
last consumer of @driver other than @cfg, but even @cfg was never used
even in the original implementation from commit id 'd987f63a'.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Another rogue piece of unused data seen whilst working through the
VxHS patches.
src/qemu/qemu_domain.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index b98ffff..cd53c6f 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -3302,10 +3302,8 @@ qemuDomainRedirdevDefValidate(const virDomainRedirdevDef *def)
static int
qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
const virDomainDef *def ATTRIBUTE_UNUSED,
- void *opaque)
+ void *opaque ATTRIBUTE_UNUSED)
{
- virQEMUDriverPtr driver = opaque;
- virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
int ret = -1;
if (dev->type == VIR_DOMAIN_DEVICE_NET) {
@@ -3389,7 +3387,6 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
ret = 0;
cleanup:
- virObjectUnref(cfg);
return ret;
}
--
2.9.5
2
1
Qcow2 small IO random write performance will drop dramatically if the l2
cache table could not cover the whole disk. This will be a lot of l2
cache table RW operations if cache miss happens frequently.
This patch exports the qcow2 driver parameter
l2-cache-size/refcount-cache-size, first added in Qemu 2.2, and
cache-clean-interval, first added in Qemu 2.5, in libvirt.
*** BLURB HERE ***
Liu Qing (2):
conf, docs: Add qcow2 cache configuration support
qemu: add capability checking for qcow2 cache configuration
docs/formatdomain.html.in | 21 ++++++++++
docs/schemas/domaincommon.rng | 24 +++++++++++
src/conf/domain_conf.c | 30 ++++++++++++++
src/qemu/qemu_capabilities.c | 15 +++++++
src/qemu/qemu_capabilities.h | 3 ++
src/qemu/qemu_command.c | 47 ++++++++++++++++++++++
src/util/virstoragefile.c | 3 ++
src/util/virstoragefile.h | 4 ++
tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 2 +
tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 3 ++
.../caps_2.6.0-gicv2.aarch64.xml | 3 ++
.../caps_2.6.0-gicv3.aarch64.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 3 ++
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 3 ++
...argv-disk-drive-qcow2-cache-clean-interval.args | 27 +++++++++++++
...2argv-disk-drive-qcow2-cache-clean-interval.xml | 37 +++++++++++++++++
...emuxml2argv-disk-drive-qcow2-l2-cache-size.args | 27 +++++++++++++
...qemuxml2argv-disk-drive-qcow2-l2-cache-size.xml | 37 +++++++++++++++++
...2argv-disk-drive-qcow2-refcount-cache-size.args | 27 +++++++++++++
...l2argv-disk-drive-qcow2-refcount-cache-size.xml | 37 +++++++++++++++++
tests/qemuxml2argvtest.c | 6 +++
...mlout-disk-drive-qcow2-cache-clean-interval.xml | 41 +++++++++++++++++++
...muxml2xmlout-disk-drive-qcow2-l2-cache-size.xml | 41 +++++++++++++++++++
...xmlout-disk-drive-qcow2-refcount-cache-size.xml | 41 +++++++++++++++++++
tests/qemuxml2xmltest.c | 3 ++
32 files changed, 509 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache-clean-interval.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-l2-cache-size.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-refcount-cache-size.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache-clean-interval.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-l2-cache-size.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-refcount-cache-size.xml
--
1.8.3.1
1
0
Documents some changes that have slipped through the cracks
during the development cycle.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
Changes from [v1]:
* rebase on top of master
* remove the part about guests no longer disappearing if the
QEMU binary is missing, since Peter already documented that
[v1] https://www.redhat.com/archives/libvir-list/2017-September/msg00030.html
docs/news.xml | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index dd8967e25..141b1a42a 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -69,6 +69,18 @@
you can configure reconnect timeout if the connection is closed.
</description>
</change>
+ <change>
+ <summary>
+ qemu: Implement editing guest configuration for managed save files
+ </summary>
+ <description>
+ New <code>managedsave-define</code>, <code>managedsave-edit</code>
+ and <code>managedsave-dumpxml</code> commands have been added to
+ <code>virsh</code> to allow editing the guest configuration for
+ managed save files just like it was already possible for unmanaged
+ save files.
+ </description>
+ </change>
</section>
<section title="Improvements">
<change>
@@ -81,6 +93,43 @@
indication for users (and devs).
</description>
</change>
+ <change>
+ <summary>
+ apparmor: Update for QEMU 2.10 compatibility
+ </summary>
+ <description>
+ Starting with version 2.10, QEMU locks disk images and NVRAM files
+ to prevent them from being corrupted; however, file locking needs to
+ be explicitly allowed through <code>virt-aa-helper</code> or AppArmor
+ will reject the requests and the guest will not be able to run.
+ </description>
+ </change>
+ <change>
+ <summary>
+ virsh: List Unix sockets in 'domdisplay' output
+ </summary>
+ <description>
+ VNC and SPICE graphics can use Unix sockets instead of TCP/IP sockets
+ as connection endpoints, but such a configuration was not handled
+ correctly by <code>virsh domdisplay</code>, causing the respective
+ endpoints to be missing from the output.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Don't check whether offline migration is safe
+ </summary>
+ <description>
+ Since offline migration only copies the guest definition to the
+ destination host, data corruption is not a concern and the operation
+ can always be performed safely.
+ </description>
+ </change>
+ <change>
+ <summary>
+ virt-host-validate: Fix IOMMU detection on ppc64
+ </summary>
+ </change>
</section>
<section title="Bug fixes">
<change>
@@ -115,6 +164,33 @@
are missing during startup.
</description>
</change>
+ <change>
+ <summary>
+ qemu: Prevent pSeries guests from disappearing in some situations
+ </summary>
+ <description>
+ pSeries guest would disappear if any of the host devices they were
+ configured to use was not available during libvirtd startup, which
+ could easily happen for SR-IOV Virtual Functions. This scenario is
+ now handled correctly.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Honor <code><on_reboot/></code> setting
+ </summary>
+ <description>
+ The setting was accepted by the parser, but not actually implemented.
+ </description>
+ </change>
+ <change>
+ <summary>
+ daemon: Fix <code>--verbose</code> option
+ </summary>
+ <description>
+ The option had not been working as intended from v3.0.0 onwards.
+ </description>
+ </change>
</section>
</release>
<release version="v3.6.0" date="2017-08-02">
--
2.13.5
2
2
[libvirt] [PATCH v2 0/2] Fix docs/news.xml template structure and add new features
by Kothapally Madhu Pavan 02 Sep '17
by Kothapally Madhu Pavan 02 Sep '17
02 Sep '17
This patchset will fix docs/news.xml template structure which is broken by
commit b7e779c1a51793 and add support for managedsave-define, managedsave-edit
and managedsave-dumpxml commands.
Kothapally Madhu Pavan (2):
docs: Fix docs/news.xml template structure
docs: Document managedsave-edit commands support
docs/news.xml | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
--
1.8.3.1
2
3
Documents some changes that have slipped through the cracks
during the development cycle.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
I'll push this by the end of tomorrow under the "nobody
reads the release notes" rule, unless I get either an ACK
or a NACK earlier.
docs/news.xml | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 4b48f0fb3..40dec513f 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -69,8 +69,57 @@
you can configure reconnect timeout if the connection is closed.
</description>
</change>
+ <change>
+ <summary>
+ qemu: Implement editing guest configuration for managed save files
+ </summary>
+ <description>
+ New <code>managedsave-define</code>, <code>managedsave-edit</code>
+ and <code>managedsave-dumpxml</code> commands have been added to
+ <code>virsh</code> to allow editing the guest configuration for
+ managed save files just like it was already possible for unmanaged
+ save files.
+ </description>
+ </change>
</section>
<section title="Improvements">
+ <change>
+ <summary>
+ apparmor: Update for QEMU 2.10 compatibility
+ </summary>
+ <description>
+ Starting with version 2.10, QEMU locks disk images and NVRAM files
+ to prevent them from being corrupted; however, file locking needs to
+ be explicitly allowed through <code>virt-aa-helper</code> or AppArmor
+ will reject the requests and the guest will not be able to run.
+ </description>
+ </change>
+ <change>
+ <summary>
+ virsh: List Unix sockets in 'domdisplay' output
+ </summary>
+ <description>
+ VNC and SPICE graphics can use Unix sockets instead of TCP/IP sockets
+ as connection endpoints, but such a configuration was not handled
+ correctly by <code>virsh domdisplay</code>, causing the respective
+ endpoints to be missing from the output.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Don't check whether offline migration is safe
+ </summary>
+ <description>
+ Since offline migration only copies the guest definition to the
+ destination host, data corruption is not a concern and the operation
+ can always be performed safely.
+ </description>
+ </change>
+ <change>
+ <summary>
+ virt-host-validate: Fix IOMMU detection on ppc64
+ </summary>
+ </change>
</section>
<section title="Bug fixes">
<change>
@@ -93,6 +142,34 @@
The path is now generated with shortened name instead.
</description>
</change>
+ <change>
+ <summary>
+ qemu: Prevent guests from disappearing in some situations
+ </summary>
+ <description>
+ pSeries guest would disappear if any of the host devices they were
+ configured to use was not available during libvirtd startup, which
+ could easily happen for SR-IOV Virtual Functions; additionally,
+ guests would disappear if the QEMU binary was removed or renamed.
+ Both scenarios are now handled correctly.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Honor <code><on_reboot/></code> setting
+ </summary>
+ <description>
+ The setting was accepted by the parser, but not actually implemented.
+ </description>
+ </change>
+ <change>
+ <summary>
+ daemon: Fix <code>--verbose</code> option
+ </summary>
+ <description>
+ The option had not been working as intended from v3.0.0 onwards.
+ </description>
+ </change>
</section>
</release>
<release version="v3.6.0" date="2017-08-02">
--
2.13.5
1
0
[libvirt] [PATCH 2/3] libvirtaio: add allow for moving callbacks to other event loop
by Wojtek Porczyk 01 Sep '17
by Wojtek Porczyk 01 Sep '17
01 Sep '17
The virEvent implementation is tied to a particular loop. When spinning
another loop, the callbacks have to be moved to another implementation,
so they will have a chance to be invoked, should they be scheduled. If
not, file descriptors will be leaking.
Signed-off-by: Wojtek Porczyk <woju(a)invisiblethingslab.com>
---
libvirtaio.py | 64 +++++++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 51 insertions(+), 13 deletions(-)
diff --git a/libvirtaio.py b/libvirtaio.py
index fc868bd..d161cd1 100644
--- a/libvirtaio.py
+++ b/libvirtaio.py
@@ -195,9 +195,10 @@ class FDCallback(Callback):
return '<{} iden={} fd={} event={}>'.format(
self.__class__.__name__, self.iden, self.descriptor.fd, self.event)
- def update(self, event):
+ def update(self, event=None):
'''Update the callback and fix descriptor's watchers'''
- self.event = event
+ if event is not None:
+ self.event = event
self.descriptor.update()
#
@@ -238,20 +239,21 @@ class TimeoutCallback(Callback):
self.cb(self.iden, self.opaque)
self.impl.log.debug('timer %r callback ended', self.iden)
- def update(self, timeout):
+ def update(self, timeout=None):
'''Start or the timer, possibly updating timeout'''
- self.timeout = timeout
-
- if self.timeout >= 0 and self._task is None:
- self.impl.log.debug('timer %r start', self.iden)
- self._task = ensure_future(self._timer(),
- loop=self.impl.loop)
+ if timeout is not None:
+ self.timeout = timeout
- elif self.timeout < 0 and self._task is not None:
+ if self._task is not None:
self.impl.log.debug('timer %r stop', self.iden)
self._task.cancel() # pylint: disable=no-member
self._task = None
+ if self.timeout >= 0:
+ self.impl.log.debug('timer %r start', self.iden)
+ self._task = ensure_future(self._timer(),
+ loop=self.impl.loop)
+
def close(self):
'''Stop the timer and call ff callback'''
super(TimeoutCallback, self).close()
@@ -274,6 +276,7 @@ class virEventAsyncIOImpl(object):
self.callbacks = {}
self.descriptors = DescriptorDict(self)
self.log = logging.getLogger(self.__class__.__name__)
+ self.pending_tasks = set()
def register(self):
'''Register this instance as event loop implementation'''
@@ -284,9 +287,30 @@ class virEventAsyncIOImpl(object):
self._add_timeout, self._update_timeout, self._remove_timeout)
return self
+ def takeover(self, other):
+ '''Take over other implementation, probably registered on another loop
+
+ :param virEventAsyncIOImpl other: other implementation to be taken over
+ '''
+ self.log.warning('%r taking over %r', self, other)
+
+ while other.callbacks:
+ iden, callback = other.callbacks.popitem()
+ self.log.debug(' takeover %d %r', iden, callback)
+ assert callback.iden == iden
+ callback.impl = self
+ self.callbacks[iden] = callback
+
+ if isinstance(callback, FDCallback):
+ fd = callback.descriptor.fd
+ assert callback is other.descriptors[fd].remove_handle(iden)
+ self.descriptors[fd].add_handle(callback)
+
def schedule_ff_callback(self, iden, opaque):
'''Schedule a ff callback from one of the handles or timers'''
- ensure_future(self._ff_callback(iden, opaque), loop=self.loop)
+ fut = ensure_future(self._ff_callback(iden, opaque), loop=self.loop)
+ self.pending_tasks.add(fut)
+ fut.add_done_callback(self.pending_tasks.remove)
@asyncio.coroutine
def _ff_callback(self, iden, opaque):
@@ -297,13 +321,19 @@ class virEventAsyncIOImpl(object):
self.log.debug('ff_callback(iden=%d, opaque=...)', iden)
return libvirt.virEventInvokeFreeCallback(opaque)
+ @asyncio.coroutine
+ def drain(self):
+ self.log.debug('drain()')
+ if self.pending_tasks:
+ yield from asyncio.wait(self.pending_tasks, loop=self.loop)
+
def is_idle(self):
'''Returns False if there are leftovers from a connection
Those may happen if there are sematical problems while closing
a connection. For example, not deregistered events before .close().
'''
- return not self.callbacks
+ return not self.callbacks and not self.pending_tasks
def _add_handle(self, fd, event, cb, opaque):
'''Register a callback for monitoring file handle events
@@ -403,10 +433,18 @@ class virEventAsyncIOImpl(object):
callback = self.callbacks.pop(timer)
callback.close()
+
+_current_impl = None
def virEventRegisterAsyncIOImpl(loop=None):
'''Arrange for libvirt's callbacks to be dispatched via asyncio event loop
The implementation object is returned, but in normal usage it can safely be
discarded.
'''
- return virEventAsyncIOImpl(loop=loop).register()
+ global _current_impl
+ impl = virEventAsyncIOImpl(loop=loop)
+ impl.register()
+ if _current_impl is not None:
+ impl.takeover(_current_impl)
+ _current_impl = impl
+ return impl
--
2.9.4
2
4
---
docs/news.xml | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 4b48f0fb3..dd8967e25 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -71,6 +71,16 @@
</change>
</section>
<section title="Improvements">
+ <change>
+ <summary>
+ qemu: Report a clear error when dropping a VM during startup
+ </summary>
+ <description>
+ "Failed to load config for domain 'DOMNAME'" is now reported if a VM
+ config can't be parsed for some reason, and thus provides a clear
+ indication for users (and devs).
+ </description>
+ </change>
</section>
<section title="Bug fixes">
<change>
@@ -93,6 +103,18 @@
The path is now generated with shortened name instead.
</description>
</change>
+ <change>
+ <summary>
+ qemu: Tolerate missing emulator binary during libvirtd restart
+ </summary>
+ <description>
+ For some time libvirt required qemu capabilities being present when
+ parsing VM configs during startup. As a side effect VM configs would
+ fail to parse and thus vanish, if the emulator binary would be
+ uninstalled or broken. Libvirt now tolerates when capabilities
+ are missing during startup.
+ </description>
+ </change>
</section>
</release>
<release version="v3.6.0" date="2017-08-02">
--
2.14.1
2
1
01 Sep '17
https://bugzilla.redhat.com/show_bug.cgi?id=1487322
In ace45e67abbd I've tried to fix a problem that we get the reply
to a D-Bus call while we were sleeping. In that case the callback
was never set. So I've changed the code that the callback is
called directly in this case. However, I hadn't realized that
since callback is called out of order it lock the virNetDaemon.
Exactly the very same virNetDaemon that we are dealing with right
now and have it locked already (in
virNetDaemonAddShutdownInhibition())
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/rpc/virnetdaemon.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c
index 00247cfc3..e3b9390af 100644
--- a/src/rpc/virnetdaemon.c
+++ b/src/rpc/virnetdaemon.c
@@ -439,14 +439,12 @@ virNetDaemonAutoShutdown(virNetDaemonPtr dmn,
#if defined(WITH_DBUS) && defined(DBUS_TYPE_UNIX_FD)
static void
-virNetDaemonGotInhibitReply(DBusPendingCall *pending,
- void *opaque)
+virNetDaemonGotInhibitReplyLocked(DBusPendingCall *pending,
+ virNetDaemonPtr dmn)
{
- virNetDaemonPtr dmn = opaque;
DBusMessage *reply;
int fd;
- virObjectLock(dmn);
dmn->autoShutdownCallingInhibit = false;
VIR_DEBUG("dmn=%p", dmn);
@@ -470,11 +468,22 @@ virNetDaemonGotInhibitReply(DBusPendingCall *pending,
virDBusMessageUnref(reply);
cleanup:
- virObjectUnlock(dmn);
dbus_pending_call_unref(pending);
}
+static void
+virNetDaemonGotInhibitReply(DBusPendingCall *pending,
+ void *opaque)
+{
+ virNetDaemonPtr dmn = opaque;
+
+ virObjectLock(dmn);
+ virNetDaemonGotInhibitReplyLocked(pending, dmn);
+ virObjectUnlock(dmn);
+}
+
+
/* As per: http://www.freedesktop.org/wiki/Software/systemd/inhibit */
static void
virNetDaemonCallInhibit(virNetDaemonPtr dmn,
@@ -516,7 +525,7 @@ virNetDaemonCallInhibit(virNetDaemonPtr dmn,
25 * 1000) &&
pendingReply) {
if (dbus_pending_call_get_completed(pendingReply)) {
- virNetDaemonGotInhibitReply(pendingReply, dmn);
+ virNetDaemonGotInhibitReplyLocked(pendingReply, dmn);
} else {
dbus_pending_call_set_notify(pendingReply,
virNetDaemonGotInhibitReply,
--
2.13.5
3
2
[libvirt] [PATCH] vmx: Expose VMware Managed Object Reference (moref) in XML.
by Richard W.M. Jones 01 Sep '17
by Richard W.M. Jones 01 Sep '17
01 Sep '17
If you use the VDDK library to access virtual machines remotely, you
really need to know the Managed Object Reference ("moref") of the VM.
This must be passed each time you connect to the API.
For example nbdkit's VDDK plugin requires a moref to be passed to
mount up a VM's disk remotely:
nbdkit vddk user=root password=+/tmp/rootpw \
server=esxi.example.com thumbprint=xx:xx:xx:... \
vm=moref=2 \
file="[datastore1] Fedora/Fedora.vmdk"
Getting the moref is a huge pain. To get some idea of what it is, why
it is needed, and how much trouble it is to get it, see:
https://blogs.vmware.com/vsphere/2012/02/uniquely-identifying-virtual-machiā¦
https://blogs.vmware.com/vsphere/2012/02/uniquely-identifying-virtual-machiā¦
However the moref is available conveniently in the internals of the
libvirt VMX driver. This patch exposes it as a custom XML element
using the same "vmware:" namespace which was previously used for the
datacenterpath (see libvirt commit 636a99058758a044).
It appears in the XML like this:
<domain type='vmware' xmlns:vmware='http://libvirt.org/schemas/domain/vmware/1.0'>
<name>Fedora</name>
...
<vmware:datacenterpath>ha-datacenter</vmware:datacenterpath>
<vmware:moref>2</vmware:moref>
</domain>
Note that the moref can appear as either a simple ID (for esx://
connections) or as a "vm-<ID>" (for vpx:// connections). It should be
treated by users as an opaque string.
---
src/esx/esx_driver.c | 7 +++++++
src/esx/esx_vi.c | 15 +++++++++++++++
src/esx/esx_vi.h | 4 ++++
src/vmx/vmx.c | 51 +++++++++++++++++++++++++++++++++++++++++----------
src/vmx/vmx.h | 2 ++
5 files changed, 69 insertions(+), 10 deletions(-)
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 1f4f2c7a7..0cce0a41a 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -2645,6 +2645,7 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
esxVI_ObjectContent *virtualMachine = NULL;
esxVI_VirtualMachinePowerState powerState;
int id;
+ char *moref = NULL;
char *vmPathName = NULL;
char *datastoreName = NULL;
char *directoryName = NULL;
@@ -2670,6 +2671,7 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
esxVI_LookupVirtualMachineByUuid(priv->primary, domain->uuid,
propertyNameList, &virtualMachine,
esxVI_Occurrence_RequiredItem) < 0 ||
+ esxVI_GetVirtualMachineMORef(virtualMachine, &moref) < 0 ||
esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0 ||
esxVI_GetVirtualMachineIdentity(virtualMachine, &id, NULL, NULL) < 0 ||
esxVI_GetStringValue(virtualMachine, "config.files.vmPathName",
@@ -2715,6 +2717,7 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
ctx.formatFileName = NULL;
ctx.autodetectSCSIControllerModel = NULL;
ctx.datacenterPath = priv->primary->datacenterPath;
+ ctx.moref = moref;
def = virVMXParseConfig(&ctx, priv->xmlopt, priv->caps, vmx);
@@ -2732,6 +2735,7 @@ esxDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
esxVI_String_Free(&propertyNameList);
esxVI_ObjectContent_Free(&virtualMachine);
+ VIR_FREE(moref);
VIR_FREE(datastoreName);
VIR_FREE(directoryName);
VIR_FREE(directoryAndFileName);
@@ -2774,6 +2778,7 @@ esxConnectDomainXMLFromNative(virConnectPtr conn, const char *nativeFormat,
ctx.formatFileName = NULL;
ctx.autodetectSCSIControllerModel = NULL;
ctx.datacenterPath = NULL;
+ ctx.moref = NULL;
def = virVMXParseConfig(&ctx, priv->xmlopt, priv->caps, nativeConfig);
@@ -2830,6 +2835,7 @@ esxConnectDomainXMLToNative(virConnectPtr conn, const char *nativeFormat,
ctx.formatFileName = esxFormatVMXFileName;
ctx.autodetectSCSIControllerModel = esxAutodetectSCSIControllerModel;
ctx.datacenterPath = NULL;
+ ctx.moref = NULL;
vmx = virVMXFormatConfig(&ctx, priv->xmlopt, def, virtualHW_version);
@@ -3077,6 +3083,7 @@ esxDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
ctx.formatFileName = esxFormatVMXFileName;
ctx.autodetectSCSIControllerModel = esxAutodetectSCSIControllerModel;
ctx.datacenterPath = NULL;
+ ctx.moref = NULL;
vmx = virVMXFormatConfig(&ctx, priv->xmlopt, def, virtualHW_version);
diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
index 8586e3ff0..77bcfd9b6 100644
--- a/src/esx/esx_vi.c
+++ b/src/esx/esx_vi.c
@@ -2390,6 +2390,21 @@ esxVI_GetVirtualMachineQuestionInfo
}
+int
+esxVI_GetVirtualMachineMORef(esxVI_ObjectContent *virtualMachine,
+ char **moref)
+{
+ for (; virtualMachine != NULL; virtualMachine = virtualMachine->_next) {
+ if (virtualMachine->obj &&
+ STREQ(virtualMachine->obj->type, "VirtualMachine") &&
+ virtualMachine->obj->value) {
+ if (VIR_STRDUP(*moref, virtualMachine->obj->value) < 0)
+ return -1;
+ return 0;
+ }
+ }
+ return -1;
+}
int
esxVI_GetBoolean(esxVI_ObjectContent *objectContent, const char *propertyName,
diff --git a/src/esx/esx_vi.h b/src/esx/esx_vi.h
index 7c53f3781..47d518dd1 100644
--- a/src/esx/esx_vi.h
+++ b/src/esx/esx_vi.h
@@ -334,6 +334,10 @@ int esxVI_GetVirtualMachineQuestionInfo
(esxVI_ObjectContent *virtualMachine,
esxVI_VirtualMachineQuestionInfo **questionInfo);
+int esxVI_GetVirtualMachineMORef
+ (esxVI_ObjectContent *virtualMachine,
+ char **moref);
+
int esxVI_GetBoolean(esxVI_ObjectContent *objectContent,
const char *propertyName,
esxVI_Boolean *value, esxVI_Occurrence occurrence);
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index d1d8184c5..6f96f4cbf 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -553,23 +553,41 @@ static virDomainDefParserConfig virVMXDomainDefParserConfig = {
VIR_DOMAIN_DEF_FEATURE_NAME_SLASH),
};
+struct virVMXDomainDefNamespaceData {
+ char *datacenterPath;
+ char *moref;
+};
+
static void
virVMXDomainDefNamespaceFree(void *nsdata)
{
- VIR_FREE(nsdata);
+ struct virVMXDomainDefNamespaceData *data = nsdata;
+
+ if (data) {
+ VIR_FREE(data->datacenterPath);
+ VIR_FREE(data->moref);
+ }
+ VIR_FREE(data);
}
static int
virVMXDomainDefNamespaceFormatXML(virBufferPtr buf, void *nsdata)
{
- const char *datacenterPath = nsdata;
+ struct virVMXDomainDefNamespaceData *data = nsdata;
- if (!datacenterPath)
+ if (!data)
return 0;
- virBufferAddLit(buf, "<vmware:datacenterpath>");
- virBufferEscapeString(buf, "%s", datacenterPath);
- virBufferAddLit(buf, "</vmware:datacenterpath>\n");
+ if (data->datacenterPath) {
+ virBufferAddLit(buf, "<vmware:datacenterpath>");
+ virBufferEscapeString(buf, "%s", data->datacenterPath);
+ virBufferAddLit(buf, "</vmware:datacenterpath>\n");
+ }
+ if (data->moref) {
+ virBufferAddLit(buf, "<vmware:moref>");
+ virBufferEscapeString(buf, "%s", data->moref);
+ virBufferAddLit(buf, "</vmware:moref>\n");
+ }
return 0;
}
@@ -1304,7 +1322,6 @@ virVMXParseConfig(virVMXContext *ctx,
bool hgfs_disabled = true;
long long sharedFolder_maxNum = 0;
int cpumasklen;
- char *namespaceData;
if (ctx->parseFileName == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -1802,12 +1819,26 @@ virVMXParseConfig(virVMXContext *ctx,
}
/* ctx:datacenterPath -> def:namespaceData */
- if (ctx->datacenterPath) {
- if (VIR_STRDUP(namespaceData, ctx->datacenterPath) < 0)
+ if (ctx->datacenterPath || ctx->moref) {
+ struct virVMXDomainDefNamespaceData *nsdata;
+
+ if (VIR_ALLOC(nsdata) < 0)
goto cleanup;
+ nsdata->datacenterPath = NULL;
+ nsdata->moref = NULL;
+
+ if (ctx->datacenterPath) {
+ if (VIR_STRDUP(nsdata->datacenterPath, ctx->datacenterPath) < 0)
+ goto cleanup;
+ }
+
+ if (ctx->moref) {
+ if (VIR_STRDUP(nsdata->moref, ctx->moref) < 0)
+ goto cleanup;
+ }
def->ns = *virDomainXMLOptionGetNamespace(xmlopt);
- def->namespaceData = namespaceData;
+ def->namespaceData = nsdata;
}
if (virDomainDefPostParse(def, caps, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
diff --git a/src/vmx/vmx.h b/src/vmx/vmx.h
index 08b627765..6b3d880d6 100644
--- a/src/vmx/vmx.h
+++ b/src/vmx/vmx.h
@@ -45,6 +45,7 @@ typedef int (*virVMXAutodetectSCSIControllerModel)(virDomainDiskDefPtr def,
* formatFileName is only used by virVMXFormatConfig.
* autodetectSCSIControllerModel is optionally used by virVMXFormatConfig.
* datacenterPath is only used by virVMXFormatConfig.
+ * moref is only used by virVMXFormatConfig.
*/
struct _virVMXContext {
void *opaque;
@@ -52,6 +53,7 @@ struct _virVMXContext {
virVMXFormatFileName formatFileName;
virVMXAutodetectSCSIControllerModel autodetectSCSIControllerModel;
const char *datacenterPath; /* including folders */
+ const char *moref;
};
--
2.13.2
2
1
[libvirt] [PATCH] qemu: handle -1 for pid in qemuDomainGetMachineName
by Nikolay Shirokovskiy 01 Sep '17
by Nikolay Shirokovskiy 01 Sep '17
01 Sep '17
We call qemuDomainGetMachineName on domain start. On first
start (after daemon start) pid is 0 and virSystemdGetMachineNameByPID
don't get called. But after domain shutting down pid became -1 so
on next start virSystemdGetMachineNameByPID is called and returned an error.
Error is ignored so it is not critical. But at least on my system
(systemd-219 with extra patches) systemd-machined is crashed on
this request.
This behaviour is triggered by eaf2c9f89.
---
src/qemu/qemu_domain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index e580a5b..fe44d36 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9696,7 +9696,7 @@ qemuDomainGetMachineName(virDomainObjPtr vm)
virQEMUDriverPtr driver = priv->driver;
char *ret = NULL;
- if (vm->pid) {
+ if (vm->pid > 0) {
ret = virSystemdGetMachineNameByPID(vm->pid);
if (!ret)
virResetLastError();
--
1.8.3.1
3
2
[libvirt] [PATCH 3/3] libvirtaio: cache the list of callbacks when calling
by Wojtek Porczyk 31 Aug '17
by Wojtek Porczyk 31 Aug '17
31 Aug '17
When the callback causes something that results in changes wrt
registered handles, python aborts iteration.
Relevant error message:
Exception in callback None()
handle: <Handle cancelled>
Traceback (most recent call last):
File "/usr/lib64/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib64/python3.5/site-packages/libvirtaio.py", line 99, in _handle
for callback in self.callbacks.values():
RuntimeError: dictionary changed size during iteration
QubesOS/qubes-issues#2805
Signed-off-by: Wojtek Porczyk <woju(a)invisiblethingslab.com>
---
libvirtaio.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libvirtaio.py b/libvirtaio.py
index d161cd1..46923d8 100644
--- a/libvirtaio.py
+++ b/libvirtaio.py
@@ -96,7 +96,7 @@ class Descriptor(object):
:param int event: The event (from libvirt's constants) being dispatched
'''
- for callback in self.callbacks.values():
+ for callback in list(self.callbacks.values()):
if callback.event is not None and callback.event & event:
callback.cb(callback.iden, self.fd, event, callback.opaque)
--
2.9.4
1
0
This logging is helpful for tracing problems with unclosed connections
and leaking file descriptors.
Signed-off-by: Wojtek Porczyk <woju(a)invisiblethingslab.com
---
libvirtaio.py | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/libvirtaio.py b/libvirtaio.py
index 7c8c396..fc868bd 100644
--- a/libvirtaio.py
+++ b/libvirtaio.py
@@ -74,7 +74,7 @@ class Callback(object):
def close(self):
'''Schedule *ff* callback'''
self.impl.log.debug('callback %d close(), scheduling ff', self.iden)
- self.impl.schedule_ff_callback(self.opaque)
+ self.impl.schedule_ff_callback(self.iden, self.opaque)
#
# file descriptors
@@ -284,9 +284,18 @@ class virEventAsyncIOImpl(object):
self._add_timeout, self._update_timeout, self._remove_timeout)
return self
- def schedule_ff_callback(self, opaque):
+ def schedule_ff_callback(self, iden, opaque):
'''Schedule a ff callback from one of the handles or timers'''
- self.loop.call_soon(libvirt.virEventInvokeFreeCallback, opaque)
+ ensure_future(self._ff_callback(iden, opaque), loop=self.loop)
+
+ @asyncio.coroutine
+ def _ff_callback(self, iden, opaque):
+ '''Directly free the opaque object
+
+ This is a coroutine.
+ '''
+ self.log.debug('ff_callback(iden=%d, opaque=...)', iden)
+ return libvirt.virEventInvokeFreeCallback(opaque)
def is_idle(self):
'''Returns False if there are leftovers from a connection
@@ -309,10 +318,10 @@ class virEventAsyncIOImpl(object):
.. seealso::
https://libvirt.org/html/libvirt-libvirt-event.html#virEventAddHandleFuncFuā¦
'''
- self.log.debug('add_handle(fd=%d, event=%d, cb=%r, opaque=%r)',
- fd, event, cb, opaque)
callback = FDCallback(self, cb, opaque,
descriptor=self.descriptors[fd], event=event)
+ self.log.debug('add_handle(fd=%d, event=%d, cb=..., opaque=...) = %d',
+ fd, event, callback.iden)
self.callbacks[callback.iden] = callback
self.descriptors[fd].add_handle(callback)
return callback.iden
@@ -339,7 +348,11 @@ class virEventAsyncIOImpl(object):
https://libvirt.org/html/libvirt-libvirt-event.html#virEventRemoveHandleFunc
'''
self.log.debug('remove_handle(watch=%d)', watch)
- callback = self.callbacks.pop(watch)
+ try:
+ callback = self.callbacks.pop(watch)
+ except KeyError as err:
+ self.log.warning('remove_handle(): no such handle: %r', err.args[0])
+ raise
fd = callback.descriptor.fd
assert callback is self.descriptors[fd].remove_handle(watch)
if len(self.descriptors[fd].callbacks) == 0:
@@ -358,9 +371,9 @@ class virEventAsyncIOImpl(object):
.. seealso::
https://libvirt.org/html/libvirt-libvirt-event.html#virEventAddTimeoutFunc
'''
- self.log.debug('add_timeout(timeout=%d, cb=%r, opaque=%r)',
- timeout, cb, opaque)
callback = TimeoutCallback(self, cb, opaque)
+ self.log.debug('add_timeout(timeout=%d, cb=..., opaque=...) = %d',
+ timeout, callback.iden)
self.callbacks[callback.iden] = callback
callback.update(timeout=timeout)
return callback.iden
--
2.9.4
1
0
31 Aug '17
Hi libvir-list,
I would like to send three patches for libvirtaio. The first one adds some
logging, which is not critical but nice to have. The second one allows for
migration of active descriptors between loops. The third patch is a fix for
a bug related to concurrent access.
Thanks!
Wojtek Porczyk (3):
libvirtaio: add more debug logging
libvirtaio: add allow for moving callbacks to other event loop
libvirtaio: cache the list of callbacks when calling
libvirtaio.py | 93 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 72 insertions(+), 21 deletions(-)
--
pozdrawiam / best regards _.-._
Wojtek Porczyk .-^' '^-.
Invisible Things Lab |'-.-^-.-'|
| | | |
I do not fear computers, | '-.-' |
I fear lack of them. '-._ : ,-'
-- Isaac Asimov `^-^-_>
1
0
31 Aug '17
*** BLURB HERE, THERE AND EVERYWHERE ***
JƔn Tomko (4):
conf: use virXMLFormatElement for <iommu><driver>
conf: use virXMLFormatElement for <iommu>
tests: merge iommu tests
conf: validate IOMMU interrupt remapping setting
src/conf/domain_conf.c | 85 ++++++++++++++--------
.../qemuxml2argv-intel-iommu-caching-mode.args | 2 +-
.../qemuxml2argv-intel-iommu-caching-mode.xml | 5 +-
.../qemuxml2argv-intel-iommu-ioapic.args | 21 ------
.../qemuxml2argv-intel-iommu-ioapic.xml | 31 --------
tests/qemuxml2argvtest.c | 6 +-
.../qemuxml2xmlout-intel-iommu-ioapic.xml | 1 -
tests/qemuxml2xmltest.c | 1 -
8 files changed, 59 insertions(+), 93 deletions(-)
delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu-ioapic.args
delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu-ioapic.xml
delete mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-ioapic.xml
--
2.13.0
2
8
[libvirt] [PATCH v2] qemu: Add QEMU 2.10 x86_64 the generated capabilities
by John Ferlan 31 Aug '17
by John Ferlan 31 Aug '17
31 Aug '17
For reference, these were generated by updating a local qemu git
repository to the latest upstream, checking out the v2.10.0 tag,
and building in order to generate an "x86_64-softmmu/qemu-system-x86_64"
image.
Then using a clean libvirt tree updated to master and built, the image
was then provided as input:
tests/qemucapsprobe /path/to/x86_64-softmmu/qemu-system-x86_64 > \
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
With the .replies file in place, running the following commands:
touch tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
VIR_TEST_REGENERATE_OUTPUT=1 ./tests/qemucapabilitiestest
to generate tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml and both
were added to the commit.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Extracted this out of the Veritas VxHS patch stream:
https://www.redhat.com/archives/libvir-list/2017-August/msg00993.html
after fixing up my qemu.git environment, building a v2.10.0 image,
and following the same process as well as documenting in both the
commit and code. Although that could be considered overkill - someone
may not look at git history to figure this out - figured putting
it in both places would make a better chance to have it read.
.../caps_2.10.0.x86_64.replies | 17994 +++++++++++++++++++
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 791 +
tests/qemucapabilitiestest.c | 11 +-
3 files changed, 18795 insertions(+), 1 deletion(-)
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
new file mode 100644
index 0000000..dda0f5b
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
@@ -0,0 +1,17994 @@
+{
+ "QMP": {
+ "version": {
+ "qemu": {
+ "micro": 0,
+ "minor": 10,
+ "major": 2
+ },
+ "package": " (v2.10.0)"
+ },
+ "capabilities": [
+ ]
+ }
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": {
+ "qemu": {
+ "micro": 0,
+ "minor": 10,
+ "major": 2
+ },
+ "package": " (v2.10.0)"
+ },
+ "id": "libvirt-2"
+}
+
+{
+ "return": {
+ "arch": "x86_64"
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": [
+ {
+ "name": "netdev_add"
+ },
+ {
+ "name": "device_add"
+ },
+ {
+ "name": "query-qmp-schema"
+ },
+ {
+ "name": "xen-set-replication"
+ },
+ {
+ "name": "xen-set-global-dirty-log"
+ },
+ {
+ "name": "xen-save-devices-state"
+ },
+ {
+ "name": "xen-load-devices-state"
+ },
+ {
+ "name": "xen-colo-do-checkpoint"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256"
+ },
+ {
+ "name": "x-colo-lost-heartbeat"
+ },
+ {
+ "name": "x-blockdev-remove-medium"
+ },
+ {
+ "name": "x-blockdev-insert-medium"
+ },
+ {
+ "name": "x-blockdev-change"
+ },
+ {
+ "name": "transaction"
+ },
+ {
+ "name": "trace-event-set-state"
+ },
+ {
+ "name": "trace-event-get-state"
+ },
+ {
+ "name": "system_wakeup"
+ },
+ {
+ "name": "system_reset"
+ },
+ {
+ "name": "system_powerdown"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "set_password"
+ },
+ {
+ "name": "set_link"
+ },
+ {
+ "name": "send-key"
+ },
+ {
+ "name": "screendump"
+ },
+ {
+ "name": "rtc-reset-reinjection"
+ },
+ {
+ "name": "ringbuf-write"
+ },
+ {
+ "name": "ringbuf-read"
+ },
+ {
+ "name": "remove-fd"
+ },
+ {
+ "name": "quit"
+ },
+ {
+ "name": "query-xen-replication-status"
+ },
+ {
+ "name": "query-vnc-servers"
+ },
+ {
+ "name": "query-vnc"
+ },
+ {
+ "name": "query-vm-generation-id"
+ },
+ {
+ "name": "query-version"
+ },
+ {
+ "name": "query-uuid"
+ },
+ {
+ "name": "query-tpm-types"
+ },
+ {
+ "name": "query-tpm-models"
+ },
+ {
+ "name": "query-tpm"
+ },
+ {
+ "name": "query-target"
+ },
+ {
+ "name": "query-status"
+ },
+ {
+ "name": "query-spice"
+ },
+ {
+ "name": "query-rx-filter"
+ },
+ {
+ "name": "query-rocker-ports"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows"
+ },
+ {
+ "name": "query-rocker"
+ },
+ {
+ "name": "query-pci"
+ },
+ {
+ "name": "query-named-block-nodes"
+ },
+ {
+ "name": "query-name"
+ },
+ {
+ "name": "query-migrate-parameters"
+ },
+ {
+ "name": "query-migrate-capabilities"
+ },
+ {
+ "name": "query-migrate-cache-size"
+ },
+ {
+ "name": "query-migrate"
+ },
+ {
+ "name": "query-mice"
+ },
+ {
+ "name": "query-memory-devices"
+ },
+ {
+ "name": "query-memdev"
+ },
+ {
+ "name": "query-machines"
+ },
+ {
+ "name": "query-kvm"
+ },
+ {
+ "name": "query-iothreads"
+ },
+ {
+ "name": "query-hotpluggable-cpus"
+ },
+ {
+ "name": "query-fdsets"
+ },
+ {
+ "name": "query-events"
+ },
+ {
+ "name": "query-dump-guest-memory-capability"
+ },
+ {
+ "name": "query-dump"
+ },
+ {
+ "name": "query-cpus"
+ },
+ {
+ "name": "query-cpu-model-expansion"
+ },
+ {
+ "name": "query-cpu-definitions"
+ },
+ {
+ "name": "query-commands"
+ },
+ {
+ "name": "query-command-line-options"
+ },
+ {
+ "name": "query-chardev-backends"
+ },
+ {
+ "name": "query-chardev"
+ },
+ {
+ "name": "query-blockstats"
+ },
+ {
+ "name": "query-block-jobs"
+ },
+ {
+ "name": "query-block"
+ },
+ {
+ "name": "query-balloon"
+ },
+ {
+ "name": "query-acpi-ospm-status"
+ },
+ {
+ "name": "qom-set"
+ },
+ {
+ "name": "qom-list-types"
+ },
+ {
+ "name": "qom-list"
+ },
+ {
+ "name": "qom-get"
+ },
+ {
+ "name": "qmp_capabilities"
+ },
+ {
+ "name": "pmemsave"
+ },
+ {
+ "name": "object-del"
+ },
+ {
+ "name": "object-add"
+ },
+ {
+ "name": "netdev_del"
+ },
+ {
+ "name": "nbd-server-stop"
+ },
+ {
+ "name": "nbd-server-start"
+ },
+ {
+ "name": "nbd-server-add"
+ },
+ {
+ "name": "migrate_set_speed"
+ },
+ {
+ "name": "migrate_set_downtime"
+ },
+ {
+ "name": "migrate_cancel"
+ },
+ {
+ "name": "migrate-start-postcopy"
+ },
+ {
+ "name": "migrate-set-parameters"
+ },
+ {
+ "name": "migrate-set-capabilities"
+ },
+ {
+ "name": "migrate-set-cache-size"
+ },
+ {
+ "name": "migrate-incoming"
+ },
+ {
+ "name": "migrate"
+ },
+ {
+ "name": "memsave"
+ },
+ {
+ "name": "input-send-event"
+ },
+ {
+ "name": "inject-nmi"
+ },
+ {
+ "name": "human-monitor-command"
+ },
+ {
+ "name": "getfd"
+ },
+ {
+ "name": "expire_password"
+ },
+ {
+ "name": "eject"
+ },
+ {
+ "name": "dump-guest-memory"
+ },
+ {
+ "name": "drive-mirror"
+ },
+ {
+ "name": "drive-backup"
+ },
+ {
+ "name": "device_del"
+ },
+ {
+ "name": "device-list-properties"
+ },
+ {
+ "name": "cpu-add"
+ },
+ {
+ "name": "cpu"
+ },
+ {
+ "name": "cont"
+ },
+ {
+ "name": "closefd"
+ },
+ {
+ "name": "client_migrate_info"
+ },
+ {
+ "name": "chardev-send-break"
+ },
+ {
+ "name": "chardev-remove"
+ },
+ {
+ "name": "chardev-change"
+ },
+ {
+ "name": "chardev-add"
+ },
+ {
+ "name": "change-vnc-password"
+ },
+ {
+ "name": "change-backing-file"
+ },
+ {
+ "name": "change"
+ },
+ {
+ "name": "blockdev-snapshot-sync"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot"
+ },
+ {
+ "name": "blockdev-open-tray"
+ },
+ {
+ "name": "blockdev-mirror"
+ },
+ {
+ "name": "blockdev-del"
+ },
+ {
+ "name": "blockdev-close-tray"
+ },
+ {
+ "name": "blockdev-change-medium"
+ },
+ {
+ "name": "blockdev-backup"
+ },
+ {
+ "name": "blockdev-add"
+ },
+ {
+ "name": "block_set_io_throttle"
+ },
+ {
+ "name": "block_resize"
+ },
+ {
+ "name": "block_passwd"
+ },
+ {
+ "name": "block-stream"
+ },
+ {
+ "name": "block-set-write-threshold"
+ },
+ {
+ "name": "block-job-set-speed"
+ },
+ {
+ "name": "block-job-resume"
+ },
+ {
+ "name": "block-job-pause"
+ },
+ {
+ "name": "block-job-complete"
+ },
+ {
+ "name": "block-job-cancel"
+ },
+ {
+ "name": "block-dirty-bitmap-remove"
+ },
+ {
+ "name": "block-dirty-bitmap-clear"
+ },
+ {
+ "name": "block-dirty-bitmap-add"
+ },
+ {
+ "name": "block-commit"
+ },
+ {
+ "name": "balloon"
+ },
+ {
+ "name": "add_client"
+ },
+ {
+ "name": "add-fd"
+ }
+ ],
+ "id": "libvirt-4"
+}
+
+{
+ "return": {
+ "fd": 15,
+ "fdset-id": 0
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "id": "libvirt-6",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'bogus' not found"
+ }
+}
+
+{
+ "return": {
+ "enabled": true,
+ "present": true
+ },
+ "id": "libvirt-7"
+}
+
+{
+ "return": [
+ {
+ "name": "WATCHDOG"
+ },
+ {
+ "name": "WAKEUP"
+ },
+ {
+ "name": "VSERPORT_CHANGE"
+ },
+ {
+ "name": "VNC_INITIALIZED"
+ },
+ {
+ "name": "VNC_DISCONNECTED"
+ },
+ {
+ "name": "VNC_CONNECTED"
+ },
+ {
+ "name": "SUSPEND_DISK"
+ },
+ {
+ "name": "SUSPEND"
+ },
+ {
+ "name": "STOP"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED"
+ },
+ {
+ "name": "SPICE_INITIALIZED"
+ },
+ {
+ "name": "SPICE_DISCONNECTED"
+ },
+ {
+ "name": "SPICE_CONNECTED"
+ },
+ {
+ "name": "SHUTDOWN"
+ },
+ {
+ "name": "RTC_CHANGE"
+ },
+ {
+ "name": "RESUME"
+ },
+ {
+ "name": "RESET"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD"
+ },
+ {
+ "name": "QUORUM_FAILURE"
+ },
+ {
+ "name": "POWERDOWN"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED"
+ },
+ {
+ "name": "MIGRATION_PASS"
+ },
+ {
+ "name": "MIGRATION"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR"
+ },
+ {
+ "name": "GUEST_PANICKED"
+ },
+ {
+ "name": "DUMP_COMPLETED"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED"
+ },
+ {
+ "name": "DEVICE_DELETED"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD"
+ },
+ {
+ "name": "BLOCK_JOB_READY"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED"
+ },
+ {
+ "name": "BLOCK_IO_ERROR"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED"
+ },
+ {
+ "name": "BALLOON_CHANGE"
+ },
+ {
+ "name": "ACPI_DEVICE_OST"
+ }
+ ],
+ "id": "libvirt-8"
+}
+
+{
+ "return": [
+ {
+ "name": "vhost-vsock-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "xen-sysdev",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pc-q35-2.10-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "generic-sdhci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pc-0.13-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "cfi.pflash01",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "i82551",
+ "parent": "pci-device"
+ },
+ {
+ "name": "i82550",
+ "parent": "pci-device"
+ },
+ {
+ "name": "Westmere-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pci-serial-4x",
+ "parent": "pci-device"
+ },
+ {
+ "name": "cryptodev-backend",
+ "parent": "object"
+ },
+ {
+ "name": "Penryn-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "Haswell-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "iothread",
+ "parent": "object"
+ },
+ {
+ "name": "pc-i440fx-2.9-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "Skylake-Client-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-gpu-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "Opteron_G3-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "floppy-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "e1000e",
+ "parent": "pci-device"
+ },
+ {
+ "name": "Broadwell-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "piix3-ide",
+ "parent": "pci-ide"
+ },
+ {
+ "name": "secret",
+ "parent": "object"
+ },
+ {
+ "name": "amd-iommu-iommu-memory-region",
+ "parent": "qemu:iommu-memory-region"
+ },
+ {
+ "name": "base-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "isa-parallel",
+ "parent": "isa-device"
+ },
+ {
+ "name": "megasas",
+ "parent": "megasas-base"
+ },
+ {
+ "name": "i2c-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "pc-q35-2.4-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "vhost-vsock-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "usb-braille",
+ "parent": "usb-serial-dev"
+ },
+ {
+ "name": "mptsas1068",
+ "parent": "pci-device"
+ },
+ {
+ "name": "vmware-svga",
+ "parent": "pci-device"
+ },
+ {
+ "name": "filter-buffer",
+ "parent": "netfilter"
+ },
+ {
+ "name": "PIIX3-xen",
+ "parent": "pci-piix3"
+ },
+ {
+ "name": "ccid-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "scsi-cd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "pc-i440fx-2.0-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "isa-serial",
+ "parent": "isa-device"
+ },
+ {
+ "name": "usb-ehci",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "container",
+ "parent": "object"
+ },
+ {
+ "name": "qio-channel-rdma",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "chardev-null",
+ "parent": "chardev"
+ },
+ {
+ "name": "host-x86_64-cpu",
+ "parent": "max-x86_64-cpu"
+ },
+ {
+ "name": "qemu64-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pci-serial-2x",
+ "parent": "pci-device"
+ },
+ {
+ "name": "piix4-ide",
+ "parent": "pci-ide"
+ },
+ {
+ "name": "scsi-generic",
+ "parent": "scsi-device"
+ },
+ {
+ "name": "isa-ipmi-bt",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-1.0-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "virtio-net-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "hyperv-testdev",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-dimm",
+ "parent": "device"
+ },
+ {
+ "name": "pc-q35-2.8-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "Haswell-noTSX-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pc-i440fx-2.1-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "virtio-mouse-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "virtio-mouse-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "isa-debugcon",
+ "parent": "isa-device"
+ },
+ {
+ "name": "intel-iommu-iommu-memory-region",
+ "parent": "qemu:iommu-memory-region"
+ },
+ {
+ "name": "AMDVI-PCI",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ide-hd",
+ "parent": "ide-device"
+ },
+ {
+ "name": "virtio-vga",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "rng-egd",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "isa-pcspk",
+ "parent": "isa-device"
+ },
+ {
+ "name": "isa-pit",
+ "parent": "pit-common"
+ },
+ {
+ "name": "pc-1.1-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "ich9-usb-ehci2",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "ich9-usb-ehci1",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "pxb-host",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "pc-q35-2.9-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "intel-iommu",
+ "parent": "x86-iommu"
+ },
+ {
+ "name": "irq",
+ "parent": "object"
+ },
+ {
+ "name": "ipmi-bmc-sim",
+ "parent": "ipmi-bmc"
+ },
+ {
+ "name": "cirrus-vga",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtconsole",
+ "parent": "virtserialport"
+ },
+ {
+ "name": "virtio-rng-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "PCIE",
+ "parent": "PCI"
+ },
+ {
+ "name": "chardev-pty",
+ "parent": "chardev"
+ },
+ {
+ "name": "qio-channel-file",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "pentium3-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "qxl-vga",
+ "parent": "pci-qxl"
+ },
+ {
+ "name": "qio-dns-resolver",
+ "parent": "object"
+ },
+ {
+ "name": "ioapic",
+ "parent": "ioapic-common"
+ },
+ {
+ "name": "kvm-pit",
+ "parent": "pit-common"
+ },
+ {
+ "name": "chardev-memory",
+ "parent": "chardev-ringbuf"
+ },
+ {
+ "name": "pc-i440fx-2.5-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "filter-rewriter",
+ "parent": "netfilter"
+ },
+ {
+ "name": "pcie-root-port",
+ "parent": "pcie-root-port-base"
+ },
+ {
+ "name": "qio-channel-buffer",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "chardev-serial",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "vhost-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "usb-kbd",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "xen-apic",
+ "parent": "apic-common"
+ },
+ {
+ "name": "xen-sysbus",
+ "parent": "bus"
+ },
+ {
+ "name": "usb-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "Skylake-Server-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pc-i440fx-1.4-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "PIIX3",
+ "parent": "pci-piix3"
+ },
+ {
+ "name": "486-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "ES1370",
+ "parent": "pci-device"
+ },
+ {
+ "name": "gus",
+ "parent": "isa-device"
+ },
+ {
+ "name": "kvm-pci-assign",
+ "parent": "pci-device"
+ },
+ {
+ "name": "isa-applesmc",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-i440fx-2.6-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "xen-pci-passthrough",
+ "parent": "pci-device"
+ },
+ {
+ "name": "i82559er",
+ "parent": "pci-device"
+ },
+ {
+ "name": "q35-pcihost",
+ "parent": "pcie-host-bridge"
+ },
+ {
+ "name": "usb-bt-dongle",
+ "parent": "usb-device"
+ },
+ {
+ "name": "e1000-82545em",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "e1000-82544gc",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "i6300esb",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pc-i440fx-1.5-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "tls-creds-x509",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "or-irq",
+ "parent": "device"
+ },
+ {
+ "name": "pc-0.14-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "mc146818rtc",
+ "parent": "isa-device"
+ },
+ {
+ "name": "AC97",
+ "parent": "pci-device"
+ },
+ {
+ "name": "PIIX4_PM",
+ "parent": "pci-device"
+ },
+ {
+ "name": "piix4-usb-uhci",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "sysbus-ahci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-tablet-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "filter-redirector",
+ "parent": "netfilter"
+ },
+ {
+ "name": "kvm-ioapic",
+ "parent": "ioapic-common"
+ },
+ {
+ "name": "chardev-pipe",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "unimplemented-device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pvpanic",
+ "parent": "isa-device"
+ },
+ {
+ "name": "core2duo-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "qio-channel-tls",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "scsi-disk",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "vfio-pci-igd-lpc-bridge",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-ringbuf",
+ "parent": "chardev"
+ },
+ {
+ "name": "sb16",
+ "parent": "isa-device"
+ },
+ {
+ "name": "chardev-socket",
+ "parent": "chardev"
+ },
+ {
+ "name": "qemu-console",
+ "parent": "object"
+ },
+ {
+ "name": "pc-0.15-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "filter-replay",
+ "parent": "netfilter"
+ },
+ {
+ "name": "usb-mouse",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "virtio-blk-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "xenfv-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "filter-dump",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virtio-keyboard-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "chardev-stdio",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "piix3-usb-uhci",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "virtio-scsi-device",
+ "parent": "virtio-scsi-common"
+ },
+ {
+ "name": "usb-ccid",
+ "parent": "usb-device"
+ },
+ {
+ "name": "chardev-file",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "tpci200",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pc-q35-2.5-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "SUNW,fdtwo",
+ "parent": "base-sysbus-fdc"
+ },
+ {
+ "name": "hda-output",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "i8257",
+ "parent": "isa-device"
+ },
+ {
+ "name": "filter-mirror",
+ "parent": "netfilter"
+ },
+ {
+ "name": "Opteron_G4-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-mmio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-user-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "isa-i8259",
+ "parent": "pic-common"
+ },
+ {
+ "name": "System",
+ "parent": "bus"
+ },
+ {
+ "name": "pvscsi",
+ "parent": "pci-device"
+ },
+ {
+ "name": "amd-iommu",
+ "parent": "x86-iommu"
+ },
+ {
+ "name": "virtio-net-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "input-linux",
+ "parent": "object"
+ },
+ {
+ "name": "colo-compare",
+ "parent": "object"
+ },
+ {
+ "name": "sd-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "xen-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "usb-hub",
+ "parent": "usb-device"
+ },
+ {
+ "name": "chardev-testdev",
+ "parent": "chardev"
+ },
+ {
+ "name": "IvyBridge-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "hda-duplex",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "igd-passthrough-i440FX",
+ "parent": "i440FX"
+ },
+ {
+ "name": "ccid-card-passthru",
+ "parent": "ccid-card"
+ },
+ {
+ "name": "chardev-hci",
+ "parent": "chardev"
+ },
+ {
+ "name": "igd-passthrough-isa-bridge",
+ "parent": "pci-device"
+ },
+ {
+ "name": "rocker",
+ "parent": "pci-device"
+ },
+ {
+ "name": "nec-usb-xhci",
+ "parent": "base-xhci"
+ },
+ {
+ "name": "megasas-gen2",
+ "parent": "megasas-base"
+ },
+ {
+ "name": "pci-ohci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ib700",
+ "parent": "isa-device"
+ },
+ {
+ "name": "xio3130-downstream",
+ "parent": "pcie-slot"
+ },
+ {
+ "name": "chardev-vc",
+ "parent": "chardev"
+ },
+ {
+ "name": "isapc-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "ipoctal232",
+ "parent": "ipack-device"
+ },
+ {
+ "name": "ide-cd",
+ "parent": "ide-device"
+ },
+ {
+ "name": "tls-creds-anon",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "pc-i440fx-2.2-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "isabus-bridge",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "isa-ipmi-kcs",
+ "parent": "isa-device"
+ },
+ {
+ "name": "memory-backend-file",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "virtio-crypto-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtio-keyboard-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "isa-vga",
+ "parent": "isa-device"
+ },
+ {
+ "name": "isa-ide",
+ "parent": "isa-device"
+ },
+ {
+ "name": "qemu:memory-region",
+ "parent": "object"
+ },
+ {
+ "name": "ipmi-bmc-extern",
+ "parent": "ipmi-bmc"
+ },
+ {
+ "name": "rng-random",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "kvm-i8259",
+ "parent": "pic-common"
+ },
+ {
+ "name": "i440FX-pcihost",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "sga",
+ "parent": "isa-device"
+ },
+ {
+ "name": "tpm-tis",
+ "parent": "isa-device"
+ },
+ {
+ "name": "tpm-passthrough",
+ "parent": "tpm-backend"
+ },
+ {
+ "name": "pc-1.2-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "isa-debug-exit",
+ "parent": "isa-device"
+ },
+ {
+ "name": "Opteron_G1-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pc-testdev",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-0.10-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "pc-i440fx-2.3-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "xen-pvdevice",
+ "parent": "pci-device"
+ },
+ {
+ "name": "qemu32-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pcnet",
+ "parent": "pci-device"
+ },
+ {
+ "name": "apic",
+ "parent": "apic-common"
+ },
+ {
+ "name": "ivshmem",
+ "parent": "ivshmem-common"
+ },
+ {
+ "name": "ich9-usb-uhci2",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "hpet",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "adlib",
+ "parent": "isa-device"
+ },
+ {
+ "name": "chardev-gdb",
+ "parent": "chardev"
+ },
+ {
+ "name": "qio-channel-command",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "vhost-user-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "lsi53c895a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-udp",
+ "parent": "chardev"
+ },
+ {
+ "name": "chardev-mux",
+ "parent": "chardev"
+ },
+ {
+ "name": "pxb-bus",
+ "parent": "PCI"
+ },
+ {
+ "name": "usb-audio",
+ "parent": "usb-device"
+ },
+ {
+ "name": "usb-wacom-tablet",
+ "parent": "usb-device"
+ },
+ {
+ "name": "virtio-mmio-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "pc-0.11-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "kvm-apic",
+ "parent": "apic-common"
+ },
+ {
+ "name": "phenom-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "fw_cfg_io",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "usb-net",
+ "parent": "usb-device"
+ },
+ {
+ "name": "ioh3420",
+ "parent": "pcie-root-port-base"
+ },
+ {
+ "name": "virtio-crypto-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "cs4231a",
+ "parent": "isa-device"
+ },
+ {
+ "name": "dc390",
+ "parent": "am53c974"
+ },
+ {
+ "name": "nvme",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-wctablet",
+ "parent": "chardev"
+ },
+ {
+ "name": "i82801b11-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "kvmvapic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "usb-tablet",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "pc-i440fx-2.10-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "sdhci-bus",
+ "parent": "sd-bus"
+ },
+ {
+ "name": "pci-bridge-seat",
+ "parent": "pci-bridge"
+ },
+ {
+ "name": "mch",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pc-i440fx-2.7-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "vhost-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "virtio-balloon-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "tcg-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "usb-bot",
+ "parent": "usb-storage-dev"
+ },
+ {
+ "name": "mmio_interface",
+ "parent": "device"
+ },
+ {
+ "name": "esp",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ICH9-LPC",
+ "parent": "pci-device"
+ },
+ {
+ "name": "edu",
+ "parent": "pci-device"
+ },
+ {
+ "name": "accel",
+ "parent": "object"
+ },
+ {
+ "name": "isa-cirrus-vga",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pxb-pcie-bus",
+ "parent": "PCIE"
+ },
+ {
+ "name": "pc-i440fx-1.6-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "lsi53c810",
+ "parent": "lsi53c895a"
+ },
+ {
+ "name": "kvmclock",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "loader",
+ "parent": "device"
+ },
+ {
+ "name": "migration",
+ "parent": "device"
+ },
+ {
+ "name": "pc-i440fx-2.8-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "ich9-usb-uhci4",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "virtio-serial-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "nvdimm",
+ "parent": "pc-dimm"
+ },
+ {
+ "name": "x3130-upstream",
+ "parent": "pcie-port"
+ },
+ {
+ "name": "ich9-usb-uhci6",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "SandyBridge-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "chardev-spiceport",
+ "parent": "chardev-spice"
+ },
+ {
+ "name": "virtio-balloon-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "qxl",
+ "parent": "pci-qxl"
+ },
+ {
+ "name": "chardev-spicevmc",
+ "parent": "chardev-spice"
+ },
+ {
+ "name": "intel-hda",
+ "parent": "intel-hda-generic"
+ },
+ {
+ "name": "pc-i440fx-1.7-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "max-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-serial-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "ich9-usb-uhci3",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "ICH9 SMB",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ich9-usb-uhci5",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "pxb-pcie",
+ "parent": "pci-device"
+ },
+ {
+ "name": "piix3-ide-xen",
+ "parent": "pci-ide"
+ },
+ {
+ "name": "virtio-input-host-device",
+ "parent": "virtio-input-device"
+ },
+ {
+ "name": "vmxnet3",
+ "parent": "pci-device"
+ },
+ {
+ "name": "IDE",
+ "parent": "bus"
+ },
+ {
+ "name": "VGA",
+ "parent": "pci-vga"
+ },
+ {
+ "name": "pci-testdev",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ich9-usb-uhci1",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "xenpv-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "pci-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "SCSI",
+ "parent": "bus"
+ },
+ {
+ "name": "none-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "sysbus-fdc",
+ "parent": "base-sysbus-fdc"
+ },
+ {
+ "name": "allwinner-ahci",
+ "parent": "sysbus-ahci"
+ },
+ {
+ "name": "n270-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "pci-serial",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pc-q35-2.6-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "athlon-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-rng-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "ccid-card-emulated",
+ "parent": "ccid-card"
+ },
+ {
+ "name": "am53c974",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ISA",
+ "parent": "bus"
+ },
+ {
+ "name": "i8042",
+ "parent": "isa-device"
+ },
+ {
+ "name": "kvm-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "i82559c",
+ "parent": "pci-device"
+ },
+ {
+ "name": "floppy",
+ "parent": "device"
+ },
+ {
+ "name": "i82559b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "i82559a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "scsi-hd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "qtest-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "virtio-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "hda-micro",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "scsi-block",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "ich9-intel-hda",
+ "parent": "intel-hda-generic"
+ },
+ {
+ "name": "rtl8139",
+ "parent": "pci-device"
+ },
+ {
+ "name": "vmmouse",
+ "parent": "isa-device"
+ },
+ {
+ "name": "pc-q35-2.7-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "usb-mtp",
+ "parent": "usb-device"
+ },
+ {
+ "name": "ide-drive",
+ "parent": "ide-device"
+ },
+ {
+ "name": "qio-channel-websock",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "fw_cfg_mem",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "PCI",
+ "parent": "bus"
+ },
+ {
+ "name": "Opteron_G5-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "vmport",
+ "parent": "isa-device"
+ },
+ {
+ "name": "coreduo-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "xen-backend",
+ "parent": "xen-sysdev"
+ },
+ {
+ "name": "virtio-pci-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "virtio-serial-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "xen-platform",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtio-input-host-pci",
+ "parent": "virtio-input-pci"
+ },
+ {
+ "name": "pentium2-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "i82558b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "cryptodev-backend-builtin",
+ "parent": "cryptodev-backend"
+ },
+ {
+ "name": "i82558a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "qemu,register",
+ "parent": "device"
+ },
+ {
+ "name": "ne2k_isa",
+ "parent": "isa-device"
+ },
+ {
+ "name": "sdhci-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-parallel",
+ "parent": "chardev"
+ },
+ {
+ "name": "qemu-xhci",
+ "parent": "base-xhci"
+ },
+ {
+ "name": "pxb",
+ "parent": "pci-device"
+ },
+ {
+ "name": "port92",
+ "parent": "isa-device"
+ },
+ {
+ "name": "e1000",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "Conroe-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "kvm64-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "usb-storage",
+ "parent": "usb-storage-dev"
+ },
+ {
+ "name": "vt82c686b-usb-uhci",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "HDA",
+ "parent": "bus"
+ },
+ {
+ "name": "vmgenid",
+ "parent": "device"
+ },
+ {
+ "name": "pc-1.3-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "usb-serial",
+ "parent": "usb-serial-dev"
+ },
+ {
+ "name": "i82801",
+ "parent": "pci-device"
+ },
+ {
+ "name": "sysbus-ohci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "chardev-msmouse",
+ "parent": "chardev"
+ },
+ {
+ "name": "pc-i440fx-2.4-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "i82557b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "usb-uas",
+ "parent": "usb-device"
+ },
+ {
+ "name": "Broadwell-noTSX-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "i82557c",
+ "parent": "pci-device"
+ },
+ {
+ "name": "Nehalem-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "memory-backend-ram",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "i82557a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtserialport",
+ "parent": "virtio-serial-port"
+ },
+ {
+ "name": "i440FX",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ne2k_pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "smbus-eeprom",
+ "parent": "smbus-device"
+ },
+ {
+ "name": "i82562",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ich9-ahci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "isa-fdc",
+ "parent": "isa-device"
+ },
+ {
+ "name": "sd-card",
+ "parent": "device"
+ },
+ {
+ "name": "pc-0.12-machine",
+ "parent": "generic-pc-machine"
+ },
+ {
+ "name": "kvm32-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "Opteron_G2-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "vfio-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "IndustryPack",
+ "parent": "bus"
+ },
+ {
+ "name": "virtio-gpu-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "ivshmem-plain",
+ "parent": "ivshmem-common"
+ },
+ {
+ "name": "secondary-vga",
+ "parent": "pci-vga"
+ },
+ {
+ "name": "ivshmem-doorbell",
+ "parent": "ivshmem-common"
+ },
+ {
+ "name": "qio-channel-socket",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "pentium-x86_64-cpu",
+ "parent": "x86_64-cpu"
+ },
+ {
+ "name": "virtio-blk-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "virtio-tablet-pci",
+ "parent": "virtio-input-hid-pci"
+ }
+ ],
+ "id": "libvirt-9"
+}
+
+{
+ "return": [
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-10"
+}
+
+{
+ "return": [
+ {
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "vlan",
+ "description": "Integer VLAN id to connect to",
+ "type": "int32"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_mtu",
+ "type": "uint16"
+ },
+ {
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rx_queue_size",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-11"
+}
+
+{
+ "return": [
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-12"
+}
+
+{
+ "id": "libvirt-13",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-14",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-15",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-scsi-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-16",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-17",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-18",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'pci-assign' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "share_intx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "description": "Address (bus/device/function) of the host device, example: 04:10.0",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "configfd",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "prefer_msi",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-19"
+}
+
+{
+ "return": [
+ {
+ "name": "x-pci-sub-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "x-no-kvm-msi",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-opregion",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-vga",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "x-req",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-gms",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-no-kvm-intx",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "host",
+ "description": "Address (bus/device/function) of the host device, example: 04:10.0",
+ "type": "str"
+ },
+ {
+ "name": "x-no-kvm-msix",
+ "type": "bool"
+ },
+ {
+ "name": "x-intx-mmap-timeout-ms",
+ "type": "uint32"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "x-pci-sub-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "sysfsdev",
+ "type": "str"
+ },
+ {
+ "name": "x-no-mmap",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-20"
+}
+
+{
+ "return": [
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "port_index",
+ "type": "uint16"
+ },
+ {
+ "name": "dpofua",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "max_unmap_size",
+ "type": "uint64"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "port_wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "product",
+ "type": "str"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "vendor",
+ "type": "str"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "removable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "max_io_size",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-21"
+}
+
+{
+ "return": [
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "unit",
+ "type": "uint32"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "model",
+ "type": "str"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-22"
+}
+
+{
+ "return": [
+ {
+ "name": "memory-hotplug-support",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "acpi-pci-hotplug-with-bridge-support",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "disable_s4",
+ "type": "uint8"
+ },
+ {
+ "name": "disable_s3",
+ "type": "uint8"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "s4_val",
+ "type": "uint8"
+ },
+ {
+ "name": "smb_io_base",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-23"
+}
+
+{
+ "id": "libvirt-24",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-redir' not found"
+ }
+}
+
+{
+ "id": "libvirt-25",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-host' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-26"
+}
+
+{
+ "return": [
+ {
+ "name": "short_root_bus",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-conf-idx[0]",
+ "type": "child<qemu:memory-region>"
+ },
+ {
+ "name": "pci-hole64-end",
+ "type": "uint64"
+ },
+ {
+ "name": "pci-hole-end",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-hole-start",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-hole64-start",
+ "type": "uint64"
+ },
+ {
+ "name": "pci-hole64-size",
+ "type": "size"
+ },
+ {
+ "name": "pci-conf-data[0]",
+ "type": "child<qemu:memory-region>"
+ }
+ ],
+ "id": "libvirt-27"
+}
+
+{
+ "return": [
+ {
+ "name": "short_root_bus",
+ "type": "uint32"
+ },
+ {
+ "name": "system-mem",
+ "type": "link<qemu:memory-region>"
+ },
+ {
+ "name": "pci-conf-idx[0]",
+ "type": "child<qemu:memory-region>"
+ },
+ {
+ "name": "pcie-mmcfg-mmio[0]",
+ "type": "child<qemu:memory-region>"
+ },
+ {
+ "name": "pci-hole64-start",
+ "type": "uint64"
+ },
+ {
+ "name": "io-mem",
+ "type": "link<qemu:memory-region>"
+ },
+ {
+ "name": "pci-hole64-end",
+ "type": "uint64"
+ },
+ {
+ "name": "pci-hole-end",
+ "type": "uint32"
+ },
+ {
+ "name": "above-4g-mem-size",
+ "type": "size"
+ },
+ {
+ "name": "below-4g-mem-size",
+ "type": "size"
+ },
+ {
+ "name": "ram-mem",
+ "type": "link<qemu:memory-region>"
+ },
+ {
+ "name": "pci-hole-start",
+ "type": "uint32"
+ },
+ {
+ "name": "MCFG",
+ "type": "uint64"
+ },
+ {
+ "name": "mch",
+ "type": "child<mch>"
+ },
+ {
+ "name": "pci-hole64-size",
+ "type": "size"
+ },
+ {
+ "name": "pci-mem",
+ "type": "link<qemu:memory-region>"
+ },
+ {
+ "name": "pci-conf-data[0]",
+ "type": "child<qemu:memory-region>"
+ },
+ {
+ "name": "mcfg_size",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-28"
+}
+
+{
+ "return": [
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "msos-desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "attached",
+ "type": "bool"
+ },
+ {
+ "name": "full-path",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "removable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-29"
+}
+
+{
+ "return": [
+ {
+ "name": "iobase",
+ "type": "uint32"
+ },
+ {
+ "name": "lost_tick_policy",
+ "type": "LostTickPolicy"
+ }
+ ],
+ "id": "libvirt-30"
+}
+
+{
+ "return": [
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mmio",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "qemu-extended-regs",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "big-endian-framebuffer",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-31"
+}
+
+{
+ "return": [
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-32"
+}
+
+{
+ "return": [
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "ram_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "debug",
+ "type": "uint32"
+ },
+ {
+ "name": "vram_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "revision",
+ "type": "uint32"
+ },
+ {
+ "name": "ram_size",
+ "type": "uint32"
+ },
+ {
+ "name": "vram64_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "guestdebug",
+ "type": "uint32"
+ },
+ {
+ "name": "vram_size",
+ "type": "uint64"
+ },
+ {
+ "name": "surfaces",
+ "type": "int32"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint16"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "cmdlog",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-33"
+}
+
+{
+ "return": [
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-gpu-device>"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-34"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ }
+ ],
+ "id": "libvirt-35"
+}
+
+{
+ "return": [
+ {
+ "name": "memory-hotplug-support",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "sci_int",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gpe0_blk_len",
+ "type": "uint32"
+ },
+ {
+ "name": "pm_io_base",
+ "type": "uint32"
+ },
+ {
+ "name": "noreboot",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cpu-hotplug-legacy",
+ "type": "bool"
+ },
+ {
+ "name": "acpi_disable_cmd",
+ "type": "uint8"
+ },
+ {
+ "name": "x-smi-broadcast",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable_s3",
+ "type": "uint8"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "acpi_enable_cmd",
+ "type": "uint8"
+ },
+ {
+ "name": "s4_val",
+ "type": "uint8"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "enable_tco",
+ "type": "bool"
+ },
+ {
+ "name": "disable_s4",
+ "type": "uint8"
+ },
+ {
+ "name": "gpe0_blk",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-36"
+}
+
+{
+ "return": [
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-37"
+}
+
+{
+ "id": "libvirt-38",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-balloon-ccw' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-39"
+}
+
+{
+ "return": [
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "intrs",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "msix",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "msi",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "superspeed-ports-first",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "streams",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "force-pcie-endcap",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "p3",
+ "type": "uint32"
+ },
+ {
+ "name": "p2",
+ "type": "uint32"
+ },
+ {
+ "name": "slots",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-40"
+}
+
+{
+ "return": [
+ {
+ "name": "eim",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "caching-mode",
+ "type": "bool"
+ },
+ {
+ "name": "x-buggy-eim",
+ "type": "bool"
+ },
+ {
+ "name": "intremap",
+ "type": "bool"
+ },
+ {
+ "name": "version",
+ "type": "uint32"
+ },
+ {
+ "name": "pt",
+ "type": "bool"
+ },
+ {
+ "name": "device-iotlb",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-41"
+}
+
+{
+ "return": [
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.12",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.4",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-1.3",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.7",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.6",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "none",
+ "cpu-max": 1
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "xenpv",
+ "cpu-max": 1
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-1.7",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.8",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-1.6",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.7",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.10",
+ "is-default": true,
+ "cpu-max": 255,
+ "alias": "pc"
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.11",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.3",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.10",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-1.2",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.2",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "isapc",
+ "cpu-max": 1
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.5",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "xenfv",
+ "cpu-max": 128
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.15",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.14",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-1.5",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.6",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-1.4",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.5",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.9",
+ "cpu-max": 288
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-1.1",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.1",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.8",
+ "cpu-max": 288
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-1.0",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.0",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.4",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-i440fx-2.9",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-0.13",
+ "cpu-max": 255
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "pc-q35-2.10",
+ "cpu-max": 288,
+ "alias": "q35"
+ }
+ ],
+ "id": "libvirt-42"
+}
+
+{
+ "return": [
+ {
+ "name": "max",
+ "typename": "max-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "host",
+ "typename": "host-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "base",
+ "typename": "base-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu64",
+ "typename": "qemu64-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu32",
+ "typename": "qemu32-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "phenom",
+ "typename": "phenom-x86_64-cpu",
+ "unavailable-features": [
+ "mmxext",
+ "fxsr-opt",
+ "3dnowext",
+ "3dnow",
+ "sse4a",
+ "npt"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium3",
+ "typename": "pentium3-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium2",
+ "typename": "pentium2-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium",
+ "typename": "pentium-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "n270",
+ "typename": "n270-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "kvm64",
+ "typename": "kvm64-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "kvm32",
+ "typename": "kvm32-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "coreduo",
+ "typename": "coreduo-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "core2duo",
+ "typename": "core2duo-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "athlon",
+ "typename": "athlon-x86_64-cpu",
+ "unavailable-features": [
+ "mmxext",
+ "3dnowext",
+ "3dnow"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Westmere",
+ "typename": "Westmere-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Skylake-Server",
+ "typename": "Skylake-Server-x86_64-cpu",
+ "unavailable-features": [
+ "hle",
+ "rtm",
+ "mpx",
+ "avx512f",
+ "avx512dq",
+ "rdseed",
+ "adx",
+ "smap",
+ "clwb",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "3dnowprefetch",
+ "xsavec",
+ "xgetbv1",
+ "mpx",
+ "mpx",
+ "avx512f",
+ "avx512f",
+ "avx512f"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Skylake-Client",
+ "typename": "Skylake-Client-x86_64-cpu",
+ "unavailable-features": [
+ "hle",
+ "rtm",
+ "mpx",
+ "rdseed",
+ "adx",
+ "smap",
+ "3dnowprefetch",
+ "xsavec",
+ "xgetbv1",
+ "mpx",
+ "mpx"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "SandyBridge",
+ "typename": "SandyBridge-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Penryn",
+ "typename": "Penryn-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G5",
+ "typename": "Opteron_G5-x86_64-cpu",
+ "unavailable-features": [
+ "sse4a",
+ "misalignsse",
+ "3dnowprefetch",
+ "xop",
+ "fma4",
+ "tbm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G4",
+ "typename": "Opteron_G4-x86_64-cpu",
+ "unavailable-features": [
+ "sse4a",
+ "misalignsse",
+ "3dnowprefetch",
+ "xop",
+ "fma4"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G3",
+ "typename": "Opteron_G3-x86_64-cpu",
+ "unavailable-features": [
+ "sse4a",
+ "misalignsse"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G2",
+ "typename": "Opteron_G2-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G1",
+ "typename": "Opteron_G1-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Nehalem",
+ "typename": "Nehalem-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "IvyBridge",
+ "typename": "IvyBridge-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Haswell",
+ "typename": "Haswell-x86_64-cpu",
+ "unavailable-features": [
+ "hle",
+ "rtm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Haswell-noTSX",
+ "typename": "Haswell-noTSX-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Conroe",
+ "typename": "Conroe-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Broadwell",
+ "typename": "Broadwell-x86_64-cpu",
+ "unavailable-features": [
+ "hle",
+ "rtm",
+ "rdseed",
+ "adx",
+ "smap",
+ "3dnowprefetch"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Broadwell-noTSX",
+ "typename": "Broadwell-noTSX-x86_64-cpu",
+ "unavailable-features": [
+ "rdseed",
+ "adx",
+ "smap",
+ "3dnowprefetch"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "486",
+ "typename": "486-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-43"
+}
+
+{
+ "return": [
+ "tpm-tis"
+ ],
+ "id": "libvirt-44"
+}
+
+{
+ "return": [
+ "passthrough"
+ ],
+ "id": "libvirt-45"
+}
+
+{
+ "return": [
+ {
+ "parameters": [
+ {
+ "name": "timeout",
+ "help": "Request timeout in seconds (default 0 = no timeout)",
+ "type": "number"
+ },
+ {
+ "name": "initiator-name",
+ "help": "Initiator iqn name to use when connecting",
+ "type": "string"
+ },
+ {
+ "name": "header-digest",
+ "help": "HeaderDigest setting. {CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}",
+ "type": "string"
+ },
+ {
+ "name": "password-secret",
+ "help": "ID of the secret providing password for CHAP authentication to target",
+ "type": "string"
+ },
+ {
+ "name": "password",
+ "help": "password for CHAP authentication to target",
+ "type": "string"
+ },
+ {
+ "name": "user",
+ "help": "username for CHAP authentication to target",
+ "type": "string"
+ }
+ ],
+ "option": "iscsi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "non-adaptive",
+ "type": "boolean"
+ },
+ {
+ "name": "lossy",
+ "type": "boolean"
+ },
+ {
+ "name": "acl",
+ "type": "boolean"
+ },
+ {
+ "name": "x509verify",
+ "type": "string"
+ },
+ {
+ "name": "tls",
+ "type": "boolean"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "key-delay-ms",
+ "type": "number"
+ },
+ {
+ "name": "lock-key-sync",
+ "type": "boolean"
+ },
+ {
+ "name": "reverse",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "connections",
+ "type": "number"
+ },
+ {
+ "name": "head",
+ "type": "number"
+ },
+ {
+ "name": "display",
+ "type": "string"
+ },
+ {
+ "name": "share",
+ "type": "string"
+ },
+ {
+ "name": "x509",
+ "type": "string"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "websocket",
+ "type": "string"
+ },
+ {
+ "name": "vnc",
+ "type": "string"
+ }
+ ],
+ "option": "vnc"
+ },
+ {
+ "parameters": [
+ {
+ "name": "head",
+ "type": "number"
+ },
+ {
+ "name": "display",
+ "type": "string"
+ },
+ {
+ "name": "seamless-migration",
+ "type": "boolean"
+ },
+ {
+ "name": "playback-compression",
+ "type": "boolean"
+ },
+ {
+ "name": "agent-mouse",
+ "type": "boolean"
+ },
+ {
+ "name": "streaming-video",
+ "type": "string"
+ },
+ {
+ "name": "zlib-glz-wan-compression",
+ "type": "string"
+ },
+ {
+ "name": "jpeg-wan-compression",
+ "type": "string"
+ },
+ {
+ "name": "image-compression",
+ "type": "string"
+ },
+ {
+ "name": "plaintext-channel",
+ "type": "string"
+ },
+ {
+ "name": "tls-channel",
+ "type": "string"
+ },
+ {
+ "name": "tls-ciphers",
+ "type": "string"
+ },
+ {
+ "name": "x509-dh-key-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-cacert-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-cert-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-key-password",
+ "type": "string"
+ },
+ {
+ "name": "x509-key-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-dir",
+ "type": "string"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-agent-file-xfer",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-copy-paste",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-ticketing",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "string"
+ },
+ {
+ "name": "unix",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "addr",
+ "type": "string"
+ },
+ {
+ "name": "tls-port",
+ "type": "number"
+ },
+ {
+ "name": "port",
+ "type": "number"
+ }
+ ],
+ "option": "spice"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "smbios"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "acpi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "mount_tag",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "virtfs"
+ },
+ {
+ "parameters": [
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "fsdev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "string",
+ "help": "Sets content of the blob to be inserted from a string",
+ "type": "string"
+ },
+ {
+ "name": "file",
+ "help": "Sets the name of the file from which\nthe fw_cfg blob will be loaded",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "help": "Sets the fw_cfg name of the blob to be inserted",
+ "type": "string"
+ }
+ ],
+ "option": "fw_cfg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "arg",
+ "type": "string"
+ },
+ {
+ "name": "target",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "semihosting-config"
+ },
+ {
+ "parameters": [
+ {
+ "name": "rrsnapshot",
+ "type": "string"
+ },
+ {
+ "name": "rrfile",
+ "type": "string"
+ },
+ {
+ "name": "rr",
+ "type": "string"
+ },
+ {
+ "name": "sleep",
+ "type": "boolean"
+ },
+ {
+ "name": "align",
+ "type": "boolean"
+ },
+ {
+ "name": "shift",
+ "type": "string"
+ }
+ ],
+ "option": "icount"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "numa"
+ },
+ {
+ "parameters": [
+ {
+ "name": "debug-threads",
+ "help": "When enabled, name the individual threads; defaults off.\nNOTE: The thread names are for debugging and not a\nstable API.",
+ "type": "boolean"
+ },
+ {
+ "name": "process",
+ "help": "Sets the name of the QEMU process, as shown in top etc",
+ "type": "string"
+ },
+ {
+ "name": "guest",
+ "help": "Sets the name of the guest.\nThis name will be displayed in the SDL window caption.\nThe name will also be used for the VNC server",
+ "type": "string"
+ }
+ ],
+ "option": "name"
+ },
+ {
+ "parameters": [
+ {
+ "name": "timestamp",
+ "type": "boolean"
+ }
+ ],
+ "option": "msg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "mlock",
+ "type": "boolean"
+ }
+ ],
+ "option": "realtime"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "tpmdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "object"
+ },
+ {
+ "parameters": [
+ {
+ "name": "opaque",
+ "help": "free-form string used to describe fd",
+ "type": "string"
+ },
+ {
+ "name": "set",
+ "help": "ID of the fd set to add fd to",
+ "type": "number"
+ },
+ {
+ "name": "fd",
+ "help": "file descriptor of which a duplicate is added to fd set",
+ "type": "number"
+ }
+ ],
+ "option": "add-fd"
+ },
+ {
+ "parameters": [
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "sandbox"
+ },
+ {
+ "parameters": [
+ {
+ "name": "strict",
+ "type": "boolean"
+ },
+ {
+ "name": "reboot-timeout",
+ "type": "string"
+ },
+ {
+ "name": "splash-time",
+ "type": "string"
+ },
+ {
+ "name": "splash",
+ "type": "string"
+ },
+ {
+ "name": "menu",
+ "type": "boolean"
+ },
+ {
+ "name": "once",
+ "type": "string"
+ },
+ {
+ "name": "order",
+ "type": "string"
+ }
+ ],
+ "option": "boot-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxcpus",
+ "type": "number"
+ },
+ {
+ "name": "threads",
+ "type": "number"
+ },
+ {
+ "name": "cores",
+ "type": "number"
+ },
+ {
+ "name": "sockets",
+ "type": "number"
+ },
+ {
+ "name": "cpus",
+ "type": "number"
+ }
+ ],
+ "option": "smp-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxmem",
+ "type": "size"
+ },
+ {
+ "name": "slots",
+ "type": "number"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ }
+ ],
+ "option": "memory"
+ },
+ {
+ "parameters": [
+ {
+ "name": "thread",
+ "help": "Enable/disable multi-threaded TCG",
+ "type": "string"
+ },
+ {
+ "name": "accel",
+ "help": "Select the type of accelerator",
+ "type": "string"
+ }
+ ],
+ "option": "accel"
+ },
+ {
+ "parameters": [
+ {
+ "name": "loadparm",
+ "help": "Up to 8 chars in set of [A-Za-z0-9. ](lower case chars converted to upper case) to pass to machine loader, boot manager, and guest kernel",
+ "type": "string"
+ },
+ {
+ "name": "dea-key-wrap",
+ "help": "enable/disable DEA key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "aes-key-wrap",
+ "help": "enable/disable AES key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "help": "Set on to disable self-describing migration",
+ "type": "boolean"
+ },
+ {
+ "name": "iommu",
+ "help": "Set on/off to enable/disable Intel IOMMU (VT-d)",
+ "type": "boolean"
+ },
+ {
+ "name": "firmware",
+ "help": "firmware image",
+ "type": "string"
+ },
+ {
+ "name": "usb",
+ "help": "Set on/off to enable/disable usb",
+ "type": "boolean"
+ },
+ {
+ "name": "mem-merge",
+ "help": "enable/disable memory merge support",
+ "type": "boolean"
+ },
+ {
+ "name": "dump-guest-core",
+ "help": "Include guest memory in a core dump",
+ "type": "boolean"
+ },
+ {
+ "name": "dt_compatible",
+ "help": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "phandle_start",
+ "help": "The first phandle ID we may generate dynamically",
+ "type": "number"
+ },
+ {
+ "name": "dumpdtb",
+ "help": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "dtb",
+ "help": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "help": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "initrd",
+ "help": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "help": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "kvm_shadow_mem",
+ "help": "KVM shadow MMU size",
+ "type": "size"
+ },
+ {
+ "name": "kernel_irqchip",
+ "help": "use KVM in-kernel irqchip",
+ "type": "boolean"
+ },
+ {
+ "name": "accel",
+ "help": "accelerator list",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "help": "emulated machine",
+ "type": "string"
+ }
+ ],
+ "option": "machine"
+ },
+ {
+ "parameters": [
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "number"
+ }
+ ],
+ "option": "option-rom"
+ },
+ {
+ "parameters": [
+ {
+ "name": "file",
+ "type": "string"
+ },
+ {
+ "name": "events",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "string"
+ }
+ ],
+ "option": "trace"
+ },
+ {
+ "parameters": [
+ {
+ "name": "pretty",
+ "type": "boolean"
+ },
+ {
+ "name": "default",
+ "type": "boolean"
+ },
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "mode",
+ "type": "string"
+ }
+ ],
+ "option": "mon"
+ },
+ {
+ "parameters": [
+ {
+ "name": "value",
+ "type": "string"
+ },
+ {
+ "name": "property",
+ "type": "string"
+ },
+ {
+ "name": "driver",
+ "type": "string"
+ }
+ ],
+ "option": "global"
+ },
+ {
+ "parameters": [
+ {
+ "name": "driftfix",
+ "type": "string"
+ },
+ {
+ "name": "clock",
+ "type": "string"
+ },
+ {
+ "name": "base",
+ "type": "string"
+ }
+ ],
+ "option": "rtc"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "net"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "netdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "device"
+ },
+ {
+ "parameters": [
+ {
+ "name": "logappend",
+ "type": "boolean"
+ },
+ {
+ "name": "logfile",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "type": "boolean"
+ },
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ },
+ {
+ "name": "debug",
+ "type": "number"
+ },
+ {
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "name": "signal",
+ "type": "boolean"
+ },
+ {
+ "name": "mux",
+ "type": "boolean"
+ },
+ {
+ "name": "rows",
+ "type": "number"
+ },
+ {
+ "name": "cols",
+ "type": "number"
+ },
+ {
+ "name": "height",
+ "type": "number"
+ },
+ {
+ "name": "width",
+ "type": "number"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "tn3270",
+ "type": "boolean"
+ },
+ {
+ "name": "telnet",
+ "type": "boolean"
+ },
+ {
+ "name": "reconnect",
+ "type": "number"
+ },
+ {
+ "name": "delay",
+ "type": "boolean"
+ },
+ {
+ "name": "server",
+ "type": "boolean"
+ },
+ {
+ "name": "wait",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "localport",
+ "type": "string"
+ },
+ {
+ "name": "localaddr",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "host",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "backend",
+ "type": "string"
+ }
+ ],
+ "option": "chardev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "copy-on-read",
+ "help": "copy read data from backing file into image file",
+ "type": "boolean"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "rerror",
+ "help": "read error action",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "open drive file as read-only",
+ "type": "boolean"
+ },
+ {
+ "name": "file",
+ "help": "file name",
+ "type": "string"
+ },
+ {
+ "name": "serial",
+ "help": "disk serial number",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "help": "pci address (virtio only)",
+ "type": "string"
+ },
+ {
+ "name": "boot",
+ "help": "(deprecated, ignored)",
+ "type": "boolean"
+ },
+ {
+ "name": "trans",
+ "help": "chs translation (auto, lba, none)",
+ "type": "string"
+ },
+ {
+ "name": "secs",
+ "help": "number of sectors (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "heads",
+ "help": "number of heads (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "cyls",
+ "help": "number of cylinders (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "if",
+ "help": "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)",
+ "type": "string"
+ },
+ {
+ "name": "media",
+ "help": "media type (disk, cdrom)",
+ "type": "string"
+ },
+ {
+ "name": "index",
+ "help": "index number",
+ "type": "number"
+ },
+ {
+ "name": "unit",
+ "help": "unit number (i.e. lun for scsi)",
+ "type": "number"
+ },
+ {
+ "name": "bus",
+ "help": "bus number",
+ "type": "number"
+ },
+ {
+ "name": "stats-account-failed",
+ "help": "whether to account for failed I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "stats-account-invalid",
+ "help": "whether to account for invalid I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "detect-zeroes",
+ "help": "try to optimize zero writes (off, on, unmap)",
+ "type": "string"
+ },
+ {
+ "name": "throttling.group",
+ "help": "name of the block throttling group",
+ "type": "string"
+ },
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "format",
+ "help": "disk format (raw, qcow2, ...)",
+ "type": "string"
+ },
+ {
+ "name": "cache.writeback",
+ "help": "Enable writeback mode",
+ "type": "boolean"
+ },
+ {
+ "name": "aio",
+ "help": "host AIO implementation (threads, native)",
+ "type": "string"
+ },
+ {
+ "name": "snapshot",
+ "help": "enable/disable snapshot mode",
+ "type": "boolean"
+ },
+ {
+ "name": "force-share",
+ "help": "always accept other writers (default: off)",
+ "type": "boolean"
+ },
+ {
+ "name": "discard",
+ "help": "discard operation (ignore/off, unmap/on)",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "Node is opened in read-only mode",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.no-flush",
+ "help": "Ignore flush requests",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.direct",
+ "help": "Bypass software writeback cache on the host",
+ "type": "boolean"
+ },
+ {
+ "name": "driver",
+ "help": "Block driver to use for the node",
+ "type": "string"
+ },
+ {
+ "name": "node-name",
+ "help": "Node name of the block device node",
+ "type": "string"
+ }
+ ],
+ "option": "drive"
+ }
+ ],
+ "id": "libvirt-46"
+}
+
+{
+ "return": [
+ {
+ "state": false,
+ "capability": "xbzrle"
+ },
+ {
+ "state": false,
+ "capability": "rdma-pin-all"
+ },
+ {
+ "state": false,
+ "capability": "auto-converge"
+ },
+ {
+ "state": false,
+ "capability": "zero-blocks"
+ },
+ {
+ "state": false,
+ "capability": "compress"
+ },
+ {
+ "state": false,
+ "capability": "events"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-ram"
+ },
+ {
+ "state": false,
+ "capability": "x-colo"
+ },
+ {
+ "state": false,
+ "capability": "release-ram"
+ },
+ {
+ "state": false,
+ "capability": "block"
+ },
+ {
+ "state": false,
+ "capability": "return-path"
+ }
+ ],
+ "id": "libvirt-47"
+}
+
+{
+ "return": [
+ {
+ "name": "ACPI_DEVICE_OST",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "BALLOON_CHANGE",
+ "meta-type": "event",
+ "arg-type": "1"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED",
+ "meta-type": "event",
+ "arg-type": "2"
+ },
+ {
+ "name": "BLOCK_IO_ERROR",
+ "meta-type": "event",
+ "arg-type": "3"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED",
+ "meta-type": "event",
+ "arg-type": "4"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "5"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR",
+ "meta-type": "event",
+ "arg-type": "6"
+ },
+ {
+ "name": "BLOCK_JOB_READY",
+ "meta-type": "event",
+ "arg-type": "7"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD",
+ "meta-type": "event",
+ "arg-type": "8"
+ },
+ {
+ "name": "DEVICE_DELETED",
+ "meta-type": "event",
+ "arg-type": "9"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED",
+ "meta-type": "event",
+ "arg-type": "10"
+ },
+ {
+ "name": "DUMP_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "11"
+ },
+ {
+ "name": "GUEST_PANICKED",
+ "meta-type": "event",
+ "arg-type": "12"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR",
+ "meta-type": "event",
+ "arg-type": "13"
+ },
+ {
+ "name": "MIGRATION",
+ "meta-type": "event",
+ "arg-type": "14"
+ },
+ {
+ "name": "MIGRATION_PASS",
+ "meta-type": "event",
+ "arg-type": "15"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED",
+ "meta-type": "event",
+ "arg-type": "16"
+ },
+ {
+ "name": "POWERDOWN",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "QUORUM_FAILURE",
+ "meta-type": "event",
+ "arg-type": "18"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD",
+ "meta-type": "event",
+ "arg-type": "19"
+ },
+ {
+ "name": "RESET",
+ "meta-type": "event",
+ "arg-type": "20"
+ },
+ {
+ "name": "RESUME",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "RTC_CHANGE",
+ "meta-type": "event",
+ "arg-type": "21"
+ },
+ {
+ "name": "SHUTDOWN",
+ "meta-type": "event",
+ "arg-type": "22"
+ },
+ {
+ "name": "SPICE_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "23"
+ },
+ {
+ "name": "SPICE_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "24"
+ },
+ {
+ "name": "SPICE_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "25"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "STOP",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "SUSPEND",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "SUSPEND_DISK",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "VNC_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "26"
+ },
+ {
+ "name": "VNC_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "27"
+ },
+ {
+ "name": "VNC_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "28"
+ },
+ {
+ "name": "VSERPORT_CHANGE",
+ "meta-type": "event",
+ "arg-type": "29"
+ },
+ {
+ "name": "WAKEUP",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "WATCHDOG",
+ "meta-type": "event",
+ "arg-type": "30"
+ },
+ {
+ "name": "add-fd",
+ "ret-type": "32",
+ "meta-type": "command",
+ "arg-type": "31"
+ },
+ {
+ "name": "add_client",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "33"
+ },
+ {
+ "name": "balloon",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "34"
+ },
+ {
+ "name": "block-commit",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "35"
+ },
+ {
+ "name": "block-dirty-bitmap-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "36"
+ },
+ {
+ "name": "block-dirty-bitmap-clear",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-dirty-bitmap-remove",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-job-cancel",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "38"
+ },
+ {
+ "name": "block-job-complete",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "39"
+ },
+ {
+ "name": "block-job-pause",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "40"
+ },
+ {
+ "name": "block-job-resume",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "41"
+ },
+ {
+ "name": "block-job-set-speed",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "42"
+ },
+ {
+ "name": "block-set-write-threshold",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "43"
+ },
+ {
+ "name": "block-stream",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "44"
+ },
+ {
+ "name": "block_passwd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "block_resize",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "46"
+ },
+ {
+ "name": "block_set_io_throttle",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "47"
+ },
+ {
+ "name": "blockdev-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "48"
+ },
+ {
+ "name": "blockdev-backup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "49"
+ },
+ {
+ "name": "blockdev-change-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "50"
+ },
+ {
+ "name": "blockdev-close-tray",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "51"
+ },
+ {
+ "name": "blockdev-del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "52"
+ },
+ {
+ "name": "blockdev-mirror",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "53"
+ },
+ {
+ "name": "blockdev-open-tray",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "54"
+ },
+ {
+ "name": "blockdev-snapshot",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "55"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync",
+ "ret-type": "57",
+ "meta-type": "command",
+ "arg-type": "56"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "58"
+ },
+ {
+ "name": "blockdev-snapshot-sync",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "59"
+ },
+ {
+ "name": "change",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "60"
+ },
+ {
+ "name": "change-backing-file",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "61"
+ },
+ {
+ "name": "change-vnc-password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "62"
+ },
+ {
+ "name": "chardev-add",
+ "ret-type": "64",
+ "meta-type": "command",
+ "arg-type": "63"
+ },
+ {
+ "name": "chardev-change",
+ "ret-type": "64",
+ "meta-type": "command",
+ "arg-type": "65"
+ },
+ {
+ "name": "chardev-remove",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "66"
+ },
+ {
+ "name": "chardev-send-break",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "67"
+ },
+ {
+ "name": "client_migrate_info",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "68"
+ },
+ {
+ "name": "closefd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "69"
+ },
+ {
+ "name": "cont",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "cpu",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "70"
+ },
+ {
+ "name": "cpu-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "71"
+ },
+ {
+ "name": "device-list-properties",
+ "ret-type": "[73]",
+ "meta-type": "command",
+ "arg-type": "72"
+ },
+ {
+ "name": "device_add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "74"
+ },
+ {
+ "name": "device_del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "75"
+ },
+ {
+ "name": "drive-backup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "76"
+ },
+ {
+ "name": "drive-mirror",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "77"
+ },
+ {
+ "name": "dump-guest-memory",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "78"
+ },
+ {
+ "name": "dump-skeys",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "79"
+ },
+ {
+ "name": "eject",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "80"
+ },
+ {
+ "name": "expire_password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "81"
+ },
+ {
+ "name": "getfd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "82"
+ },
+ {
+ "name": "human-monitor-command",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "83"
+ },
+ {
+ "name": "inject-nmi",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "input-send-event",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "84"
+ },
+ {
+ "name": "memsave",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "85"
+ },
+ {
+ "name": "migrate",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "86"
+ },
+ {
+ "name": "migrate-incoming",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "87"
+ },
+ {
+ "name": "migrate-set-cache-size",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "88"
+ },
+ {
+ "name": "migrate-set-capabilities",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "89"
+ },
+ {
+ "name": "migrate-set-parameters",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "90"
+ },
+ {
+ "name": "migrate-start-postcopy",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "migrate_cancel",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "migrate_set_downtime",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "91"
+ },
+ {
+ "name": "migrate_set_speed",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "92"
+ },
+ {
+ "name": "nbd-server-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "93"
+ },
+ {
+ "name": "nbd-server-start",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "94"
+ },
+ {
+ "name": "nbd-server-stop",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "netdev_add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "95"
+ },
+ {
+ "name": "netdev_del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "96"
+ },
+ {
+ "name": "object-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "97"
+ },
+ {
+ "name": "object-del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "98"
+ },
+ {
+ "name": "pmemsave",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "99"
+ },
+ {
+ "name": "qmp_capabilities",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "qom-get",
+ "ret-type": "any",
+ "meta-type": "command",
+ "arg-type": "100"
+ },
+ {
+ "name": "qom-list",
+ "ret-type": "[102]",
+ "meta-type": "command",
+ "arg-type": "101"
+ },
+ {
+ "name": "qom-list-types",
+ "ret-type": "[104]",
+ "meta-type": "command",
+ "arg-type": "103"
+ },
+ {
+ "name": "qom-set",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "105"
+ },
+ {
+ "name": "query-acpi-ospm-status",
+ "ret-type": "[106]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-balloon",
+ "ret-type": "107",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block",
+ "ret-type": "[108]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block-jobs",
+ "ret-type": "[109]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-blockstats",
+ "ret-type": "[111]",
+ "meta-type": "command",
+ "arg-type": "110"
+ },
+ {
+ "name": "query-chardev",
+ "ret-type": "[112]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-chardev-backends",
+ "ret-type": "[113]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-command-line-options",
+ "ret-type": "[115]",
+ "meta-type": "command",
+ "arg-type": "114"
+ },
+ {
+ "name": "query-commands",
+ "ret-type": "[116]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-cpu-definitions",
+ "ret-type": "[117]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-cpu-model-baseline",
+ "ret-type": "119",
+ "meta-type": "command",
+ "arg-type": "118"
+ },
+ {
+ "name": "query-cpu-model-comparison",
+ "ret-type": "121",
+ "meta-type": "command",
+ "arg-type": "120"
+ },
+ {
+ "name": "query-cpu-model-expansion",
+ "ret-type": "123",
+ "meta-type": "command",
+ "arg-type": "122"
+ },
+ {
+ "name": "query-cpus",
+ "ret-type": "[124]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-dump",
+ "ret-type": "125",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-dump-guest-memory-capability",
+ "ret-type": "126",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-events",
+ "ret-type": "[127]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-fdsets",
+ "ret-type": "[128]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-gic-capabilities",
+ "ret-type": "[129]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-hotpluggable-cpus",
+ "ret-type": "[130]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-iothreads",
+ "ret-type": "[131]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-kvm",
+ "ret-type": "132",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-machines",
+ "ret-type": "[133]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memdev",
+ "ret-type": "[134]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memory-devices",
+ "ret-type": "[135]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-mice",
+ "ret-type": "[136]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate",
+ "ret-type": "137",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-cache-size",
+ "ret-type": "int",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-capabilities",
+ "ret-type": "[138]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-parameters",
+ "ret-type": "139",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-name",
+ "ret-type": "140",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-named-block-nodes",
+ "ret-type": "[141]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-pci",
+ "ret-type": "[142]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-qmp-schema",
+ "ret-type": "[143]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-rocker",
+ "ret-type": "145",
+ "meta-type": "command",
+ "arg-type": "144"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows",
+ "ret-type": "[147]",
+ "meta-type": "command",
+ "arg-type": "146"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups",
+ "ret-type": "[149]",
+ "meta-type": "command",
+ "arg-type": "148"
+ },
+ {
+ "name": "query-rocker-ports",
+ "ret-type": "[151]",
+ "meta-type": "command",
+ "arg-type": "150"
+ },
+ {
+ "name": "query-rx-filter",
+ "ret-type": "[153]",
+ "meta-type": "command",
+ "arg-type": "152"
+ },
+ {
+ "name": "query-spice",
+ "ret-type": "154",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-status",
+ "ret-type": "155",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-target",
+ "ret-type": "156",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm",
+ "ret-type": "[157]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm-models",
+ "ret-type": "[158]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm-types",
+ "ret-type": "[159]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-uuid",
+ "ret-type": "160",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-version",
+ "ret-type": "161",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vm-generation-id",
+ "ret-type": "162",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vnc",
+ "ret-type": "163",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vnc-servers",
+ "ret-type": "[164]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-xen-replication-status",
+ "ret-type": "165",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "quit",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "remove-fd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "166"
+ },
+ {
+ "name": "ringbuf-read",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "167"
+ },
+ {
+ "name": "ringbuf-write",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "168"
+ },
+ {
+ "name": "rtc-reset-reinjection",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "screendump",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "169"
+ },
+ {
+ "name": "send-key",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "170"
+ },
+ {
+ "name": "set_link",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "171"
+ },
+ {
+ "name": "set_password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "172"
+ },
+ {
+ "name": "stop",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_powerdown",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_reset",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_wakeup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "trace-event-get-state",
+ "ret-type": "[174]",
+ "meta-type": "command",
+ "arg-type": "173"
+ },
+ {
+ "name": "trace-event-set-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "175"
+ },
+ {
+ "name": "transaction",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "176"
+ },
+ {
+ "name": "x-blockdev-change",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "177"
+ },
+ {
+ "name": "x-blockdev-insert-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "178"
+ },
+ {
+ "name": "x-blockdev-remove-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "179"
+ },
+ {
+ "name": "x-colo-lost-heartbeat",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256",
+ "ret-type": "180",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "xen-colo-do-checkpoint",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "xen-load-devices-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "181"
+ },
+ {
+ "name": "xen-save-devices-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "182"
+ },
+ {
+ "name": "xen-set-global-dirty-log",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "183"
+ },
+ {
+ "name": "xen-set-replication",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "184"
+ },
+ {
+ "name": "0",
+ "members": [
+ {
+ "name": "info",
+ "type": "106"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "1",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "2",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "fatal",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "3",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "185"
+ },
+ {
+ "name": "action",
+ "type": "186"
+ },
+ {
+ "name": "nospace",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "4",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "5",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "6",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "185"
+ },
+ {
+ "name": "action",
+ "type": "186"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "7",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "8",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "amount-exceeded",
+ "type": "int"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "9",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "10",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "tray-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "11",
+ "members": [
+ {
+ "name": "result",
+ "type": "125"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "12",
+ "members": [
+ {
+ "name": "action",
+ "type": "188"
+ },
+ {
+ "name": "info",
+ "default": null,
+ "type": "189"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "13",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "14",
+ "members": [
+ {
+ "name": "status",
+ "type": "190"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "15",
+ "members": [
+ {
+ "name": "pass",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "16",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "17",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "18",
+ "members": [
+ {
+ "name": "reference",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "19",
+ "members": [
+ {
+ "name": "type",
+ "type": "191"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "20",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "21",
+ "members": [
+ {
+ "name": "offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "22",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "23",
+ "members": [
+ {
+ "name": "server",
+ "type": "192"
+ },
+ {
+ "name": "client",
+ "type": "192"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "24",
+ "members": [
+ {
+ "name": "server",
+ "type": "192"
+ },
+ {
+ "name": "client",
+ "type": "192"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "25",
+ "members": [
+ {
+ "name": "server",
+ "type": "193"
+ },
+ {
+ "name": "client",
+ "type": "194"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "26",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "196"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "27",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "197"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "28",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "197"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "29",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "30",
+ "members": [
+ {
+ "name": "action",
+ "type": "198"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "31",
+ "members": [
+ {
+ "name": "fdset-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "32",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "33",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "fdname",
+ "type": "str"
+ },
+ {
+ "name": "skipauth",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tls",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "34",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "35",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "top",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "36",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "persistent",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "autoload",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "37",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "38",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "39",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "40",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "41",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "42",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "43",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "44",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "base-node",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "45",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "46",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "47",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "48",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "blkdebug",
+ "type": "204"
+ },
+ {
+ "case": "blkverify",
+ "type": "205"
+ },
+ {
+ "case": "bochs",
+ "type": "206"
+ },
+ {
+ "case": "cloop",
+ "type": "206"
+ },
+ {
+ "case": "dmg",
+ "type": "206"
+ },
+ {
+ "case": "file",
+ "type": "207"
+ },
+ {
+ "case": "ftp",
+ "type": "208"
+ },
+ {
+ "case": "ftps",
+ "type": "209"
+ },
+ {
+ "case": "gluster",
+ "type": "210"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "207"
+ },
+ {
+ "case": "host_device",
+ "type": "207"
+ },
+ {
+ "case": "http",
+ "type": "211"
+ },
+ {
+ "case": "https",
+ "type": "212"
+ },
+ {
+ "case": "iscsi",
+ "type": "213"
+ },
+ {
+ "case": "luks",
+ "type": "214"
+ },
+ {
+ "case": "nbd",
+ "type": "215"
+ },
+ {
+ "case": "nfs",
+ "type": "216"
+ },
+ {
+ "case": "null-aio",
+ "type": "217"
+ },
+ {
+ "case": "null-co",
+ "type": "217"
+ },
+ {
+ "case": "parallels",
+ "type": "206"
+ },
+ {
+ "case": "qcow2",
+ "type": "218"
+ },
+ {
+ "case": "qcow",
+ "type": "219"
+ },
+ {
+ "case": "qed",
+ "type": "220"
+ },
+ {
+ "case": "quorum",
+ "type": "221"
+ },
+ {
+ "case": "raw",
+ "type": "222"
+ },
+ {
+ "case": "rbd",
+ "type": "223"
+ },
+ {
+ "case": "replication",
+ "type": "224"
+ },
+ {
+ "case": "sheepdog",
+ "type": "225"
+ },
+ {
+ "case": "ssh",
+ "type": "226"
+ },
+ {
+ "case": "vdi",
+ "type": "206"
+ },
+ {
+ "case": "vhdx",
+ "type": "206"
+ },
+ {
+ "case": "vmdk",
+ "type": "220"
+ },
+ {
+ "case": "vpc",
+ "type": "206"
+ },
+ {
+ "case": "vvfat",
+ "type": "227"
+ },
+ {
+ "case": "vxhs",
+ "type": "228"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "200"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "discard",
+ "default": null,
+ "type": "201"
+ },
+ {
+ "name": "cache",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "read-only",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "force-share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detect-zeroes",
+ "default": null,
+ "type": "203"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "49",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "50",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "read-only-mode",
+ "default": null,
+ "type": "230"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "51",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "52",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "53",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "replaces",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buf-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "54",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "55",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "overlay",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "56",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "57",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vm-state-size",
+ "type": "int"
+ },
+ {
+ "name": "date-sec",
+ "type": "int"
+ },
+ {
+ "name": "date-nsec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-sec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-nsec",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "58",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "59",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot-file",
+ "type": "str"
+ },
+ {
+ "name": "snapshot-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "60",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "arg",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "61",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "image-node-name",
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "62",
+ "members": [
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "63",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "232"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "64",
+ "members": [
+ {
+ "name": "pty",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "65",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "232"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "66",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "67",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "68",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "hostname",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cert-subject",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "69",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "70",
+ "members": [
+ {
+ "name": "index",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "71",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "72",
+ "members": [
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[73]",
+ "element-type": "73",
+ "meta-type": "array"
+ },
+ {
+ "name": "73",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "description",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "74",
+ "members": [
+ {
+ "name": "driver",
+ "type": "str"
+ },
+ {
+ "name": "bus",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "75",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "76",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "77",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "replaces",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buf-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "unmap",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "78",
+ "members": [
+ {
+ "name": "paging",
+ "type": "bool"
+ },
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "begin",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "233"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "79",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "80",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "81",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "time",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "82",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "83",
+ "members": [
+ {
+ "name": "command-line",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "str",
+ "json-type": "string",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "84",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "head",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "events",
+ "type": "[234]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "85",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "86",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ },
+ {
+ "name": "blk",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "87",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "88",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "89",
+ "members": [
+ {
+ "name": "capabilities",
+ "type": "[138]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "90",
+ "members": [
+ {
+ "name": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "235"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "235"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "91",
+ "members": [
+ {
+ "name": "value",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "92",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "93",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "writable",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "94",
+ "members": [
+ {
+ "name": "addr",
+ "type": "236"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "95",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "96",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "97",
+ "members": [
+ {
+ "name": "qom-type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "98",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "99",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "100",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "any",
+ "json-type": "value",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "101",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[102]",
+ "element-type": "102",
+ "meta-type": "array"
+ },
+ {
+ "name": "102",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "103",
+ "members": [
+ {
+ "name": "implements",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[104]",
+ "element-type": "104",
+ "meta-type": "array"
+ },
+ {
+ "name": "104",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "105",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ },
+ {
+ "name": "value",
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[106]",
+ "element-type": "106",
+ "meta-type": "array"
+ },
+ {
+ "name": "106",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "slot",
+ "type": "str"
+ },
+ {
+ "name": "slot-type",
+ "type": "237"
+ },
+ {
+ "name": "source",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "107",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[108]",
+ "element-type": "108",
+ "meta-type": "array"
+ },
+ {
+ "name": "108",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "qdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "removable",
+ "type": "bool"
+ },
+ {
+ "name": "locked",
+ "type": "bool"
+ },
+ {
+ "name": "inserted",
+ "default": null,
+ "type": "141"
+ },
+ {
+ "name": "tray_open",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "io-status",
+ "default": null,
+ "type": "238"
+ },
+ {
+ "name": "dirty-bitmaps",
+ "default": null,
+ "type": "[239]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[109]",
+ "element-type": "109",
+ "meta-type": "array"
+ },
+ {
+ "name": "109",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "busy",
+ "type": "bool"
+ },
+ {
+ "name": "paused",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "io-status",
+ "type": "238"
+ },
+ {
+ "name": "ready",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "110",
+ "members": [
+ {
+ "name": "query-nodes",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[111]",
+ "element-type": "111",
+ "meta-type": "array"
+ },
+ {
+ "name": "111",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stats",
+ "type": "240"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "111"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "111"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[112]",
+ "element-type": "112",
+ "meta-type": "array"
+ },
+ {
+ "name": "112",
+ "members": [
+ {
+ "name": "label",
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "frontend-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[113]",
+ "element-type": "113",
+ "meta-type": "array"
+ },
+ {
+ "name": "113",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "114",
+ "members": [
+ {
+ "name": "option",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[115]",
+ "element-type": "115",
+ "meta-type": "array"
+ },
+ {
+ "name": "115",
+ "members": [
+ {
+ "name": "option",
+ "type": "str"
+ },
+ {
+ "name": "parameters",
+ "type": "[241]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[116]",
+ "element-type": "116",
+ "meta-type": "array"
+ },
+ {
+ "name": "116",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[117]",
+ "element-type": "117",
+ "meta-type": "array"
+ },
+ {
+ "name": "117",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "migration-safe",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "static",
+ "type": "bool"
+ },
+ {
+ "name": "unavailable-features",
+ "default": null,
+ "type": "[str]"
+ },
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "118",
+ "members": [
+ {
+ "name": "modela",
+ "type": "242"
+ },
+ {
+ "name": "modelb",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "119",
+ "members": [
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "120",
+ "members": [
+ {
+ "name": "modela",
+ "type": "242"
+ },
+ {
+ "name": "modelb",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "121",
+ "members": [
+ {
+ "name": "result",
+ "type": "243"
+ },
+ {
+ "name": "responsible-properties",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "122",
+ "members": [
+ {
+ "name": "type",
+ "type": "244"
+ },
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "123",
+ "members": [
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[124]",
+ "element-type": "124",
+ "meta-type": "array"
+ },
+ {
+ "name": "124",
+ "tag": "arch",
+ "variants": [
+ {
+ "case": "x86",
+ "type": "247"
+ },
+ {
+ "case": "sparc",
+ "type": "248"
+ },
+ {
+ "case": "ppc",
+ "type": "249"
+ },
+ {
+ "case": "mips",
+ "type": "250"
+ },
+ {
+ "case": "tricore",
+ "type": "251"
+ },
+ {
+ "case": "other",
+ "type": "252"
+ }
+ ],
+ "members": [
+ {
+ "name": "CPU",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "halted",
+ "type": "bool"
+ },
+ {
+ "name": "qom_path",
+ "type": "str"
+ },
+ {
+ "name": "thread_id",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "245"
+ },
+ {
+ "name": "arch",
+ "type": "246"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "125",
+ "members": [
+ {
+ "name": "status",
+ "type": "253"
+ },
+ {
+ "name": "completed",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "126",
+ "members": [
+ {
+ "name": "formats",
+ "type": "[233]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[127]",
+ "element-type": "127",
+ "meta-type": "array"
+ },
+ {
+ "name": "127",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[128]",
+ "element-type": "128",
+ "meta-type": "array"
+ },
+ {
+ "name": "128",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fds",
+ "type": "[254]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[129]",
+ "element-type": "129",
+ "meta-type": "array"
+ },
+ {
+ "name": "129",
+ "members": [
+ {
+ "name": "version",
+ "type": "int"
+ },
+ {
+ "name": "emulated",
+ "type": "bool"
+ },
+ {
+ "name": "kernel",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[130]",
+ "element-type": "130",
+ "meta-type": "array"
+ },
+ {
+ "name": "130",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "vcpus-count",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "type": "245"
+ },
+ {
+ "name": "qom-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[131]",
+ "element-type": "131",
+ "meta-type": "array"
+ },
+ {
+ "name": "131",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "thread-id",
+ "type": "int"
+ },
+ {
+ "name": "poll-max-ns",
+ "type": "int"
+ },
+ {
+ "name": "poll-grow",
+ "type": "int"
+ },
+ {
+ "name": "poll-shrink",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "132",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "present",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[133]",
+ "element-type": "133",
+ "meta-type": "array"
+ },
+ {
+ "name": "133",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "alias",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "is-default",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cpu-max",
+ "type": "int"
+ },
+ {
+ "name": "hotpluggable-cpus",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[134]",
+ "element-type": "134",
+ "meta-type": "array"
+ },
+ {
+ "name": "134",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "merge",
+ "type": "bool"
+ },
+ {
+ "name": "dump",
+ "type": "bool"
+ },
+ {
+ "name": "prealloc",
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "type": "[int]"
+ },
+ {
+ "name": "policy",
+ "type": "255"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[135]",
+ "element-type": "135",
+ "meta-type": "array"
+ },
+ {
+ "name": "135",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "dimm",
+ "type": "257"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "256"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[136]",
+ "element-type": "136",
+ "meta-type": "array"
+ },
+ {
+ "name": "136",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "index",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "absolute",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "137",
+ "members": [
+ {
+ "name": "status",
+ "default": null,
+ "type": "190"
+ },
+ {
+ "name": "ram",
+ "default": null,
+ "type": "258"
+ },
+ {
+ "name": "disk",
+ "default": null,
+ "type": "258"
+ },
+ {
+ "name": "xbzrle-cache",
+ "default": null,
+ "type": "259"
+ },
+ {
+ "name": "total-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "expected-downtime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "setup-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-percentage",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "error-desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "int",
+ "json-type": "int",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "[138]",
+ "element-type": "138",
+ "meta-type": "array"
+ },
+ {
+ "name": "138",
+ "members": [
+ {
+ "name": "capability",
+ "type": "260"
+ },
+ {
+ "name": "state",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "139",
+ "members": [
+ {
+ "name": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "140",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[141]",
+ "element-type": "141",
+ "meta-type": "array"
+ },
+ {
+ "name": "141",
+ "members": [
+ {
+ "name": "file",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ro",
+ "type": "bool"
+ },
+ {
+ "name": "drv",
+ "type": "str"
+ },
+ {
+ "name": "backing_file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing_file_depth",
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "type": "bool"
+ },
+ {
+ "name": "encryption_key_missing",
+ "type": "bool"
+ },
+ {
+ "name": "detect_zeroes",
+ "type": "203"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "image",
+ "type": "261"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cache",
+ "type": "262"
+ },
+ {
+ "name": "write_threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[142]",
+ "element-type": "142",
+ "meta-type": "array"
+ },
+ {
+ "name": "142",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "devices",
+ "type": "[263]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[143]",
+ "element-type": "143",
+ "meta-type": "array"
+ },
+ {
+ "name": "143",
+ "tag": "meta-type",
+ "variants": [
+ {
+ "case": "builtin",
+ "type": "265"
+ },
+ {
+ "case": "enum",
+ "type": "266"
+ },
+ {
+ "case": "array",
+ "type": "267"
+ },
+ {
+ "case": "object",
+ "type": "268"
+ },
+ {
+ "case": "alternate",
+ "type": "269"
+ },
+ {
+ "case": "command",
+ "type": "270"
+ },
+ {
+ "case": "event",
+ "type": "271"
+ }
+ ],
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "meta-type",
+ "type": "264"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "144",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "145",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "ports",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "146",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "tbl-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[147]",
+ "element-type": "147",
+ "meta-type": "array"
+ },
+ {
+ "name": "147",
+ "members": [
+ {
+ "name": "cookie",
+ "type": "int"
+ },
+ {
+ "name": "hits",
+ "type": "int"
+ },
+ {
+ "name": "key",
+ "type": "272"
+ },
+ {
+ "name": "mask",
+ "type": "273"
+ },
+ {
+ "name": "action",
+ "type": "274"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "148",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[149]",
+ "element-type": "149",
+ "meta-type": "array"
+ },
+ {
+ "name": "149",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "index",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "out-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "set-vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "pop-vlan",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-ids",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "set-eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "set-eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ttl-check",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "150",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[151]",
+ "element-type": "151",
+ "meta-type": "array"
+ },
+ {
+ "name": "151",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "link-up",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "duplex",
+ "type": "275"
+ },
+ {
+ "name": "autoneg",
+ "type": "276"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "152",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[153]",
+ "element-type": "153",
+ "meta-type": "array"
+ },
+ {
+ "name": "153",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "promiscuous",
+ "type": "bool"
+ },
+ {
+ "name": "multicast",
+ "type": "277"
+ },
+ {
+ "name": "unicast",
+ "type": "277"
+ },
+ {
+ "name": "vlan",
+ "type": "277"
+ },
+ {
+ "name": "broadcast-allowed",
+ "type": "bool"
+ },
+ {
+ "name": "multicast-overflow",
+ "type": "bool"
+ },
+ {
+ "name": "unicast-overflow",
+ "type": "bool"
+ },
+ {
+ "name": "main-mac",
+ "type": "str"
+ },
+ {
+ "name": "vlan-table",
+ "type": "[int]"
+ },
+ {
+ "name": "unicast-table",
+ "type": "[str]"
+ },
+ {
+ "name": "multicast-table",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "154",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "migrated",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compiled-version",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mouse-mode",
+ "type": "278"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "[194]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "155",
+ "members": [
+ {
+ "name": "running",
+ "type": "bool"
+ },
+ {
+ "name": "singlestep",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "279"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "156",
+ "members": [
+ {
+ "name": "arch",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[157]",
+ "element-type": "157",
+ "meta-type": "array"
+ },
+ {
+ "name": "157",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "model",
+ "type": "158"
+ },
+ {
+ "name": "options",
+ "type": "280"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[158]",
+ "element-type": "158",
+ "meta-type": "array"
+ },
+ {
+ "name": "158",
+ "meta-type": "enum",
+ "values": [
+ "tpm-tis"
+ ]
+ },
+ {
+ "name": "[159]",
+ "element-type": "159",
+ "meta-type": "array"
+ },
+ {
+ "name": "159",
+ "meta-type": "enum",
+ "values": [
+ "passthrough"
+ ]
+ },
+ {
+ "name": "160",
+ "members": [
+ {
+ "name": "UUID",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "161",
+ "members": [
+ {
+ "name": "qemu",
+ "type": "281"
+ },
+ {
+ "name": "package",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "162",
+ "members": [
+ {
+ "name": "guid",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "163",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "default": null,
+ "type": "282"
+ },
+ {
+ "name": "service",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "clients",
+ "default": null,
+ "type": "[197]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[164]",
+ "element-type": "164",
+ "meta-type": "array"
+ },
+ {
+ "name": "164",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[283]"
+ },
+ {
+ "name": "clients",
+ "type": "[197]"
+ },
+ {
+ "name": "auth",
+ "type": "284"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "285"
+ },
+ {
+ "name": "display",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "165",
+ "members": [
+ {
+ "name": "error",
+ "type": "bool"
+ },
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "166",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "167",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "286"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "168",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "data",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "286"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "169",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "170",
+ "members": [
+ {
+ "name": "keys",
+ "type": "[287]"
+ },
+ {
+ "name": "hold-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "171",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "up",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "172",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "173",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[174]",
+ "element-type": "174",
+ "meta-type": "array"
+ },
+ {
+ "name": "174",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "state",
+ "type": "288"
+ },
+ {
+ "name": "vcpu",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "175",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "ignore-unavailable",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "176",
+ "members": [
+ {
+ "name": "actions",
+ "type": "[289]"
+ },
+ {
+ "name": "properties",
+ "default": null,
+ "type": "290"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "177",
+ "members": [
+ {
+ "name": "parent",
+ "type": "str"
+ },
+ {
+ "name": "child",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "178",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "179",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "180",
+ "members": [
+ {
+ "name": "sha256",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "181",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "182",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "183",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "184",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "primary",
+ "type": "bool"
+ },
+ {
+ "name": "failover",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "bool",
+ "json-type": "boolean",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "185",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write"
+ ]
+ },
+ {
+ "name": "186",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "report",
+ "stop"
+ ]
+ },
+ {
+ "name": "187",
+ "meta-type": "enum",
+ "values": [
+ "commit",
+ "stream",
+ "mirror",
+ "backup"
+ ]
+ },
+ {
+ "name": "188",
+ "meta-type": "enum",
+ "values": [
+ "pause",
+ "poweroff"
+ ]
+ },
+ {
+ "name": "189",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "hyper-v",
+ "type": "292"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "291"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "190",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "setup",
+ "cancelling",
+ "cancelled",
+ "active",
+ "postcopy-active",
+ "completed",
+ "failed",
+ "colo"
+ ]
+ },
+ {
+ "name": "191",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write",
+ "flush"
+ ]
+ },
+ {
+ "name": "192",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "193",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "194",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "connection-id",
+ "type": "int"
+ },
+ {
+ "name": "channel-type",
+ "type": "int"
+ },
+ {
+ "name": "channel-id",
+ "type": "int"
+ },
+ {
+ "name": "tls",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "195",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "196",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "197",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "x509_dname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sasl_username",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "198",
+ "meta-type": "enum",
+ "values": [
+ "reset",
+ "shutdown",
+ "poweroff",
+ "pause",
+ "debug",
+ "none",
+ "inject-nmi"
+ ]
+ },
+ {
+ "name": "199",
+ "meta-type": "enum",
+ "values": [
+ "report",
+ "ignore",
+ "enospc",
+ "stop",
+ "auto"
+ ]
+ },
+ {
+ "name": "200",
+ "meta-type": "enum",
+ "values": [
+ "blkdebug",
+ "blkverify",
+ "bochs",
+ "cloop",
+ "dmg",
+ "file",
+ "ftp",
+ "ftps",
+ "gluster",
+ "host_cdrom",
+ "host_device",
+ "http",
+ "https",
+ "iscsi",
+ "luks",
+ "nbd",
+ "nfs",
+ "null-aio",
+ "null-co",
+ "parallels",
+ "qcow",
+ "qcow2",
+ "qed",
+ "quorum",
+ "raw",
+ "rbd",
+ "replication",
+ "sheepdog",
+ "ssh",
+ "vdi",
+ "vhdx",
+ "vmdk",
+ "vpc",
+ "vvfat",
+ "vxhs"
+ ]
+ },
+ {
+ "name": "201",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "unmap"
+ ]
+ },
+ {
+ "name": "202",
+ "members": [
+ {
+ "name": "direct",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "203",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "unmap"
+ ]
+ },
+ {
+ "name": "204",
+ "members": [
+ {
+ "name": "image",
+ "type": "293"
+ },
+ {
+ "name": "config",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "align",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-transfer",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opt-write-zero",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-write-zero",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opt-discard",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-discard",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "inject-error",
+ "default": null,
+ "type": "[294]"
+ },
+ {
+ "name": "set-state",
+ "default": null,
+ "type": "[295]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "205",
+ "members": [
+ {
+ "name": "test",
+ "type": "293"
+ },
+ {
+ "name": "raw",
+ "type": "293"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "206",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "207",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "locking",
+ "default": null,
+ "type": "296"
+ },
+ {
+ "name": "aio",
+ "default": null,
+ "type": "297"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "208",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "209",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sslverify",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "210",
+ "members": [
+ {
+ "name": "volume",
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[298]"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "211",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "212",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sslverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cookie-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "213",
+ "members": [
+ {
+ "name": "transport",
+ "type": "299"
+ },
+ {
+ "name": "portal",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "lun",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "initiator-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "header-digest",
+ "default": null,
+ "type": "300"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "214",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "215",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "export",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "216",
+ "members": [
+ {
+ "name": "server",
+ "type": "301"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tcp-syn-count",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "readahead-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "page-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "217",
+ "members": [
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "latency-ns",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "218",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-request",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-snapshot",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-other",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "overlap-check",
+ "default": null,
+ "type": "303"
+ },
+ {
+ "name": "cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "l2-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "refcount-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cache-clean-interval",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "304"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "219",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "305"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "220",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "221",
+ "members": [
+ {
+ "name": "blkverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "children",
+ "type": "[293]"
+ },
+ {
+ "name": "vote-threshold",
+ "type": "int"
+ },
+ {
+ "name": "rewrite-corrupted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "read-pattern",
+ "default": null,
+ "type": "306"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "222",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "223",
+ "members": [
+ {
+ "name": "pool",
+ "type": "str"
+ },
+ {
+ "name": "image",
+ "type": "str"
+ },
+ {
+ "name": "conf",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "[307]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "224",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "mode",
+ "type": "308"
+ },
+ {
+ "name": "top-id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "225",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "vdi",
+ "type": "str"
+ },
+ {
+ "name": "snap-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "226",
+ "members": [
+ {
+ "name": "server",
+ "type": "309"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "227",
+ "members": [
+ {
+ "name": "dir",
+ "type": "str"
+ },
+ {
+ "name": "fat-type",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "floppy",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "label",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "rw",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "228",
+ "members": [
+ {
+ "name": "vdisk-id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "307"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "229",
+ "meta-type": "enum",
+ "values": [
+ "top",
+ "full",
+ "none",
+ "incremental"
+ ]
+ },
+ {
+ "name": "230",
+ "meta-type": "enum",
+ "values": [
+ "retain",
+ "read-only",
+ "read-write"
+ ]
+ },
+ {
+ "name": "231",
+ "meta-type": "enum",
+ "values": [
+ "existing",
+ "absolute-paths"
+ ]
+ },
+ {
+ "name": "232",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "file",
+ "type": "311"
+ },
+ {
+ "case": "serial",
+ "type": "312"
+ },
+ {
+ "case": "parallel",
+ "type": "312"
+ },
+ {
+ "case": "pipe",
+ "type": "312"
+ },
+ {
+ "case": "socket",
+ "type": "313"
+ },
+ {
+ "case": "udp",
+ "type": "314"
+ },
+ {
+ "case": "pty",
+ "type": "315"
+ },
+ {
+ "case": "null",
+ "type": "315"
+ },
+ {
+ "case": "mux",
+ "type": "316"
+ },
+ {
+ "case": "msmouse",
+ "type": "315"
+ },
+ {
+ "case": "wctablet",
+ "type": "315"
+ },
+ {
+ "case": "braille",
+ "type": "315"
+ },
+ {
+ "case": "testdev",
+ "type": "315"
+ },
+ {
+ "case": "stdio",
+ "type": "317"
+ },
+ {
+ "case": "console",
+ "type": "315"
+ },
+ {
+ "case": "spicevmc",
+ "type": "318"
+ },
+ {
+ "case": "spiceport",
+ "type": "319"
+ },
+ {
+ "case": "vc",
+ "type": "320"
+ },
+ {
+ "case": "ringbuf",
+ "type": "321"
+ },
+ {
+ "case": "memory",
+ "type": "321"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "310"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "233",
+ "meta-type": "enum",
+ "values": [
+ "elf",
+ "kdump-zlib",
+ "kdump-lzo",
+ "kdump-snappy"
+ ]
+ },
+ {
+ "name": "[234]",
+ "element-type": "234",
+ "meta-type": "array"
+ },
+ {
+ "name": "234",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "key",
+ "type": "323"
+ },
+ {
+ "case": "btn",
+ "type": "324"
+ },
+ {
+ "case": "rel",
+ "type": "325"
+ },
+ {
+ "case": "abs",
+ "type": "325"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "322"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "235",
+ "members": [
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "number",
+ "json-type": "number",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "236",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "327"
+ },
+ {
+ "case": "unix",
+ "type": "328"
+ },
+ {
+ "case": "vsock",
+ "type": "329"
+ },
+ {
+ "case": "fd",
+ "type": "330"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "326"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "237",
+ "meta-type": "enum",
+ "values": [
+ "DIMM",
+ "CPU"
+ ]
+ },
+ {
+ "name": "238",
+ "meta-type": "enum",
+ "values": [
+ "ok",
+ "failed",
+ "nospace"
+ ]
+ },
+ {
+ "name": "[239]",
+ "element-type": "239",
+ "meta-type": "array"
+ },
+ {
+ "name": "239",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "count",
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "331"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "240",
+ "members": [
+ {
+ "name": "rd_bytes",
+ "type": "int"
+ },
+ {
+ "name": "wr_bytes",
+ "type": "int"
+ },
+ {
+ "name": "rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "rd_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_highest_offset",
+ "type": "int"
+ },
+ {
+ "name": "rd_merged",
+ "type": "int"
+ },
+ {
+ "name": "wr_merged",
+ "type": "int"
+ },
+ {
+ "name": "idle_time_ns",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "failed_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "account_invalid",
+ "type": "bool"
+ },
+ {
+ "name": "account_failed",
+ "type": "bool"
+ },
+ {
+ "name": "timed_stats",
+ "type": "[332]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[241]",
+ "element-type": "241",
+ "meta-type": "array"
+ },
+ {
+ "name": "241",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "333"
+ },
+ {
+ "name": "help",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[str]",
+ "element-type": "str",
+ "meta-type": "array"
+ },
+ {
+ "name": "242",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "243",
+ "meta-type": "enum",
+ "values": [
+ "incompatible",
+ "identical",
+ "superset",
+ "subset"
+ ]
+ },
+ {
+ "name": "244",
+ "meta-type": "enum",
+ "values": [
+ "static",
+ "full"
+ ]
+ },
+ {
+ "name": "245",
+ "members": [
+ {
+ "name": "node-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "socket-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "core-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "246",
+ "meta-type": "enum",
+ "values": [
+ "x86",
+ "sparc",
+ "ppc",
+ "mips",
+ "tricore",
+ "other"
+ ]
+ },
+ {
+ "name": "247",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "248",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ },
+ {
+ "name": "npc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "249",
+ "members": [
+ {
+ "name": "nip",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "250",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "251",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "252",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "253",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "active",
+ "completed",
+ "failed"
+ ]
+ },
+ {
+ "name": "[233]",
+ "element-type": "233",
+ "meta-type": "array"
+ },
+ {
+ "name": "[254]",
+ "element-type": "254",
+ "meta-type": "array"
+ },
+ {
+ "name": "254",
+ "members": [
+ {
+ "name": "fd",
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[int]",
+ "element-type": "int",
+ "meta-type": "array"
+ },
+ {
+ "name": "255",
+ "meta-type": "enum",
+ "values": [
+ "default",
+ "preferred",
+ "bind",
+ "interleave"
+ ]
+ },
+ {
+ "name": "256",
+ "meta-type": "enum",
+ "values": [
+ "dimm"
+ ]
+ },
+ {
+ "name": "257",
+ "members": [
+ {
+ "name": "data",
+ "type": "334"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "258",
+ "members": [
+ {
+ "name": "transferred",
+ "type": "int"
+ },
+ {
+ "name": "remaining",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ },
+ {
+ "name": "duplicate",
+ "type": "int"
+ },
+ {
+ "name": "skipped",
+ "type": "int"
+ },
+ {
+ "name": "normal",
+ "type": "int"
+ },
+ {
+ "name": "normal-bytes",
+ "type": "int"
+ },
+ {
+ "name": "dirty-pages-rate",
+ "type": "int"
+ },
+ {
+ "name": "mbps",
+ "type": "number"
+ },
+ {
+ "name": "dirty-sync-count",
+ "type": "int"
+ },
+ {
+ "name": "postcopy-requests",
+ "type": "int"
+ },
+ {
+ "name": "page-size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "259",
+ "members": [
+ {
+ "name": "cache-size",
+ "type": "int"
+ },
+ {
+ "name": "bytes",
+ "type": "int"
+ },
+ {
+ "name": "pages",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss-rate",
+ "type": "number"
+ },
+ {
+ "name": "overflow",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "260",
+ "meta-type": "enum",
+ "values": [
+ "xbzrle",
+ "rdma-pin-all",
+ "auto-converge",
+ "zero-blocks",
+ "compress",
+ "events",
+ "postcopy-ram",
+ "x-colo",
+ "release-ram",
+ "block",
+ "return-path"
+ ]
+ },
+ {
+ "name": "261",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "type": "str"
+ },
+ {
+ "name": "dirty-flag",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "actual-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "virtual-size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "compressed",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "backing-filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "full-backing-filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-filename-format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshots",
+ "default": null,
+ "type": "[57]"
+ },
+ {
+ "name": "backing-image",
+ "default": null,
+ "type": "261"
+ },
+ {
+ "name": "format-specific",
+ "default": null,
+ "type": "335"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "262",
+ "members": [
+ {
+ "name": "writeback",
+ "type": "bool"
+ },
+ {
+ "name": "direct",
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[263]",
+ "element-type": "263",
+ "meta-type": "array"
+ },
+ {
+ "name": "263",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "function",
+ "type": "int"
+ },
+ {
+ "name": "class_info",
+ "type": "336"
+ },
+ {
+ "name": "id",
+ "type": "337"
+ },
+ {
+ "name": "irq",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "qdev_id",
+ "type": "str"
+ },
+ {
+ "name": "pci_bridge",
+ "default": null,
+ "type": "338"
+ },
+ {
+ "name": "regions",
+ "type": "[339]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "264",
+ "meta-type": "enum",
+ "values": [
+ "builtin",
+ "enum",
+ "array",
+ "object",
+ "alternate",
+ "command",
+ "event"
+ ]
+ },
+ {
+ "name": "265",
+ "members": [
+ {
+ "name": "json-type",
+ "type": "340"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "266",
+ "members": [
+ {
+ "name": "values",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "267",
+ "members": [
+ {
+ "name": "element-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "268",
+ "members": [
+ {
+ "name": "members",
+ "type": "[341]"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "variants",
+ "default": null,
+ "type": "[342]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "269",
+ "members": [
+ {
+ "name": "members",
+ "type": "[343]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "270",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ },
+ {
+ "name": "ret-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "271",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "272",
+ "members": [
+ {
+ "name": "priority",
+ "type": "int"
+ },
+ {
+ "name": "tbl-id",
+ "type": "int"
+ },
+ {
+ "name": "in-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-type",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ip-proto",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-tos",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-dst",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "273",
+ "members": [
+ {
+ "name": "in-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ip-proto",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-tos",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "274",
+ "members": [
+ {
+ "name": "goto-tbl",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-lport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new-vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "out-pport",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "275",
+ "meta-type": "enum",
+ "values": [
+ "half",
+ "full"
+ ]
+ },
+ {
+ "name": "276",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on"
+ ]
+ },
+ {
+ "name": "277",
+ "meta-type": "enum",
+ "values": [
+ "normal",
+ "none",
+ "all"
+ ]
+ },
+ {
+ "name": "278",
+ "meta-type": "enum",
+ "values": [
+ "client",
+ "server",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[194]",
+ "element-type": "194",
+ "meta-type": "array"
+ },
+ {
+ "name": "279",
+ "meta-type": "enum",
+ "values": [
+ "debug",
+ "inmigrate",
+ "internal-error",
+ "io-error",
+ "paused",
+ "postmigrate",
+ "prelaunch",
+ "finish-migrate",
+ "restore-vm",
+ "running",
+ "save-vm",
+ "shutdown",
+ "suspended",
+ "watchdog",
+ "guest-panicked",
+ "colo"
+ ]
+ },
+ {
+ "name": "280",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "passthrough",
+ "type": "345"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "344"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "281",
+ "members": [
+ {
+ "name": "major",
+ "type": "int"
+ },
+ {
+ "name": "minor",
+ "type": "int"
+ },
+ {
+ "name": "micro",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "282",
+ "meta-type": "enum",
+ "values": [
+ "ipv4",
+ "ipv6",
+ "unix",
+ "vsock",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[197]",
+ "element-type": "197",
+ "meta-type": "array"
+ },
+ {
+ "name": "[283]",
+ "element-type": "283",
+ "meta-type": "array"
+ },
+ {
+ "name": "283",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "type": "284"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "285"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "284",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "vnc",
+ "ra2",
+ "ra2ne",
+ "tight",
+ "ultra",
+ "tls",
+ "vencrypt",
+ "sasl"
+ ]
+ },
+ {
+ "name": "285",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "tls-none",
+ "x509-none",
+ "tls-vnc",
+ "x509-vnc",
+ "tls-plain",
+ "x509-plain",
+ "tls-sasl",
+ "x509-sasl"
+ ]
+ },
+ {
+ "name": "286",
+ "meta-type": "enum",
+ "values": [
+ "utf8",
+ "base64"
+ ]
+ },
+ {
+ "name": "[287]",
+ "element-type": "287",
+ "meta-type": "array"
+ },
+ {
+ "name": "287",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "number",
+ "type": "347"
+ },
+ {
+ "case": "qcode",
+ "type": "348"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "346"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "288",
+ "meta-type": "enum",
+ "values": [
+ "unavailable",
+ "disabled",
+ "enabled"
+ ]
+ },
+ {
+ "name": "[289]",
+ "element-type": "289",
+ "meta-type": "array"
+ },
+ {
+ "name": "289",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "abort",
+ "type": "350"
+ },
+ {
+ "case": "block-dirty-bitmap-add",
+ "type": "351"
+ },
+ {
+ "case": "block-dirty-bitmap-clear",
+ "type": "352"
+ },
+ {
+ "case": "blockdev-backup",
+ "type": "353"
+ },
+ {
+ "case": "blockdev-snapshot",
+ "type": "354"
+ },
+ {
+ "case": "blockdev-snapshot-internal-sync",
+ "type": "355"
+ },
+ {
+ "case": "blockdev-snapshot-sync",
+ "type": "356"
+ },
+ {
+ "case": "drive-backup",
+ "type": "357"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "349"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "290",
+ "members": [
+ {
+ "name": "completion-mode",
+ "default": null,
+ "type": "358"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "291",
+ "meta-type": "enum",
+ "values": [
+ "hyper-v"
+ ]
+ },
+ {
+ "name": "292",
+ "members": [
+ {
+ "name": "arg1",
+ "type": "int"
+ },
+ {
+ "name": "arg2",
+ "type": "int"
+ },
+ {
+ "name": "arg3",
+ "type": "int"
+ },
+ {
+ "name": "arg4",
+ "type": "int"
+ },
+ {
+ "name": "arg5",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "293",
+ "members": [
+ {
+ "type": "48"
+ },
+ {
+ "type": "str"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "[294]",
+ "element-type": "294",
+ "meta-type": "array"
+ },
+ {
+ "name": "294",
+ "members": [
+ {
+ "name": "event",
+ "type": "359"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "errno",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "sector",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "once",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "immediately",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[295]",
+ "element-type": "295",
+ "meta-type": "array"
+ },
+ {
+ "name": "295",
+ "members": [
+ {
+ "name": "event",
+ "type": "359"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new_state",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "296",
+ "meta-type": "enum",
+ "values": [
+ "auto",
+ "on",
+ "off"
+ ]
+ },
+ {
+ "name": "297",
+ "meta-type": "enum",
+ "values": [
+ "threads",
+ "native"
+ ]
+ },
+ {
+ "name": "[298]",
+ "element-type": "298",
+ "meta-type": "array"
+ },
+ {
+ "name": "298",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "309"
+ },
+ {
+ "case": "unix",
+ "type": "361"
+ },
+ {
+ "case": "vsock",
+ "type": "362"
+ },
+ {
+ "case": "fd",
+ "type": "363"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "360"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "299",
+ "meta-type": "enum",
+ "values": [
+ "tcp",
+ "iser"
+ ]
+ },
+ {
+ "name": "300",
+ "meta-type": "enum",
+ "values": [
+ "crc32c",
+ "none",
+ "crc32c-none",
+ "none-crc32c"
+ ]
+ },
+ {
+ "name": "301",
+ "members": [
+ {
+ "name": "type",
+ "type": "364"
+ },
+ {
+ "name": "host",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "302",
+ "members": [
+ {
+ "type": "48"
+ },
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "303",
+ "members": [
+ {
+ "type": "365"
+ },
+ {
+ "type": "366"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "304",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "368"
+ },
+ {
+ "case": "luks",
+ "type": "369"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "367"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "305",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "368"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "370"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[293]",
+ "element-type": "293",
+ "meta-type": "array"
+ },
+ {
+ "name": "306",
+ "meta-type": "enum",
+ "values": [
+ "quorum",
+ "fifo"
+ ]
+ },
+ {
+ "name": "[307]",
+ "element-type": "307",
+ "meta-type": "array"
+ },
+ {
+ "name": "307",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "308",
+ "meta-type": "enum",
+ "values": [
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "name": "309",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "numeric",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "to",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ipv4",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "ipv6",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "310",
+ "meta-type": "enum",
+ "values": [
+ "file",
+ "serial",
+ "parallel",
+ "pipe",
+ "socket",
+ "udp",
+ "pty",
+ "null",
+ "mux",
+ "msmouse",
+ "wctablet",
+ "braille",
+ "testdev",
+ "stdio",
+ "console",
+ "spicevmc",
+ "spiceport",
+ "vc",
+ "ringbuf",
+ "memory"
+ ]
+ },
+ {
+ "name": "311",
+ "members": [
+ {
+ "name": "data",
+ "type": "371"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "312",
+ "members": [
+ {
+ "name": "data",
+ "type": "372"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "313",
+ "members": [
+ {
+ "name": "data",
+ "type": "373"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "314",
+ "members": [
+ {
+ "name": "data",
+ "type": "374"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "315",
+ "members": [
+ {
+ "name": "data",
+ "type": "375"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "316",
+ "members": [
+ {
+ "name": "data",
+ "type": "376"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "317",
+ "members": [
+ {
+ "name": "data",
+ "type": "377"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "318",
+ "members": [
+ {
+ "name": "data",
+ "type": "378"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "319",
+ "members": [
+ {
+ "name": "data",
+ "type": "379"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "320",
+ "members": [
+ {
+ "name": "data",
+ "type": "380"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "321",
+ "members": [
+ {
+ "name": "data",
+ "type": "381"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "322",
+ "meta-type": "enum",
+ "values": [
+ "key",
+ "btn",
+ "rel",
+ "abs"
+ ]
+ },
+ {
+ "name": "323",
+ "members": [
+ {
+ "name": "data",
+ "type": "382"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "324",
+ "members": [
+ {
+ "name": "data",
+ "type": "383"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "325",
+ "members": [
+ {
+ "name": "data",
+ "type": "384"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "null",
+ "json-type": "null",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "326",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "327",
+ "members": [
+ {
+ "name": "data",
+ "type": "309"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "328",
+ "members": [
+ {
+ "name": "data",
+ "type": "361"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "329",
+ "members": [
+ {
+ "name": "data",
+ "type": "362"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "330",
+ "members": [
+ {
+ "name": "data",
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "331",
+ "meta-type": "enum",
+ "values": [
+ "active",
+ "disabled",
+ "frozen"
+ ]
+ },
+ {
+ "name": "[332]",
+ "element-type": "332",
+ "meta-type": "array"
+ },
+ {
+ "name": "332",
+ "members": [
+ {
+ "name": "interval_length",
+ "type": "int"
+ },
+ {
+ "name": "min_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_queue_depth",
+ "type": "number"
+ },
+ {
+ "name": "avg_wr_queue_depth",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "333",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "boolean",
+ "number",
+ "size"
+ ]
+ },
+ {
+ "name": "334",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "node",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "type": "str"
+ },
+ {
+ "name": "hotplugged",
+ "type": "bool"
+ },
+ {
+ "name": "hotpluggable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[57]",
+ "element-type": "57",
+ "meta-type": "array"
+ },
+ {
+ "name": "335",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "qcow2",
+ "type": "386"
+ },
+ {
+ "case": "vmdk",
+ "type": "387"
+ },
+ {
+ "case": "luks",
+ "type": "388"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "385"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "336",
+ "members": [
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "class",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "337",
+ "members": [
+ {
+ "name": "device",
+ "type": "int"
+ },
+ {
+ "name": "vendor",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "338",
+ "members": [
+ {
+ "name": "bus",
+ "type": "389"
+ },
+ {
+ "name": "devices",
+ "default": null,
+ "type": "[263]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[339]",
+ "element-type": "339",
+ "meta-type": "array"
+ },
+ {
+ "name": "339",
+ "members": [
+ {
+ "name": "bar",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "address",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "prefetch",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "mem_type_64",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "340",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "number",
+ "int",
+ "boolean",
+ "null",
+ "object",
+ "array",
+ "value"
+ ]
+ },
+ {
+ "name": "[341]",
+ "element-type": "341",
+ "meta-type": "array"
+ },
+ {
+ "name": "341",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[342]",
+ "element-type": "342",
+ "meta-type": "array"
+ },
+ {
+ "name": "342",
+ "members": [
+ {
+ "name": "case",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[343]",
+ "element-type": "343",
+ "meta-type": "array"
+ },
+ {
+ "name": "343",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "344",
+ "meta-type": "enum",
+ "values": [
+ "passthrough"
+ ]
+ },
+ {
+ "name": "345",
+ "members": [
+ {
+ "name": "data",
+ "type": "390"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "346",
+ "meta-type": "enum",
+ "values": [
+ "number",
+ "qcode"
+ ]
+ },
+ {
+ "name": "347",
+ "members": [
+ {
+ "name": "data",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "348",
+ "members": [
+ {
+ "name": "data",
+ "type": "391"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "349",
+ "meta-type": "enum",
+ "values": [
+ "abort",
+ "block-dirty-bitmap-add",
+ "block-dirty-bitmap-clear",
+ "blockdev-backup",
+ "blockdev-snapshot",
+ "blockdev-snapshot-internal-sync",
+ "blockdev-snapshot-sync",
+ "drive-backup"
+ ]
+ },
+ {
+ "name": "350",
+ "members": [
+ {
+ "name": "data",
+ "type": "392"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "351",
+ "members": [
+ {
+ "name": "data",
+ "type": "36"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "352",
+ "members": [
+ {
+ "name": "data",
+ "type": "37"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "353",
+ "members": [
+ {
+ "name": "data",
+ "type": "49"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "354",
+ "members": [
+ {
+ "name": "data",
+ "type": "55"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "355",
+ "members": [
+ {
+ "name": "data",
+ "type": "58"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "356",
+ "members": [
+ {
+ "name": "data",
+ "type": "59"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "357",
+ "members": [
+ {
+ "name": "data",
+ "type": "76"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "358",
+ "meta-type": "enum",
+ "values": [
+ "individual",
+ "grouped"
+ ]
+ },
+ {
+ "name": "359",
+ "meta-type": "enum",
+ "values": [
+ "l1_update",
+ "l1_grow_alloc_table",
+ "l1_grow_write_table",
+ "l1_grow_activate_table",
+ "l2_load",
+ "l2_update",
+ "l2_update_compressed",
+ "l2_alloc_cow_read",
+ "l2_alloc_write",
+ "read_aio",
+ "read_backing_aio",
+ "read_compressed",
+ "write_aio",
+ "write_compressed",
+ "vmstate_load",
+ "vmstate_save",
+ "cow_read",
+ "cow_write",
+ "reftable_load",
+ "reftable_grow",
+ "reftable_update",
+ "refblock_load",
+ "refblock_update",
+ "refblock_update_part",
+ "refblock_alloc",
+ "refblock_alloc_hookup",
+ "refblock_alloc_write",
+ "refblock_alloc_write_blocks",
+ "refblock_alloc_write_table",
+ "refblock_alloc_switch_table",
+ "cluster_alloc",
+ "cluster_alloc_bytes",
+ "cluster_free",
+ "flush_to_os",
+ "flush_to_disk",
+ "pwritev_rmw_head",
+ "pwritev_rmw_after_head",
+ "pwritev_rmw_tail",
+ "pwritev_rmw_after_tail",
+ "pwritev",
+ "pwritev_zero",
+ "pwritev_done",
+ "empty_image_prepare"
+ ]
+ },
+ {
+ "name": "360",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "361",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "362",
+ "members": [
+ {
+ "name": "cid",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "363",
+ "members": [
+ {
+ "name": "str",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "364",
+ "meta-type": "enum",
+ "values": [
+ "inet"
+ ]
+ },
+ {
+ "name": "365",
+ "members": [
+ {
+ "name": "template",
+ "default": null,
+ "type": "366"
+ },
+ {
+ "name": "main-header",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "active-l1",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "active-l2",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-table",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-block",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "snapshot-table",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inactive-l1",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inactive-l2",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "366",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "constant",
+ "cached",
+ "all"
+ ]
+ },
+ {
+ "name": "367",
+ "meta-type": "enum",
+ "values": [
+ "aes",
+ "luks"
+ ]
+ },
+ {
+ "name": "368",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "369",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "370",
+ "meta-type": "enum",
+ "values": [
+ "aes"
+ ]
+ },
+ {
+ "name": "371",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "in",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "out",
+ "type": "str"
+ },
+ {
+ "name": "append",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "372",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "373",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "type": "236"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "wait",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "nodelay",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "telnet",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tn3270",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reconnect",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "374",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "remote",
+ "type": "236"
+ },
+ {
+ "name": "local",
+ "default": null,
+ "type": "236"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "375",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "376",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "377",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "signal",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "378",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "379",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fqdn",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "380",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "width",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "height",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cols",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "rows",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "381",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "382",
+ "members": [
+ {
+ "name": "key",
+ "type": "287"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "383",
+ "members": [
+ {
+ "name": "button",
+ "type": "393"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "384",
+ "members": [
+ {
+ "name": "axis",
+ "type": "394"
+ },
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "385",
+ "meta-type": "enum",
+ "values": [
+ "qcow2",
+ "vmdk",
+ "luks"
+ ]
+ },
+ {
+ "name": "386",
+ "members": [
+ {
+ "name": "data",
+ "type": "395"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "387",
+ "members": [
+ {
+ "name": "data",
+ "type": "396"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "388",
+ "members": [
+ {
+ "name": "data",
+ "type": "397"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "389",
+ "members": [
+ {
+ "name": "number",
+ "type": "int"
+ },
+ {
+ "name": "secondary",
+ "type": "int"
+ },
+ {
+ "name": "subordinate",
+ "type": "int"
+ },
+ {
+ "name": "io_range",
+ "type": "398"
+ },
+ {
+ "name": "memory_range",
+ "type": "398"
+ },
+ {
+ "name": "prefetchable_range",
+ "type": "398"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "390",
+ "members": [
+ {
+ "name": "path",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cancel-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "391",
+ "meta-type": "enum",
+ "values": [
+ "unmapped",
+ "shift",
+ "shift_r",
+ "alt",
+ "alt_r",
+ "ctrl",
+ "ctrl_r",
+ "menu",
+ "esc",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "0",
+ "minus",
+ "equal",
+ "backspace",
+ "tab",
+ "q",
+ "w",
+ "e",
+ "r",
+ "t",
+ "y",
+ "u",
+ "i",
+ "o",
+ "p",
+ "bracket_left",
+ "bracket_right",
+ "ret",
+ "a",
+ "s",
+ "d",
+ "f",
+ "g",
+ "h",
+ "j",
+ "k",
+ "l",
+ "semicolon",
+ "apostrophe",
+ "grave_accent",
+ "backslash",
+ "z",
+ "x",
+ "c",
+ "v",
+ "b",
+ "n",
+ "m",
+ "comma",
+ "dot",
+ "slash",
+ "asterisk",
+ "spc",
+ "caps_lock",
+ "f1",
+ "f2",
+ "f3",
+ "f4",
+ "f5",
+ "f6",
+ "f7",
+ "f8",
+ "f9",
+ "f10",
+ "num_lock",
+ "scroll_lock",
+ "kp_divide",
+ "kp_multiply",
+ "kp_subtract",
+ "kp_add",
+ "kp_enter",
+ "kp_decimal",
+ "sysrq",
+ "kp_0",
+ "kp_1",
+ "kp_2",
+ "kp_3",
+ "kp_4",
+ "kp_5",
+ "kp_6",
+ "kp_7",
+ "kp_8",
+ "kp_9",
+ "less",
+ "f11",
+ "f12",
+ "print",
+ "home",
+ "pgup",
+ "pgdn",
+ "end",
+ "left",
+ "up",
+ "down",
+ "right",
+ "insert",
+ "delete",
+ "stop",
+ "again",
+ "props",
+ "undo",
+ "front",
+ "copy",
+ "open",
+ "paste",
+ "find",
+ "cut",
+ "lf",
+ "help",
+ "meta_l",
+ "meta_r",
+ "compose",
+ "pause",
+ "ro",
+ "hiragana",
+ "henkan",
+ "yen",
+ "kp_comma",
+ "kp_equals",
+ "power",
+ "sleep",
+ "wake",
+ "audionext",
+ "audioprev",
+ "audiostop",
+ "audioplay",
+ "audiomute",
+ "volumeup",
+ "volumedown",
+ "mediaselect",
+ "mail",
+ "calculator",
+ "computer",
+ "ac_home",
+ "ac_back",
+ "ac_forward",
+ "ac_refresh",
+ "ac_bookmarks"
+ ]
+ },
+ {
+ "name": "392",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "393",
+ "meta-type": "enum",
+ "values": [
+ "left",
+ "middle",
+ "right",
+ "wheel-up",
+ "wheel-down",
+ "side",
+ "extra"
+ ]
+ },
+ {
+ "name": "394",
+ "meta-type": "enum",
+ "values": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "name": "395",
+ "members": [
+ {
+ "name": "compat",
+ "type": "str"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "corrupt",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-bits",
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "399"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "396",
+ "members": [
+ {
+ "name": "create-type",
+ "type": "str"
+ },
+ {
+ "name": "cid",
+ "type": "int"
+ },
+ {
+ "name": "parent-cid",
+ "type": "int"
+ },
+ {
+ "name": "extents",
+ "type": "[261]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "397",
+ "members": [
+ {
+ "name": "cipher-alg",
+ "type": "400"
+ },
+ {
+ "name": "cipher-mode",
+ "type": "401"
+ },
+ {
+ "name": "ivgen-alg",
+ "type": "402"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "403"
+ },
+ {
+ "name": "hash-alg",
+ "type": "403"
+ },
+ {
+ "name": "payload-offset",
+ "type": "int"
+ },
+ {
+ "name": "master-key-iters",
+ "type": "int"
+ },
+ {
+ "name": "uuid",
+ "type": "str"
+ },
+ {
+ "name": "slots",
+ "type": "[404]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "398",
+ "members": [
+ {
+ "name": "base",
+ "type": "int"
+ },
+ {
+ "name": "limit",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "399",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "405"
+ },
+ {
+ "case": "luks",
+ "type": "397"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "367"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[261]",
+ "element-type": "261",
+ "meta-type": "array"
+ },
+ {
+ "name": "400",
+ "meta-type": "enum",
+ "values": [
+ "aes-128",
+ "aes-192",
+ "aes-256",
+ "des-rfb",
+ "3des",
+ "cast5-128",
+ "serpent-128",
+ "serpent-192",
+ "serpent-256",
+ "twofish-128",
+ "twofish-192",
+ "twofish-256"
+ ]
+ },
+ {
+ "name": "401",
+ "meta-type": "enum",
+ "values": [
+ "ecb",
+ "cbc",
+ "xts",
+ "ctr"
+ ]
+ },
+ {
+ "name": "402",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "plain64",
+ "essiv"
+ ]
+ },
+ {
+ "name": "403",
+ "meta-type": "enum",
+ "values": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512",
+ "ripemd160"
+ ]
+ },
+ {
+ "name": "[404]",
+ "element-type": "404",
+ "meta-type": "array"
+ },
+ {
+ "name": "404",
+ "members": [
+ {
+ "name": "active",
+ "type": "bool"
+ },
+ {
+ "name": "iters",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "stripes",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "key-offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "405",
+ "members": [
+ ],
+ "meta-type": "object"
+ }
+ ],
+ "id": "libvirt-48"
+}
+
+{
+ "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-49"
+}
+
+{
+ "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-50"
+}
+
+{
+ "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": true,
+ "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-51"
+}
+
+{
+ "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": true,
+ "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-52"
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": [
+ {
+ "name": "max",
+ "typename": "max-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "host",
+ "typename": "host-x86_64-cpu",
+ "unavailable-features": [
+ "kvm"
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "base",
+ "typename": "base-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu64",
+ "typename": "qemu64-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu32",
+ "typename": "qemu32-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "phenom",
+ "typename": "phenom-x86_64-cpu",
+ "unavailable-features": [
+ "fxsr-opt",
+ "npt"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium3",
+ "typename": "pentium3-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium2",
+ "typename": "pentium2-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "pentium",
+ "typename": "pentium-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "n270",
+ "typename": "n270-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "kvm64",
+ "typename": "kvm64-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "kvm32",
+ "typename": "kvm32-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "coreduo",
+ "typename": "coreduo-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "core2duo",
+ "typename": "core2duo-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "athlon",
+ "typename": "athlon-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Westmere",
+ "typename": "Westmere-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Skylake-Server",
+ "typename": "Skylake-Server-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "hle",
+ "avx2",
+ "invpcid",
+ "rtm",
+ "avx512f",
+ "avx512dq",
+ "rdseed",
+ "avx512cd",
+ "avx512bw",
+ "avx512vl",
+ "3dnowprefetch",
+ "xsavec"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Skylake-Client",
+ "typename": "Skylake-Client-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "hle",
+ "avx2",
+ "invpcid",
+ "rtm",
+ "rdseed",
+ "3dnowprefetch",
+ "xsavec"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "SandyBridge",
+ "typename": "SandyBridge-x86_64-cpu",
+ "unavailable-features": [
+ "x2apic",
+ "tsc-deadline",
+ "avx"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Penryn",
+ "typename": "Penryn-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G5",
+ "typename": "Opteron_G5-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "avx",
+ "f16c",
+ "misalignsse",
+ "3dnowprefetch",
+ "xop",
+ "fma4",
+ "tbm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G4",
+ "typename": "Opteron_G4-x86_64-cpu",
+ "unavailable-features": [
+ "avx",
+ "misalignsse",
+ "3dnowprefetch",
+ "xop",
+ "fma4"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G3",
+ "typename": "Opteron_G3-x86_64-cpu",
+ "unavailable-features": [
+ "misalignsse"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G2",
+ "typename": "Opteron_G2-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Opteron_G1",
+ "typename": "Opteron_G1-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Nehalem",
+ "typename": "Nehalem-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "IvyBridge",
+ "typename": "IvyBridge-x86_64-cpu",
+ "unavailable-features": [
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Haswell",
+ "typename": "Haswell-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "hle",
+ "avx2",
+ "invpcid",
+ "rtm"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Haswell-noTSX",
+ "typename": "Haswell-noTSX-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "avx2",
+ "invpcid"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Conroe",
+ "typename": "Conroe-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Broadwell",
+ "typename": "Broadwell-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "hle",
+ "avx2",
+ "invpcid",
+ "rtm",
+ "rdseed",
+ "3dnowprefetch"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "Broadwell-noTSX",
+ "typename": "Broadwell-noTSX-x86_64-cpu",
+ "unavailable-features": [
+ "fma",
+ "pcid",
+ "x2apic",
+ "tsc-deadline",
+ "avx",
+ "f16c",
+ "rdrand",
+ "avx2",
+ "invpcid",
+ "rdseed",
+ "3dnowprefetch"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "486",
+ "typename": "486-x86_64-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-2"
+}
+
+{
+ "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": false,
+ "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": false,
+ "cr8legacy": true,
+ "xcrypt-en": false,
+ "pn": false,
+ "dca": false,
+ "vendor": "AuthenticAMD",
+ "pku": true,
+ "smx": false,
+ "cmp-legacy": false,
+ "avx512-4fmaps": false,
+ "vmcb-clean": false,
+ "hle": false,
+ "3dnowext": true,
+ "npt": false,
+ "clwb": true,
+ "lbrv": false,
+ "adx": true,
+ "ss": true,
+ "pni": true,
+ "svm-lock": false,
+ "smep": true,
+ "smap": true,
+ "pfthreshold": false,
+ "x2apic": false,
+ "avx512vbmi": false,
+ "flushbyasid": false,
+ "f16c": false,
+ "ace2-en": false,
+ "pae": true,
+ "pat": true,
+ "sse": true,
+ "phe-en": false,
+ "kvm-nopiodelay": false,
+ "tm": false,
+ "kvmclock-stable-bit": false,
+ "hypervisor": true,
+ "pcommit": true,
+ "syscall": true,
+ "avx512dq": false,
+ "svm": true,
+ "invtsc": false,
+ "sse2": true,
+ "est": false,
+ "avx512ifma": false,
+ "tm2": false,
+ "kvm-pv-eoi": false,
+ "cx8": true,
+ "kvm-mmu": false,
+ "sse4.2": true,
+ "pge": true,
+ "pdcm": false,
+ "model": 6,
+ "movbe": true,
+ "nrip-save": false,
+ "ssse3": true,
+ "sse4a": true,
+ "invpcid": false,
+ "pdpe1gb": true,
+ "tsc-deadline": false,
+ "fma": false,
+ "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": true,
+ "osvw": false,
+ "apic": true,
+ "pmm": false,
+ "tsc-adjust": false,
+ "kvm-steal-time": false,
+ "kvmclock": false,
+ "lwp": false,
+ "xop": false,
+ "avx": false,
+ "ospke": true,
+ "acpi": true,
+ "avx512bw": false,
+ "ace2": false,
+ "fsgsbase": true,
+ "ht": false,
+ "nx": true,
+ "pclmulqdq": true,
+ "mmxext": true,
+ "popcnt": true,
+ "xsaves": false,
+ "lm": true,
+ "umip": false,
+ "pse": true,
+ "avx2": false,
+ "sep": true,
+ "nodeid-msr": false,
+ "misalignsse": false,
+ "min-xlevel": 2147483658,
+ "bmi1": true,
+ "bmi2": true,
+ "kvm-pv-unhalt": false,
+ "tsc-scale": false,
+ "topoext": false,
+ "clflushopt": true,
+ "monitor": true,
+ "avx512er": false,
+ "pmm-en": false,
+ "pcid": false,
+ "3dnow": true,
+ "erms": true,
+ "lahf-lm": true,
+ "fxsr-opt": false,
+ "xstore": false,
+ "rtm": false,
+ "lmce": false,
+ "perfctr-nb": false,
+ "rdrand": false,
+ "rdseed": false,
+ "avx512-4vnniw": false,
+ "vme": false,
+ "vmx": false,
+ "dtes64": false,
+ "mtrr": true,
+ "rdtscp": true,
+ "pse36": true,
+ "tbm": false,
+ "wdt": false,
+ "model-id": "QEMU TCG CPU version 2.5+",
+ "sha-ni": false,
+ "abm": true,
+ "avx512pf": false,
+ "xstore-en": false
+ }
+ }
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "base",
+ "props": {
+ "phys-bits": 0,
+ "core-id": -1,
+ "xlevel": 2147483658,
+ "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": false,
+ "kvm_asyncpf": false,
+ "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": false,
+ "cr8legacy": true,
+ "cpuid-0xb": true,
+ "xcrypt-en": false,
+ "kvm_pv_eoi": false,
+ "apic-id": 4294967295,
+ "pn": false,
+ "dca": false,
+ "vendor": "AuthenticAMD",
+ "pku": true,
+ "smx": false,
+ "cmp-legacy": false,
+ "cmp_legacy": false,
+ "node-id": -1,
+ "avx512-4fmaps": false,
+ "vmcb-clean": false,
+ "vmcb_clean": false,
+ "3dnowext": true,
+ "hle": false,
+ "npt": false,
+ "memory": "/machine/unattached/system[0]",
+ "clwb": true,
+ "lbrv": false,
+ "adx": true,
+ "ss": true,
+ "pni": true,
+ "svm_lock": false,
+ "svm-lock": false,
+ "smep": true,
+ "pfthreshold": false,
+ "smap": true,
+ "x2apic": false,
+ "avx512vbmi": false,
+ "hv-stimer": false,
+ "i64": true,
+ "flushbyasid": false,
+ "f16c": false,
+ "ace2-en": false,
+ "pat": true,
+ "pae": true,
+ "sse": true,
+ "phe-en": false,
+ "kvm-nopiodelay": false,
+ "kvm_nopiodelay": false,
+ "tm": false,
+ "kvmclock-stable-bit": false,
+ "hypervisor": true,
+ "socket-id": -1,
+ "pcommit": true,
+ "syscall": true,
+ "level": 13,
+ "avx512dq": false,
+ "svm": true,
+ "full-cpuid-auto-level": true,
+ "hv-reset": false,
+ "invtsc": false,
+ "sse3": true,
+ "sse2": true,
+ "est": false,
+ "avx512ifma": false,
+ "tm2": false,
+ "kvm-pv-eoi": false,
+ "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": 6,
+ "movbe": true,
+ "nrip-save": false,
+ "nrip_save": false,
+ "sse4a": true,
+ "ssse3": true,
+ "kvm_pv_unhalt": false,
+ "invpcid": false,
+ "pdpe1gb": true,
+ "tsc-deadline": false,
+ "fma": false,
+ "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": true,
+ "osvw": false,
+ "check": true,
+ "hv-spinlocks": -1,
+ "pmm": false,
+ "apic": true,
+ "pmu": false,
+ "min-xlevel2": 0,
+ "tsc-adjust": false,
+ "tsc_adjust": false,
+ "kvm-steal-time": false,
+ "kvm_steal_time": false,
+ "kvmclock": false,
+ "l3-cache": true,
+ "lwp": false,
+ "xop": false,
+ "avx": false,
+ "ospke": true,
+ "ace2": false,
+ "acpi": true,
+ "avx512bw": false,
+ "hv-vapic": false,
+ "fsgsbase": true,
+ "ht": false,
+ "nx": true,
+ "pclmulqdq": true,
+ "mmxext": true,
+ "popcnt": true,
+ "xsaves": false,
+ "tcg-cpuid": true,
+ "lm": true,
+ "umip": false,
+ "avx2": false,
+ "pse": true,
+ "sep": true,
+ "pclmuldq": true,
+ "nodeid-msr": false,
+ "kvm": true,
+ "misalignsse": false,
+ "min-xlevel": 2147483658,
+ "bmi2": true,
+ "bmi1": true,
+ "kvm-pv-unhalt": false,
+ "realized": false,
+ "tsc_scale": false,
+ "tsc-scale": false,
+ "topoext": false,
+ "hv-vpindex": false,
+ "xlevel2": 0,
+ "clflushopt": true,
+ "kvm-no-smi-migration": false,
+ "monitor": true,
+ "avx512er": false,
+ "pmm-en": false,
+ "pcid": false,
+ "3dnow": true,
+ "erms": true,
+ "lahf-lm": true,
+ "lahf_lm": true,
+ "xstore": false,
+ "hv-synic": false,
+ "fxsr-opt": false,
+ "fxsr_opt": false,
+ "rtm": false,
+ "lmce": false,
+ "hv-time": false,
+ "perfctr-nb": false,
+ "perfctr_nb": false,
+ "ffxsr": false,
+ "rdrand": false,
+ "rdseed": false,
+ "avx512-4vnniw": false,
+ "vme": false,
+ "vmx": false,
+ "dtes64": false,
+ "mtrr": true,
+ "rdtscp": true,
+ "pse36": true,
+ "tbm": false,
+ "wdt": false,
+ "pause_filter": false,
+ "model-id": "QEMU TCG CPU version 2.5+",
+ "sha-ni": false,
+ "abm": true,
+ "avx512pf": false,
+ "xstore-en": false
+ }
+ }
+ },
+ "id": "libvirt-4"
+}
+
+{
+ "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": false,
+ "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": false,
+ "cr8legacy": true,
+ "xcrypt-en": false,
+ "pn": false,
+ "dca": false,
+ "vendor": "AuthenticAMD",
+ "pku": true,
+ "smx": false,
+ "cmp-legacy": false,
+ "avx512-4fmaps": false,
+ "vmcb-clean": false,
+ "hle": false,
+ "3dnowext": true,
+ "npt": false,
+ "clwb": true,
+ "lbrv": false,
+ "adx": true,
+ "ss": true,
+ "pni": true,
+ "svm-lock": false,
+ "smep": true,
+ "smap": true,
+ "pfthreshold": false,
+ "x2apic": false,
+ "avx512vbmi": false,
+ "flushbyasid": false,
+ "f16c": false,
+ "ace2-en": false,
+ "pae": true,
+ "pat": true,
+ "sse": true,
+ "phe-en": false,
+ "kvm-nopiodelay": false,
+ "tm": false,
+ "kvmclock-stable-bit": false,
+ "hypervisor": true,
+ "pcommit": true,
+ "syscall": true,
+ "avx512dq": false,
+ "svm": true,
+ "invtsc": false,
+ "sse2": true,
+ "est": false,
+ "avx512ifma": false,
+ "tm2": false,
+ "kvm-pv-eoi": false,
+ "cx8": true,
+ "kvm-mmu": false,
+ "sse4.2": true,
+ "pge": true,
+ "pdcm": false,
+ "model": 6,
+ "movbe": true,
+ "nrip-save": false,
+ "ssse3": true,
+ "sse4a": true,
+ "invpcid": false,
+ "pdpe1gb": true,
+ "tsc-deadline": false,
+ "fma": false,
+ "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": true,
+ "osvw": false,
+ "apic": true,
+ "pmm": false,
+ "tsc-adjust": false,
+ "kvm-steal-time": false,
+ "kvmclock": false,
+ "lwp": false,
+ "xop": false,
+ "avx": false,
+ "ospke": true,
+ "acpi": true,
+ "avx512bw": false,
+ "ace2": false,
+ "fsgsbase": true,
+ "ht": false,
+ "nx": true,
+ "pclmulqdq": true,
+ "mmxext": true,
+ "popcnt": true,
+ "xsaves": false,
+ "lm": true,
+ "umip": false,
+ "pse": true,
+ "avx2": false,
+ "sep": true,
+ "nodeid-msr": false,
+ "misalignsse": false,
+ "min-xlevel": 2147483658,
+ "bmi1": true,
+ "bmi2": true,
+ "kvm-pv-unhalt": false,
+ "tsc-scale": false,
+ "topoext": false,
+ "clflushopt": true,
+ "monitor": true,
+ "avx512er": false,
+ "pmm-en": false,
+ "pcid": false,
+ "3dnow": true,
+ "erms": true,
+ "lahf-lm": true,
+ "fxsr-opt": false,
+ "xstore": false,
+ "rtm": false,
+ "lmce": false,
+ "perfctr-nb": false,
+ "rdrand": false,
+ "rdseed": false,
+ "avx512-4vnniw": false,
+ "vme": false,
+ "vmx": false,
+ "dtes64": false,
+ "mtrr": true,
+ "rdtscp": true,
+ "pse36": true,
+ "tbm": false,
+ "wdt": false,
+ "model-id": "QEMU TCG CPU version 2.5+",
+ "sha-ni": false,
+ "abm": true,
+ "avx512pf": false,
+ "xstore-en": false
+ }
+ }
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "base",
+ "props": {
+ "phys-bits": 0,
+ "core-id": -1,
+ "xlevel": 2147483658,
+ "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": false,
+ "kvm_asyncpf": false,
+ "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": false,
+ "cr8legacy": true,
+ "cpuid-0xb": true,
+ "xcrypt-en": false,
+ "kvm_pv_eoi": false,
+ "apic-id": 4294967295,
+ "pn": false,
+ "dca": false,
+ "vendor": "AuthenticAMD",
+ "pku": true,
+ "smx": false,
+ "cmp-legacy": false,
+ "cmp_legacy": false,
+ "node-id": -1,
+ "avx512-4fmaps": false,
+ "vmcb-clean": false,
+ "vmcb_clean": false,
+ "3dnowext": true,
+ "hle": false,
+ "npt": false,
+ "memory": "/machine/unattached/system[0]",
+ "clwb": true,
+ "lbrv": false,
+ "adx": true,
+ "ss": true,
+ "pni": true,
+ "svm_lock": false,
+ "svm-lock": false,
+ "smep": true,
+ "pfthreshold": false,
+ "smap": true,
+ "x2apic": false,
+ "avx512vbmi": false,
+ "hv-stimer": false,
+ "i64": true,
+ "flushbyasid": false,
+ "f16c": false,
+ "ace2-en": false,
+ "pat": true,
+ "pae": true,
+ "sse": true,
+ "phe-en": false,
+ "kvm-nopiodelay": false,
+ "kvm_nopiodelay": false,
+ "tm": false,
+ "kvmclock-stable-bit": false,
+ "hypervisor": true,
+ "socket-id": -1,
+ "pcommit": true,
+ "syscall": true,
+ "level": 13,
+ "avx512dq": false,
+ "svm": true,
+ "full-cpuid-auto-level": true,
+ "hv-reset": false,
+ "invtsc": false,
+ "sse3": true,
+ "sse2": true,
+ "est": false,
+ "avx512ifma": false,
+ "tm2": false,
+ "kvm-pv-eoi": false,
+ "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": 6,
+ "movbe": true,
+ "nrip-save": false,
+ "nrip_save": false,
+ "sse4a": true,
+ "ssse3": true,
+ "kvm_pv_unhalt": false,
+ "invpcid": false,
+ "pdpe1gb": true,
+ "tsc-deadline": false,
+ "fma": false,
+ "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": true,
+ "osvw": false,
+ "check": true,
+ "hv-spinlocks": -1,
+ "pmm": false,
+ "apic": true,
+ "pmu": false,
+ "min-xlevel2": 0,
+ "tsc-adjust": false,
+ "tsc_adjust": false,
+ "kvm-steal-time": false,
+ "kvm_steal_time": false,
+ "kvmclock": false,
+ "l3-cache": true,
+ "lwp": false,
+ "xop": false,
+ "avx": false,
+ "ospke": true,
+ "ace2": false,
+ "acpi": true,
+ "avx512bw": false,
+ "hv-vapic": false,
+ "fsgsbase": true,
+ "ht": false,
+ "nx": true,
+ "pclmulqdq": true,
+ "mmxext": true,
+ "popcnt": true,
+ "xsaves": false,
+ "tcg-cpuid": true,
+ "lm": true,
+ "umip": false,
+ "avx2": false,
+ "pse": true,
+ "sep": true,
+ "pclmuldq": true,
+ "nodeid-msr": false,
+ "kvm": true,
+ "misalignsse": false,
+ "min-xlevel": 2147483658,
+ "bmi2": true,
+ "bmi1": true,
+ "kvm-pv-unhalt": false,
+ "realized": false,
+ "tsc_scale": false,
+ "tsc-scale": false,
+ "topoext": false,
+ "hv-vpindex": false,
+ "xlevel2": 0,
+ "clflushopt": true,
+ "kvm-no-smi-migration": false,
+ "monitor": true,
+ "avx512er": false,
+ "pmm-en": false,
+ "pcid": false,
+ "3dnow": true,
+ "erms": true,
+ "lahf-lm": true,
+ "lahf_lm": true,
+ "xstore": false,
+ "hv-synic": false,
+ "fxsr-opt": false,
+ "fxsr_opt": false,
+ "rtm": false,
+ "lmce": false,
+ "hv-time": false,
+ "perfctr-nb": false,
+ "perfctr_nb": false,
+ "ffxsr": false,
+ "rdrand": false,
+ "rdseed": false,
+ "avx512-4vnniw": false,
+ "vme": false,
+ "vmx": false,
+ "dtes64": false,
+ "mtrr": true,
+ "rdtscp": true,
+ "pse36": true,
+ "tbm": false,
+ "wdt": false,
+ "pause_filter": false,
+ "model-id": "QEMU TCG CPU version 2.5+",
+ "sha-ni": false,
+ "abm": true,
+ "avx512pf": false,
+ "xstore-en": false
+ }
+ }
+ },
+ "id": "libvirt-6"
+}
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
new file mode 100644
index 0000000..eea1696
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
@@ -0,0 +1,791 @@
+<qemuCaps>
+ <qemuctime>0</qemuctime>
+ <selfctime>0</selfctime>
+ <selfvers>0</selfvers>
+ <usedQMP/>
+ <flag name='kvm'/>
+ <flag name='mem-path'/>
+ <flag name='drive-serial'/>
+ <flag name='monitor-json'/>
+ <flag name='sdl'/>
+ <flag name='netdev'/>
+ <flag name='rtc'/>
+ <flag name='vhost-net'/>
+ <flag name='no-hpet'/>
+ <flag name='no-kvm-pit'/>
+ <flag name='pci-configfd'/>
+ <flag name='nodefconfig'/>
+ <flag name='boot-menu'/>
+ <flag name='fsdev'/>
+ <flag name='name-process'/>
+ <flag name='smbios-type'/>
+ <flag name='spice'/>
+ <flag name='vga-none'/>
+ <flag name='boot-index'/>
+ <flag name='hda-duplex'/>
+ <flag name='drive-aio'/>
+ <flag name='pci-bootindex'/>
+ <flag name='ccid-emulated'/>
+ <flag name='ccid-passthru'/>
+ <flag name='chardev-spicevmc'/>
+ <flag name='virtio-tx-alg'/>
+ <flag name='pci-multifunction'/>
+ <flag name='virtio-blk-pci.ioeventfd'/>
+ <flag name='sga'/>
+ <flag name='virtio-blk-pci.event_idx'/>
+ <flag name='virtio-net-pci.event_idx'/>
+ <flag name='cache-directsync'/>
+ <flag name='piix3-usb-uhci'/>
+ <flag name='piix4-usb-uhci'/>
+ <flag name='usb-ehci'/>
+ <flag name='ich9-usb-ehci1'/>
+ <flag name='vt82c686b-usb-uhci'/>
+ <flag name='pci-ohci'/>
+ <flag name='usb-hub'/>
+ <flag name='no-shutdown'/>
+ <flag name='cache-unsafe'/>
+ <flag name='ich9-ahci'/>
+ <flag name='no-acpi'/>
+ <flag name='fsdev-readonly'/>
+ <flag name='virtio-blk-pci.scsi'/>
+ <flag name='drive-copy-on-read'/>
+ <flag name='fsdev-writeout'/>
+ <flag name='drive-iotune'/>
+ <flag name='system_wakeup'/>
+ <flag name='scsi-disk.channel'/>
+ <flag name='scsi-block'/>
+ <flag name='transaction'/>
+ <flag name='block-job-async'/>
+ <flag name='scsi-cd'/>
+ <flag name='ide-cd'/>
+ <flag name='no-user-config'/>
+ <flag name='hda-micro'/>
+ <flag name='dump-guest-memory'/>
+ <flag name='nec-usb-xhci'/>
+ <flag name='balloon-event'/>
+ <flag name='bridge'/>
+ <flag name='lsi'/>
+ <flag name='virtio-scsi-pci'/>
+ <flag name='blockio'/>
+ <flag name='disable-s3'/>
+ <flag name='disable-s4'/>
+ <flag name='ide-drive.wwn'/>
+ <flag name='scsi-disk.wwn'/>
+ <flag name='seccomp-sandbox'/>
+ <flag name='reboot-timeout'/>
+ <flag name='dump-guest-core'/>
+ <flag name='seamless-migration'/>
+ <flag name='block-commit'/>
+ <flag name='vnc'/>
+ <flag name='drive-mirror'/>
+ <flag name='blockdev-snapshot-sync'/>
+ <flag name='qxl'/>
+ <flag name='VGA'/>
+ <flag name='cirrus-vga'/>
+ <flag name='vmware-svga'/>
+ <flag name='device-video-primary'/>
+ <flag name='usb-serial'/>
+ <flag name='usb-net'/>
+ <flag name='add-fd'/>
+ <flag name='nbd-server'/>
+ <flag name='virtio-rng'/>
+ <flag name='rng-random'/>
+ <flag name='rng-egd'/>
+ <flag name='dtb'/>
+ <flag name='megasas'/>
+ <flag name='ipv6-migration'/>
+ <flag name='machine-opt'/>
+ <flag name='machine-usb-opt'/>
+ <flag name='tpm-passthrough'/>
+ <flag name='tpm-tis'/>
+ <flag name='pci-bridge'/>
+ <flag name='vfio-pci'/>
+ <flag name='vfio-pci.bootindex'/>
+ <flag name='scsi-generic'/>
+ <flag name='scsi-generic.bootindex'/>
+ <flag name='mem-merge'/>
+ <flag name='vnc-websocket'/>
+ <flag name='drive-discard'/>
+ <flag name='mlock'/>
+ <flag name='vnc-share-policy'/>
+ <flag name='device-del-event'/>
+ <flag name='dmi-to-pci-bridge'/>
+ <flag name='i440fx-pci-hole64-size'/>
+ <flag name='q35-pci-hole64-size'/>
+ <flag name='usb-storage'/>
+ <flag name='usb-storage.removable'/>
+ <flag name='virtio-mmio'/>
+ <flag name='ich9-intel-hda'/>
+ <flag name='kvm-pit-lost-tick-policy'/>
+ <flag name='boot-strict'/>
+ <flag name='pvpanic'/>
+ <flag name='spice-file-xfer-disable'/>
+ <flag name='spiceport'/>
+ <flag name='usb-kbd'/>
+ <flag name='host-pci-multidomain'/>
+ <flag name='msg-timestamp'/>
+ <flag name='active-commit'/>
+ <flag name='change-backing-file'/>
+ <flag name='memory-backend-ram'/>
+ <flag name='numa'/>
+ <flag name='memory-backend-file'/>
+ <flag name='usb-audio'/>
+ <flag name='rtc-reset-reinjection'/>
+ <flag name='splash-timeout'/>
+ <flag name='iothread'/>
+ <flag name='migrate-rdma'/>
+ <flag name='ivshmem'/>
+ <flag name='drive-iotune-max'/>
+ <flag name='VGA.vgamem_mb'/>
+ <flag name='vmware-svga.vgamem_mb'/>
+ <flag name='qxl.vgamem_mb'/>
+ <flag name='pc-dimm'/>
+ <flag name='machine-vmport-opt'/>
+ <flag name='aes-key-wrap'/>
+ <flag name='dea-key-wrap'/>
+ <flag name='pci-serial'/>
+ <flag name='vhost-user-multiqueue'/>
+ <flag name='migration-event'/>
+ <flag name='ioh3420'/>
+ <flag name='x3130-upstream'/>
+ <flag name='xio3130-downstream'/>
+ <flag name='rtl8139'/>
+ <flag name='e1000'/>
+ <flag name='virtio-net'/>
+ <flag name='gic-version'/>
+ <flag name='incoming-defer'/>
+ <flag name='virtio-gpu'/>
+ <flag name='virtio-keyboard'/>
+ <flag name='virtio-mouse'/>
+ <flag name='virtio-tablet'/>
+ <flag name='virtio-input-host'/>
+ <flag name='chardev-file-append'/>
+ <flag name='ich9-disable-s3'/>
+ <flag name='ich9-disable-s4'/>
+ <flag name='vserport-change-event'/>
+ <flag name='virtio-balloon-pci.deflate-on-oom'/>
+ <flag name='mptsas1068'/>
+ <flag name='qxl.vram64_size_mb'/>
+ <flag name='chardev-logfile'/>
+ <flag name='debug-threads'/>
+ <flag name='secret'/>
+ <flag name='pxb'/>
+ <flag name='pxb-pcie'/>
+ <flag name='device-tray-moved-event'/>
+ <flag name='nec-usb-xhci-ports'/>
+ <flag name='virtio-scsi-pci.iothread'/>
+ <flag name='name-guest'/>
+ <flag name='qxl.max_outputs'/>
+ <flag name='spice-unix'/>
+ <flag name='drive-detect-zeroes'/>
+ <flag name='tls-creds-x509'/>
+ <flag name='display'/>
+ <flag name='intel-iommu'/>
+ <flag name='smm'/>
+ <flag name='virtio-pci-disable-legacy'/>
+ <flag name='query-hotpluggable-cpus'/>
+ <flag name='virtio-net.rx_queue_size'/>
+ <flag name='virtio-vga'/>
+ <flag name='drive-iotune-max-length'/>
+ <flag name='ivshmem-plain'/>
+ <flag name='ivshmem-doorbell'/>
+ <flag name='query-qmp-schema'/>
+ <flag name='gluster.debug_level'/>
+ <flag name='vhost-scsi'/>
+ <flag name='drive-iotune-group'/>
+ <flag name='query-cpu-model-expansion'/>
+ <flag name='virtio-net.host_mtu'/>
+ <flag name='nvdimm'/>
+ <flag name='pcie-root-port'/>
+ <flag name='query-cpu-definitions'/>
+ <flag name='block-write-threshold'/>
+ <flag name='query-named-block-nodes'/>
+ <flag name='cpu-cache'/>
+ <flag name='qemu-xhci'/>
+ <flag name='kernel-irqchip'/>
+ <flag name='kernel-irqchip.split'/>
+ <flag name='intel-iommu.intremap'/>
+ <flag name='intel-iommu.caching-mode'/>
+ <flag name='intel-iommu.eim'/>
+ <flag name='intel-iommu.device-iotlb'/>
+ <flag name='virtio.iommu_platform'/>
+ <flag name='virtio.ats'/>
+ <flag name='loadparm'/>
+ <flag name='vnc-multi-servers'/>
+ <flag name='virtio-net.tx_queue_size'/>
+ <flag name='chardev-reconnect'/>
+ <flag name='virtio-gpu.max_outputs'/>
+ <version>2010000</version>
+ <kvmVersion>0</kvmVersion>
+ <package> (v2.10.0)</package>
+ <arch>x86_64</arch>
+ <hostCPU type='kvm' model='base' migratability='yes'>
+ <property name='phys-bits' type='number' value='0'/>
+ <property name='core-id' type='number' value='-1'/>
+ <property name='xlevel' type='number' value='2147483656'/>
+ <property name='cmov' type='boolean' value='true' migratable='yes'/>
+ <property name='ia64' type='boolean' value='false'/>
+ <property name='aes' type='boolean' value='true' migratable='yes'/>
+ <property name='mmx' type='boolean' value='true' migratable='yes'/>
+ <property name='arat' type='boolean' value='true' migratable='yes'/>
+ <property name='rdpid' type='boolean' value='false'/>
+ <property name='pause-filter' type='boolean' value='false'/>
+ <property name='xsavec' type='boolean' value='false'/>
+ <property name='osxsave' type='boolean' value='false'/>
+ <property name='tsc-frequency' type='number' value='0'/>
+ <property name='xd' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-vendor-id' type='string' value=''/>
+ <property name='kvm-asyncpf' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_asyncpf' type='boolean' value='true' migratable='yes'/>
+ <property name='perfctr_core' type='boolean' value='false'/>
+ <property name='perfctr-core' type='boolean' value='false'/>
+ <property name='mpx' type='boolean' value='false'/>
+ <property name='avx512cd' type='boolean' value='false'/>
+ <property name='decodeassists' type='boolean' value='false'/>
+ <property name='pbe' type='boolean' value='false'/>
+ <property name='sse4_1' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4.1' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4-1' type='boolean' value='true' migratable='yes'/>
+ <property name='family' type='number' value='6'/>
+ <property name='vmware-cpuid-freq' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512f' type='boolean' value='false'/>
+ <property name='xcrypt' type='boolean' value='false'/>
+ <property name='hv-runtime' type='boolean' value='false'/>
+ <property name='msr' type='boolean' value='true' migratable='yes'/>
+ <property name='mce' type='boolean' value='true' migratable='yes'/>
+ <property name='mca' type='boolean' value='true' migratable='yes'/>
+ <property name='thread-id' type='number' value='-1'/>
+ <property name='min-level' type='number' value='13'/>
+ <property name='xgetbv1' type='boolean' value='false'/>
+ <property name='cid' type='boolean' value='false'/>
+ <property name='hv-relaxed' type='boolean' value='false'/>
+ <property name='fxsr' type='boolean' value='true' migratable='yes'/>
+ <property name='ds' type='boolean' value='false'/>
+ <property name='hv-crash' type='boolean' value='false'/>
+ <property name='xsaveopt' type='boolean' value='true' migratable='yes'/>
+ <property name='xtpr' type='boolean' value='false'/>
+ <property name='avx512-vpopcntdq' type='boolean' value='false'/>
+ <property name='phe' type='boolean' value='false'/>
+ <property name='avx512vl' type='boolean' value='false'/>
+ <property name='extapic' type='boolean' value='false'/>
+ <property name='3dnowprefetch' type='boolean' value='false'/>
+ <property name='cr8legacy' type='boolean' value='false'/>
+ <property name='cpuid-0xb' type='boolean' value='true' migratable='yes'/>
+ <property name='xcrypt-en' type='boolean' value='false'/>
+ <property name='kvm_pv_eoi' type='boolean' value='true' migratable='yes'/>
+ <property name='apic-id' type='number' value='4294967295'/>
+ <property name='pn' type='boolean' value='false'/>
+ <property name='dca' type='boolean' value='false'/>
+ <property name='vendor' type='string' value='GenuineIntel'/>
+ <property name='pku' type='boolean' value='false'/>
+ <property name='smx' type='boolean' value='false'/>
+ <property name='cmp-legacy' type='boolean' value='false'/>
+ <property name='cmp_legacy' type='boolean' value='false'/>
+ <property name='node-id' type='number' value='-1'/>
+ <property name='avx512-4fmaps' type='boolean' value='false'/>
+ <property name='vmcb-clean' type='boolean' value='false'/>
+ <property name='vmcb_clean' type='boolean' value='false'/>
+ <property name='3dnowext' type='boolean' value='false'/>
+ <property name='hle' type='boolean' value='false'/>
+ <property name='npt' type='boolean' value='false'/>
+ <property name='memory' type='string' value='/machine/unattached/system[0]'/>
+ <property name='clwb' type='boolean' value='false'/>
+ <property name='lbrv' type='boolean' value='false'/>
+ <property name='adx' type='boolean' value='false'/>
+ <property name='ss' type='boolean' value='true' migratable='yes'/>
+ <property name='pni' type='boolean' value='true' migratable='yes'/>
+ <property name='svm_lock' type='boolean' value='false'/>
+ <property name='svm-lock' type='boolean' value='false'/>
+ <property name='smep' type='boolean' value='true' migratable='yes'/>
+ <property name='pfthreshold' type='boolean' value='false'/>
+ <property name='smap' type='boolean' value='false'/>
+ <property name='x2apic' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512vbmi' type='boolean' value='false'/>
+ <property name='hv-stimer' type='boolean' value='false'/>
+ <property name='i64' type='boolean' value='true' migratable='yes'/>
+ <property name='flushbyasid' type='boolean' value='false'/>
+ <property name='f16c' type='boolean' value='true' migratable='yes'/>
+ <property name='ace2-en' type='boolean' value='false'/>
+ <property name='pat' type='boolean' value='true' migratable='yes'/>
+ <property name='pae' type='boolean' value='true' migratable='yes'/>
+ <property name='sse' type='boolean' value='true' migratable='yes'/>
+ <property name='phe-en' type='boolean' value='false'/>
+ <property name='kvm-nopiodelay' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_nopiodelay' type='boolean' value='true' migratable='yes'/>
+ <property name='tm' type='boolean' value='false'/>
+ <property name='kvmclock-stable-bit' type='boolean' value='true' migratable='yes'/>
+ <property name='hypervisor' type='boolean' value='true' migratable='yes'/>
+ <property name='socket-id' type='number' value='-1'/>
+ <property name='pcommit' type='boolean' value='false'/>
+ <property name='syscall' type='boolean' value='true' migratable='yes'/>
+ <property name='level' type='number' value='13'/>
+ <property name='avx512dq' type='boolean' value='false'/>
+ <property name='svm' type='boolean' value='false'/>
+ <property name='full-cpuid-auto-level' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-reset' type='boolean' value='false'/>
+ <property name='invtsc' type='boolean' value='true' migratable='no'/>
+ <property name='sse3' type='boolean' value='true' migratable='yes'/>
+ <property name='sse2' type='boolean' value='true' migratable='yes'/>
+ <property name='est' type='boolean' value='false'/>
+ <property name='avx512ifma' type='boolean' value='false'/>
+ <property name='tm2' type='boolean' value='false'/>
+ <property name='kvm-pv-eoi' type='boolean' value='true' migratable='yes'/>
+ <property name='cx8' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-mmu' type='boolean' value='false'/>
+ <property name='kvm_mmu' type='boolean' value='false'/>
+ <property name='sse4_2' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4.2' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4-2' type='boolean' value='true' migratable='yes'/>
+ <property name='pge' type='boolean' value='true' migratable='yes'/>
+ <property name='fill-mtrr-mask' type='boolean' value='true' migratable='yes'/>
+ <property name='pdcm' type='boolean' value='false'/>
+ <property name='nodeid_msr' type='boolean' value='false'/>
+ <property name='model' type='number' value='60'/>
+ <property name='movbe' type='boolean' value='true' migratable='yes'/>
+ <property name='nrip-save' type='boolean' value='false'/>
+ <property name='nrip_save' type='boolean' value='false'/>
+ <property name='sse4a' type='boolean' value='false'/>
+ <property name='ssse3' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_pv_unhalt' type='boolean' value='true' migratable='yes'/>
+ <property name='invpcid' type='boolean' value='true' migratable='yes'/>
+ <property name='pdpe1gb' type='boolean' value='true' migratable='yes'/>
+ <property name='tsc-deadline' type='boolean' value='true' migratable='yes'/>
+ <property name='fma' type='boolean' value='true' migratable='yes'/>
+ <property name='cx16' type='boolean' value='true' migratable='yes'/>
+ <property name='de' type='boolean' value='true' migratable='yes'/>
+ <property name='enforce' type='boolean' value='false'/>
+ <property name='stepping' type='number' value='3'/>
+ <property name='xsave' type='boolean' value='true' migratable='yes'/>
+ <property name='clflush' type='boolean' value='true' migratable='yes'/>
+ <property name='skinit' type='boolean' value='false'/>
+ <property name='tce' type='boolean' value='false'/>
+ <property name='tsc' type='boolean' value='true' migratable='yes'/>
+ <property name='fpu' type='boolean' value='true' migratable='yes'/>
+ <property name='ds-cpl' type='boolean' value='false'/>
+ <property name='ds_cpl' type='boolean' value='false'/>
+ <property name='ibs' type='boolean' value='false'/>
+ <property name='host-phys-bits' type='boolean' value='false'/>
+ <property name='fma4' type='boolean' value='false'/>
+ <property name='la57' type='boolean' value='false'/>
+ <property name='osvw' type='boolean' value='false'/>
+ <property name='check' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-spinlocks' type='number' value='-1'/>
+ <property name='pmm' type='boolean' value='false'/>
+ <property name='apic' type='boolean' value='true' migratable='yes'/>
+ <property name='pmu' type='boolean' value='false'/>
+ <property name='min-xlevel2' type='number' value='0'/>
+ <property name='tsc-adjust' type='boolean' value='true' migratable='yes'/>
+ <property name='tsc_adjust' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-steal-time' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_steal_time' type='boolean' value='true' migratable='yes'/>
+ <property name='kvmclock' type='boolean' value='true' migratable='yes'/>
+ <property name='l3-cache' type='boolean' value='true' migratable='yes'/>
+ <property name='lwp' type='boolean' value='false'/>
+ <property name='xop' type='boolean' value='false'/>
+ <property name='avx' type='boolean' value='true' migratable='yes'/>
+ <property name='ospke' type='boolean' value='false'/>
+ <property name='ace2' type='boolean' value='false'/>
+ <property name='acpi' type='boolean' value='false'/>
+ <property name='avx512bw' type='boolean' value='false'/>
+ <property name='hv-vapic' type='boolean' value='false'/>
+ <property name='fsgsbase' type='boolean' value='true' migratable='yes'/>
+ <property name='ht' type='boolean' value='false'/>
+ <property name='nx' type='boolean' value='true' migratable='yes'/>
+ <property name='pclmulqdq' type='boolean' value='true' migratable='yes'/>
+ <property name='mmxext' type='boolean' value='false'/>
+ <property name='popcnt' type='boolean' value='true' migratable='yes'/>
+ <property name='xsaves' type='boolean' value='false'/>
+ <property name='tcg-cpuid' type='boolean' value='true' migratable='yes'/>
+ <property name='lm' type='boolean' value='true' migratable='yes'/>
+ <property name='umip' type='boolean' value='false'/>
+ <property name='avx2' type='boolean' value='true' migratable='yes'/>
+ <property name='pse' type='boolean' value='true' migratable='yes'/>
+ <property name='sep' type='boolean' value='true' migratable='yes'/>
+ <property name='pclmuldq' type='boolean' value='true' migratable='yes'/>
+ <property name='nodeid-msr' type='boolean' value='false'/>
+ <property name='kvm' type='boolean' value='true' migratable='yes'/>
+ <property name='misalignsse' type='boolean' value='false'/>
+ <property name='min-xlevel' type='number' value='2147483656'/>
+ <property name='bmi2' type='boolean' value='true' migratable='yes'/>
+ <property name='bmi1' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-pv-unhalt' type='boolean' value='true' migratable='yes'/>
+ <property name='realized' type='boolean' value='false'/>
+ <property name='tsc_scale' type='boolean' value='false'/>
+ <property name='tsc-scale' type='boolean' value='false'/>
+ <property name='topoext' type='boolean' value='false'/>
+ <property name='hv-vpindex' type='boolean' value='false'/>
+ <property name='xlevel2' type='number' value='0'/>
+ <property name='clflushopt' type='boolean' value='false'/>
+ <property name='kvm-no-smi-migration' type='boolean' value='false'/>
+ <property name='monitor' type='boolean' value='false'/>
+ <property name='avx512er' type='boolean' value='false'/>
+ <property name='pmm-en' type='boolean' value='false'/>
+ <property name='pcid' type='boolean' value='true' migratable='yes'/>
+ <property name='3dnow' type='boolean' value='false'/>
+ <property name='erms' type='boolean' value='true' migratable='yes'/>
+ <property name='lahf-lm' type='boolean' value='true' migratable='yes'/>
+ <property name='lahf_lm' type='boolean' value='true' migratable='yes'/>
+ <property name='xstore' type='boolean' value='false'/>
+ <property name='hv-synic' type='boolean' value='false'/>
+ <property name='fxsr-opt' type='boolean' value='false'/>
+ <property name='fxsr_opt' type='boolean' value='false'/>
+ <property name='rtm' type='boolean' value='false'/>
+ <property name='lmce' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-time' type='boolean' value='false'/>
+ <property name='perfctr-nb' type='boolean' value='false'/>
+ <property name='perfctr_nb' type='boolean' value='false'/>
+ <property name='ffxsr' type='boolean' value='false'/>
+ <property name='rdrand' type='boolean' value='true' migratable='yes'/>
+ <property name='rdseed' type='boolean' value='false'/>
+ <property name='avx512-4vnniw' type='boolean' value='false'/>
+ <property name='vme' type='boolean' value='true' migratable='yes'/>
+ <property name='vmx' type='boolean' value='true' migratable='yes'/>
+ <property name='dtes64' type='boolean' value='false'/>
+ <property name='mtrr' type='boolean' value='true' migratable='yes'/>
+ <property name='rdtscp' type='boolean' value='true' migratable='yes'/>
+ <property name='pse36' type='boolean' value='true' migratable='yes'/>
+ <property name='tbm' type='boolean' value='false'/>
+ <property name='wdt' type='boolean' value='false'/>
+ <property name='pause_filter' type='boolean' value='false'/>
+ <property name='model-id' type='string' value='Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz'/>
+ <property name='sha-ni' type='boolean' value='false'/>
+ <property name='abm' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512pf' type='boolean' value='false'/>
+ <property name='xstore-en' type='boolean' value='false'/>
+ </hostCPU>
+ <hostCPU type='tcg' model='base' migratability='yes'>
+ <property name='phys-bits' type='number' value='0'/>
+ <property name='core-id' type='number' value='-1'/>
+ <property name='xlevel' type='number' value='2147483658'/>
+ <property name='cmov' type='boolean' value='true' migratable='yes'/>
+ <property name='ia64' type='boolean' value='false'/>
+ <property name='aes' type='boolean' value='true' migratable='yes'/>
+ <property name='mmx' type='boolean' value='true' migratable='yes'/>
+ <property name='arat' type='boolean' value='true' migratable='yes'/>
+ <property name='rdpid' type='boolean' value='false'/>
+ <property name='pause-filter' type='boolean' value='false'/>
+ <property name='xsavec' type='boolean' value='false'/>
+ <property name='osxsave' type='boolean' value='false'/>
+ <property name='tsc-frequency' type='number' value='0'/>
+ <property name='xd' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-vendor-id' type='string' value=''/>
+ <property name='kvm-asyncpf' type='boolean' value='false'/>
+ <property name='kvm_asyncpf' type='boolean' value='false'/>
+ <property name='perfctr_core' type='boolean' value='false'/>
+ <property name='perfctr-core' type='boolean' value='false'/>
+ <property name='mpx' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512cd' type='boolean' value='false'/>
+ <property name='decodeassists' type='boolean' value='false'/>
+ <property name='pbe' type='boolean' value='false'/>
+ <property name='sse4_1' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4.1' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4-1' type='boolean' value='true' migratable='yes'/>
+ <property name='family' type='number' value='6'/>
+ <property name='vmware-cpuid-freq' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512f' type='boolean' value='false'/>
+ <property name='xcrypt' type='boolean' value='false'/>
+ <property name='hv-runtime' type='boolean' value='false'/>
+ <property name='msr' type='boolean' value='true' migratable='yes'/>
+ <property name='mce' type='boolean' value='true' migratable='yes'/>
+ <property name='mca' type='boolean' value='true' migratable='yes'/>
+ <property name='thread-id' type='number' value='-1'/>
+ <property name='min-level' type='number' value='13'/>
+ <property name='xgetbv1' type='boolean' value='true' migratable='yes'/>
+ <property name='cid' type='boolean' value='false'/>
+ <property name='hv-relaxed' type='boolean' value='false'/>
+ <property name='fxsr' type='boolean' value='true' migratable='yes'/>
+ <property name='ds' type='boolean' value='false'/>
+ <property name='hv-crash' type='boolean' value='false'/>
+ <property name='xsaveopt' type='boolean' value='true' migratable='yes'/>
+ <property name='xtpr' type='boolean' value='false'/>
+ <property name='avx512-vpopcntdq' type='boolean' value='false'/>
+ <property name='phe' type='boolean' value='false'/>
+ <property name='avx512vl' type='boolean' value='false'/>
+ <property name='extapic' type='boolean' value='false'/>
+ <property name='3dnowprefetch' type='boolean' value='false'/>
+ <property name='cr8legacy' type='boolean' value='true' migratable='yes'/>
+ <property name='cpuid-0xb' type='boolean' value='true' migratable='yes'/>
+ <property name='xcrypt-en' type='boolean' value='false'/>
+ <property name='kvm_pv_eoi' type='boolean' value='false'/>
+ <property name='apic-id' type='number' value='4294967295'/>
+ <property name='pn' type='boolean' value='false'/>
+ <property name='dca' type='boolean' value='false'/>
+ <property name='vendor' type='string' value='AuthenticAMD'/>
+ <property name='pku' type='boolean' value='true' migratable='yes'/>
+ <property name='smx' type='boolean' value='false'/>
+ <property name='cmp-legacy' type='boolean' value='false'/>
+ <property name='cmp_legacy' type='boolean' value='false'/>
+ <property name='node-id' type='number' value='-1'/>
+ <property name='avx512-4fmaps' type='boolean' value='false'/>
+ <property name='vmcb-clean' type='boolean' value='false'/>
+ <property name='vmcb_clean' type='boolean' value='false'/>
+ <property name='3dnowext' type='boolean' value='true' migratable='yes'/>
+ <property name='hle' type='boolean' value='false'/>
+ <property name='npt' type='boolean' value='false'/>
+ <property name='memory' type='string' value='/machine/unattached/system[0]'/>
+ <property name='clwb' type='boolean' value='true' migratable='yes'/>
+ <property name='lbrv' type='boolean' value='false'/>
+ <property name='adx' type='boolean' value='true' migratable='yes'/>
+ <property name='ss' type='boolean' value='true' migratable='yes'/>
+ <property name='pni' type='boolean' value='true' migratable='yes'/>
+ <property name='svm_lock' type='boolean' value='false'/>
+ <property name='svm-lock' type='boolean' value='false'/>
+ <property name='smep' type='boolean' value='true' migratable='yes'/>
+ <property name='pfthreshold' type='boolean' value='false'/>
+ <property name='smap' type='boolean' value='true' migratable='yes'/>
+ <property name='x2apic' type='boolean' value='false'/>
+ <property name='avx512vbmi' type='boolean' value='false'/>
+ <property name='hv-stimer' type='boolean' value='false'/>
+ <property name='i64' type='boolean' value='true' migratable='yes'/>
+ <property name='flushbyasid' type='boolean' value='false'/>
+ <property name='f16c' type='boolean' value='false'/>
+ <property name='ace2-en' type='boolean' value='false'/>
+ <property name='pat' type='boolean' value='true' migratable='yes'/>
+ <property name='pae' type='boolean' value='true' migratable='yes'/>
+ <property name='sse' type='boolean' value='true' migratable='yes'/>
+ <property name='phe-en' type='boolean' value='false'/>
+ <property name='kvm-nopiodelay' type='boolean' value='false'/>
+ <property name='kvm_nopiodelay' type='boolean' value='false'/>
+ <property name='tm' type='boolean' value='false'/>
+ <property name='kvmclock-stable-bit' type='boolean' value='false'/>
+ <property name='hypervisor' type='boolean' value='true' migratable='yes'/>
+ <property name='socket-id' type='number' value='-1'/>
+ <property name='pcommit' type='boolean' value='true' migratable='yes'/>
+ <property name='syscall' type='boolean' value='true' migratable='yes'/>
+ <property name='level' type='number' value='13'/>
+ <property name='avx512dq' type='boolean' value='false'/>
+ <property name='svm' type='boolean' value='true' migratable='yes'/>
+ <property name='full-cpuid-auto-level' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-reset' type='boolean' value='false'/>
+ <property name='invtsc' type='boolean' value='false'/>
+ <property name='sse3' type='boolean' value='true' migratable='yes'/>
+ <property name='sse2' type='boolean' value='true' migratable='yes'/>
+ <property name='est' type='boolean' value='false'/>
+ <property name='avx512ifma' type='boolean' value='false'/>
+ <property name='tm2' type='boolean' value='false'/>
+ <property name='kvm-pv-eoi' type='boolean' value='false'/>
+ <property name='cx8' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-mmu' type='boolean' value='false'/>
+ <property name='kvm_mmu' type='boolean' value='false'/>
+ <property name='sse4_2' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4.2' type='boolean' value='true' migratable='yes'/>
+ <property name='sse4-2' type='boolean' value='true' migratable='yes'/>
+ <property name='pge' type='boolean' value='true' migratable='yes'/>
+ <property name='fill-mtrr-mask' type='boolean' value='true' migratable='yes'/>
+ <property name='pdcm' type='boolean' value='false'/>
+ <property name='nodeid_msr' type='boolean' value='false'/>
+ <property name='model' type='number' value='6'/>
+ <property name='movbe' type='boolean' value='true' migratable='yes'/>
+ <property name='nrip-save' type='boolean' value='false'/>
+ <property name='nrip_save' type='boolean' value='false'/>
+ <property name='sse4a' type='boolean' value='true' migratable='yes'/>
+ <property name='ssse3' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm_pv_unhalt' type='boolean' value='false'/>
+ <property name='invpcid' type='boolean' value='false'/>
+ <property name='pdpe1gb' type='boolean' value='true' migratable='yes'/>
+ <property name='tsc-deadline' type='boolean' value='false'/>
+ <property name='fma' type='boolean' value='false'/>
+ <property name='cx16' type='boolean' value='true' migratable='yes'/>
+ <property name='de' type='boolean' value='true' migratable='yes'/>
+ <property name='enforce' type='boolean' value='false'/>
+ <property name='stepping' type='number' value='3'/>
+ <property name='xsave' type='boolean' value='true' migratable='yes'/>
+ <property name='clflush' type='boolean' value='true' migratable='yes'/>
+ <property name='skinit' type='boolean' value='false'/>
+ <property name='tce' type='boolean' value='false'/>
+ <property name='tsc' type='boolean' value='true' migratable='yes'/>
+ <property name='fpu' type='boolean' value='true' migratable='yes'/>
+ <property name='ds-cpl' type='boolean' value='false'/>
+ <property name='ds_cpl' type='boolean' value='false'/>
+ <property name='ibs' type='boolean' value='false'/>
+ <property name='host-phys-bits' type='boolean' value='false'/>
+ <property name='fma4' type='boolean' value='false'/>
+ <property name='la57' type='boolean' value='true' migratable='yes'/>
+ <property name='osvw' type='boolean' value='false'/>
+ <property name='check' type='boolean' value='true' migratable='yes'/>
+ <property name='hv-spinlocks' type='number' value='-1'/>
+ <property name='pmm' type='boolean' value='false'/>
+ <property name='apic' type='boolean' value='true' migratable='yes'/>
+ <property name='pmu' type='boolean' value='false'/>
+ <property name='min-xlevel2' type='number' value='0'/>
+ <property name='tsc-adjust' type='boolean' value='false'/>
+ <property name='tsc_adjust' type='boolean' value='false'/>
+ <property name='kvm-steal-time' type='boolean' value='false'/>
+ <property name='kvm_steal_time' type='boolean' value='false'/>
+ <property name='kvmclock' type='boolean' value='false'/>
+ <property name='l3-cache' type='boolean' value='true' migratable='yes'/>
+ <property name='lwp' type='boolean' value='false'/>
+ <property name='xop' type='boolean' value='false'/>
+ <property name='avx' type='boolean' value='false'/>
+ <property name='ospke' type='boolean' value='true' migratable='yes'/>
+ <property name='ace2' type='boolean' value='false'/>
+ <property name='acpi' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512bw' type='boolean' value='false'/>
+ <property name='hv-vapic' type='boolean' value='false'/>
+ <property name='fsgsbase' type='boolean' value='true' migratable='yes'/>
+ <property name='ht' type='boolean' value='false'/>
+ <property name='nx' type='boolean' value='true' migratable='yes'/>
+ <property name='pclmulqdq' type='boolean' value='true' migratable='yes'/>
+ <property name='mmxext' type='boolean' value='true' migratable='yes'/>
+ <property name='popcnt' type='boolean' value='true' migratable='yes'/>
+ <property name='xsaves' type='boolean' value='false'/>
+ <property name='tcg-cpuid' type='boolean' value='true' migratable='yes'/>
+ <property name='lm' type='boolean' value='true' migratable='yes'/>
+ <property name='umip' type='boolean' value='false'/>
+ <property name='avx2' type='boolean' value='false'/>
+ <property name='pse' type='boolean' value='true' migratable='yes'/>
+ <property name='sep' type='boolean' value='true' migratable='yes'/>
+ <property name='pclmuldq' type='boolean' value='true' migratable='yes'/>
+ <property name='nodeid-msr' type='boolean' value='false'/>
+ <property name='kvm' type='boolean' value='true' migratable='yes'/>
+ <property name='misalignsse' type='boolean' value='false'/>
+ <property name='min-xlevel' type='number' value='2147483658'/>
+ <property name='bmi2' type='boolean' value='true' migratable='yes'/>
+ <property name='bmi1' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-pv-unhalt' type='boolean' value='false'/>
+ <property name='realized' type='boolean' value='false'/>
+ <property name='tsc_scale' type='boolean' value='false'/>
+ <property name='tsc-scale' type='boolean' value='false'/>
+ <property name='topoext' type='boolean' value='false'/>
+ <property name='hv-vpindex' type='boolean' value='false'/>
+ <property name='xlevel2' type='number' value='0'/>
+ <property name='clflushopt' type='boolean' value='true' migratable='yes'/>
+ <property name='kvm-no-smi-migration' type='boolean' value='false'/>
+ <property name='monitor' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512er' type='boolean' value='false'/>
+ <property name='pmm-en' type='boolean' value='false'/>
+ <property name='pcid' type='boolean' value='false'/>
+ <property name='3dnow' type='boolean' value='true' migratable='yes'/>
+ <property name='erms' type='boolean' value='true' migratable='yes'/>
+ <property name='lahf-lm' type='boolean' value='true' migratable='yes'/>
+ <property name='lahf_lm' type='boolean' value='true' migratable='yes'/>
+ <property name='xstore' type='boolean' value='false'/>
+ <property name='hv-synic' type='boolean' value='false'/>
+ <property name='fxsr-opt' type='boolean' value='false'/>
+ <property name='fxsr_opt' type='boolean' value='false'/>
+ <property name='rtm' type='boolean' value='false'/>
+ <property name='lmce' type='boolean' value='false'/>
+ <property name='hv-time' type='boolean' value='false'/>
+ <property name='perfctr-nb' type='boolean' value='false'/>
+ <property name='perfctr_nb' type='boolean' value='false'/>
+ <property name='ffxsr' type='boolean' value='false'/>
+ <property name='rdrand' type='boolean' value='false'/>
+ <property name='rdseed' type='boolean' value='false'/>
+ <property name='avx512-4vnniw' type='boolean' value='false'/>
+ <property name='vme' type='boolean' value='false'/>
+ <property name='vmx' type='boolean' value='false'/>
+ <property name='dtes64' type='boolean' value='false'/>
+ <property name='mtrr' type='boolean' value='true' migratable='yes'/>
+ <property name='rdtscp' type='boolean' value='true' migratable='yes'/>
+ <property name='pse36' type='boolean' value='true' migratable='yes'/>
+ <property name='tbm' type='boolean' value='false'/>
+ <property name='wdt' type='boolean' value='false'/>
+ <property name='pause_filter' type='boolean' value='false'/>
+ <property name='model-id' type='string' value='QEMU TCG CPU version 2.5+'/>
+ <property name='sha-ni' type='boolean' value='false'/>
+ <property name='abm' type='boolean' value='true' migratable='yes'/>
+ <property name='avx512pf' type='boolean' value='false'/>
+ <property name='xstore-en' type='boolean' value='false'/>
+ </hostCPU>
+ <cpu type='kvm' name='max' usable='yes'/>
+ <cpu type='kvm' name='host' usable='yes'/>
+ <cpu type='kvm' name='base' usable='yes'/>
+ <cpu type='kvm' name='qemu64' usable='yes'/>
+ <cpu type='kvm' name='qemu32' usable='yes'/>
+ <cpu type='kvm' name='phenom' usable='no'/>
+ <cpu type='kvm' name='pentium3' usable='yes'/>
+ <cpu type='kvm' name='pentium2' usable='yes'/>
+ <cpu type='kvm' name='pentium' usable='yes'/>
+ <cpu type='kvm' name='n270' usable='yes'/>
+ <cpu type='kvm' name='kvm64' usable='yes'/>
+ <cpu type='kvm' name='kvm32' usable='yes'/>
+ <cpu type='kvm' name='coreduo' usable='yes'/>
+ <cpu type='kvm' name='core2duo' usable='yes'/>
+ <cpu type='kvm' name='athlon' usable='no'/>
+ <cpu type='kvm' name='Westmere' usable='yes'/>
+ <cpu type='kvm' name='Skylake-Server' usable='no'/>
+ <cpu type='kvm' name='Skylake-Client' usable='no'/>
+ <cpu type='kvm' name='SandyBridge' usable='yes'/>
+ <cpu type='kvm' name='Penryn' usable='yes'/>
+ <cpu type='kvm' name='Opteron_G5' usable='no'/>
+ <cpu type='kvm' name='Opteron_G4' usable='no'/>
+ <cpu type='kvm' name='Opteron_G3' usable='no'/>
+ <cpu type='kvm' name='Opteron_G2' usable='yes'/>
+ <cpu type='kvm' name='Opteron_G1' usable='yes'/>
+ <cpu type='kvm' name='Nehalem' usable='yes'/>
+ <cpu type='kvm' name='IvyBridge' usable='yes'/>
+ <cpu type='kvm' name='Haswell' usable='no'/>
+ <cpu type='kvm' name='Haswell-noTSX' usable='yes'/>
+ <cpu type='kvm' name='Conroe' usable='yes'/>
+ <cpu type='kvm' name='Broadwell' usable='no'/>
+ <cpu type='kvm' name='Broadwell-noTSX' usable='no'/>
+ <cpu type='kvm' name='486' usable='yes'/>
+ <cpu type='tcg' name='max' usable='yes'/>
+ <cpu type='tcg' name='host' usable='no'/>
+ <cpu type='tcg' name='base' usable='yes'/>
+ <cpu type='tcg' name='qemu64' usable='yes'/>
+ <cpu type='tcg' name='qemu32' usable='yes'/>
+ <cpu type='tcg' name='phenom' usable='no'/>
+ <cpu type='tcg' name='pentium3' usable='yes'/>
+ <cpu type='tcg' name='pentium2' usable='yes'/>
+ <cpu type='tcg' name='pentium' usable='yes'/>
+ <cpu type='tcg' name='n270' usable='yes'/>
+ <cpu type='tcg' name='kvm64' usable='yes'/>
+ <cpu type='tcg' name='kvm32' usable='yes'/>
+ <cpu type='tcg' name='coreduo' usable='yes'/>
+ <cpu type='tcg' name='core2duo' usable='yes'/>
+ <cpu type='tcg' name='athlon' usable='yes'/>
+ <cpu type='tcg' name='Westmere' usable='yes'/>
+ <cpu type='tcg' name='Skylake-Server' usable='no'/>
+ <cpu type='tcg' name='Skylake-Client' usable='no'/>
+ <cpu type='tcg' name='SandyBridge' usable='no'/>
+ <cpu type='tcg' name='Penryn' usable='yes'/>
+ <cpu type='tcg' name='Opteron_G5' usable='no'/>
+ <cpu type='tcg' name='Opteron_G4' usable='no'/>
+ <cpu type='tcg' name='Opteron_G3' usable='no'/>
+ <cpu type='tcg' name='Opteron_G2' usable='yes'/>
+ <cpu type='tcg' name='Opteron_G1' usable='yes'/>
+ <cpu type='tcg' name='Nehalem' usable='yes'/>
+ <cpu type='tcg' name='IvyBridge' usable='no'/>
+ <cpu type='tcg' name='Haswell' usable='no'/>
+ <cpu type='tcg' name='Haswell-noTSX' usable='no'/>
+ <cpu type='tcg' name='Conroe' usable='yes'/>
+ <cpu type='tcg' name='Broadwell' usable='no'/>
+ <cpu type='tcg' name='Broadwell-noTSX' usable='no'/>
+ <cpu type='tcg' name='486' usable='yes'/>
+ <machine name='pc-i440fx-2.10' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-1.3' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.7' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='xenpv' maxCpus='1'/>
+ <machine name='pc-i440fx-1.7' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.8' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.7' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.11' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.3' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.10' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-1.2' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.2' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='isapc' hotplugCpus='yes' maxCpus='1'/>
+ <machine name='pc-q35-2.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='xenfv' hotplugCpus='yes' maxCpus='128'/>
+ <machine name='pc-0.15' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.14' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.9' hotplugCpus='yes' maxCpus='288'/>
+ <machine name='pc-1.1' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.1' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.8' hotplugCpus='yes' maxCpus='288'/>
+ <machine name='pc-1.0' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.0' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.9' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.13' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.10' alias='q35' hotplugCpus='yes' maxCpus='288'/>
+</qemuCaps>
diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c
index 3ae55fc..f0e099c 100644
--- a/tests/qemucapabilitiestest.c
+++ b/tests/qemucapabilitiestest.c
@@ -170,6 +170,7 @@ mymain(void)
DO_TEST("x86_64", "caps_2.7.0");
DO_TEST("x86_64", "caps_2.8.0");
DO_TEST("x86_64", "caps_2.9.0");
+ DO_TEST("x86_64", "caps_2.10.0");
DO_TEST("aarch64", "caps_2.6.0-gicv2");
DO_TEST("aarch64", "caps_2.6.0-gicv3");
DO_TEST("ppc64le", "caps_2.6.0");
@@ -180,7 +181,15 @@ mymain(void)
/*
* Run "tests/qemucapsprobe /path/to/qemu/binary >foo.replies"
- * to generate updated or new *.replies data files.
+ * to generate updated or new *.replies data files. Once the
+ * replies file is in tests/qemucapabilitiesdata/ using a proper
+ * name (e.g. caps_2.10.0.x86_64.replies), generate the capabilities
+ * XML file as follows (using an x86_64 example):
+ *
+ * touch tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
+ * VIR_TEST_REGENERATE_OUTPUT=1 ./tests/qemucapabilitiestest
+ *
+ * Add the new files to the commit along with the added DO_TEST.
*/
qemuTestDriverFree(&driver);
--
2.9.5
2
2
31 Aug '17
From: Alexander Polyakov <apolyakov(a)beget.com>
Signed-off-by: Alexander Polyakov <apolyakov(a)beget.com>
---
m4/virt-storage-lvm.m4 | 4 ++++
src/storage/storage_backend_logical.c | 22 ++++++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/m4/virt-storage-lvm.m4 b/m4/virt-storage-lvm.m4
index a0ccca7a0..0932995b4 100644
--- a/m4/virt-storage-lvm.m4
+++ b/m4/virt-storage-lvm.m4
@@ -30,6 +30,7 @@ AC_DEFUN([LIBVIRT_STORAGE_CHECK_LVM], [
AC_PATH_PROG([VGREMOVE], [vgremove], [], [$LIBVIRT_SBIN_PATH])
AC_PATH_PROG([LVREMOVE], [lvremove], [], [$LIBVIRT_SBIN_PATH])
AC_PATH_PROG([LVCHANGE], [lvchange], [], [$LIBVIRT_SBIN_PATH])
+ AC_PATH_PROG([LVRESIZE], [lvresize], [], [$LIBVIRT_SBIN_PATH])
AC_PATH_PROG([VGCHANGE], [vgchange], [], [$LIBVIRT_SBIN_PATH])
AC_PATH_PROG([VGSCAN], [vgscan], [], [$LIBVIRT_SBIN_PATH])
AC_PATH_PROG([PVS], [pvs], [], [$LIBVIRT_SBIN_PATH])
@@ -44,6 +45,7 @@ AC_DEFUN([LIBVIRT_STORAGE_CHECK_LVM], [
if test -z "$VGREMOVE" ; then AC_MSG_ERROR([We need vgremove for LVM storage driver]) ; fi
if test -z "$LVREMOVE" ; then AC_MSG_ERROR([We need lvremove for LVM storage driver]) ; fi
if test -z "$LVCHANGE" ; then AC_MSG_ERROR([We need lvchange for LVM storage driver]) ; fi
+ if test -z "$LVRESIZE" ; then AC_MSG_ERROR([We need lvresize for LVM storage driver]) ; fi
if test -z "$VGCHANGE" ; then AC_MSG_ERROR([We need vgchange for LVM storage driver]) ; fi
if test -z "$VGSCAN" ; then AC_MSG_ERROR([We need vgscan for LVM storage driver]) ; fi
if test -z "$PVS" ; then AC_MSG_ERROR([We need pvs for LVM storage driver]) ; fi
@@ -57,6 +59,7 @@ AC_DEFUN([LIBVIRT_STORAGE_CHECK_LVM], [
if test -z "$VGREMOVE" ; then with_storage_lvm=no ; fi
if test -z "$LVREMOVE" ; then with_storage_lvm=no ; fi
if test -z "$LVCHANGE" ; then with_storage_lvm=no ; fi
+ if test -z "$LVRESIZE" ; then with_storage_lvm=no ; fi
if test -z "$VGCHANGE" ; then with_storage_lvm=no ; fi
if test -z "$VGSCAN" ; then with_storage_lvm=no ; fi
if test -z "$PVS" ; then with_storage_lvm=no ; fi
@@ -75,6 +78,7 @@ AC_DEFUN([LIBVIRT_STORAGE_CHECK_LVM], [
AC_DEFINE_UNQUOTED([VGREMOVE],["$VGREMOVE"],[Location of vgremove program])
AC_DEFINE_UNQUOTED([LVREMOVE],["$LVREMOVE"],[Location of lvremove program])
AC_DEFINE_UNQUOTED([LVCHANGE],["$LVCHANGE"],[Location of lvchange program])
+ AC_DEFINE_UNQUOTED([LVRESIZE],["$LVRESIZE"],[Location of lvresize program])
AC_DEFINE_UNQUOTED([VGCHANGE],["$VGCHANGE"],[Location of vgchange program])
AC_DEFINE_UNQUOTED([VGSCAN],["$VGSCAN"],[Location of vgscan program])
AC_DEFINE_UNQUOTED([PVS],["$PVS"],[Location of pvs program])
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index 67f70e551..810e4ee88 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -1072,6 +1072,27 @@ virStorageBackendLogicalVolWipe(virConnectPtr conn,
return -1;
}
+static int
+virStorageBackendLogicalResizeVol(virConnectPtr conn ATTRIBUTE_UNUSED,
+ virStoragePoolObjPtr pool,
+ virStorageVolDefPtr vol,
+ unsigned long long capacity,
+ unsigned int flags)
+{
+
+ virCheckFlags(0, -1);
+
+ (void)pool;
+ virCommandPtr cmd = virCommandNewArgList(LVRESIZE, "-L", NULL);
+ virCommandAddArgFormat(cmd, "%lluK", VIR_DIV_UP(capacity, 1024));
+ virCommandAddArgFormat(cmd, "%s", vol->target.path);
+ int ret = virCommandRun(cmd, NULL);
+
+ virCommandFree(cmd);
+ return ret;
+
+}
+
virStorageBackend virStorageBackendLogical = {
.type = VIR_STORAGE_POOL_LOGICAL,
@@ -1089,6 +1110,7 @@ virStorageBackend virStorageBackendLogical = {
.uploadVol = virStorageBackendVolUploadLocal,
.downloadVol = virStorageBackendVolDownloadLocal,
.wipeVol = virStorageBackendLogicalVolWipe,
+ .resizeVol = virStorageBackendLogicalResizeVol,
};
--
2.13.5
3
2
Signed-off-by: Shuang He <shuang.he(a)zstack.io>
---
docs/apps.html.in | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/docs/apps.html.in b/docs/apps.html.in
index 1ced03c..06bf8a2 100644
--- a/docs/apps.html.in
+++ b/docs/apps.html.in
@@ -286,6 +286,17 @@
perfect for setting up low-end servers in a cloud or a
cloud where you want the most bang for the bucks.
</dd>
+
+ <dt><a href="http://en.zstack.io/">ZStack</a></dt>
+ <dd>
+ ZStack is open source IaaS software aiming to automate
+ datacenters, managing resources of compute, storage,
+ and networking all by APIs. Users can setup ZStack
+ environments in a download-and-run manner, spending 5 minutes
+ building a POC environment all on a single Linux machine,
+ or 30 minutes building a multi-node production environment
+ that can scale to hundreds of thousands of physical servers.
+ </dd>
</dl>
<h2><a id="libraries">Libraries</a></h2>
--
1.8.3.1
3
5
31 Aug '17
https://bugzilla.redhat.com/show_bug.cgi?id=1484230
When updating a virtio enabled vNIC and trying to change either
of rx_queue_size or tx_queue_size success is reported although no
operation is actually performed. Moreover, there's no way how to
change these on the fly. This is due to way we check for changes:
explicitly for each struct member. Therefore it's easy to miss
one.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_hotplug.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 4be0f546c..9611df517 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -3067,6 +3067,8 @@ qemuDomainChangeNet(virQEMUDriverPtr driver,
olddev->driver.virtio.ioeventfd != newdev->driver.virtio.ioeventfd ||
olddev->driver.virtio.event_idx != newdev->driver.virtio.event_idx ||
olddev->driver.virtio.queues != newdev->driver.virtio.queues ||
+ olddev->driver.virtio.rx_queue_size != newdev->driver.virtio.rx_queue_size ||
+ olddev->driver.virtio.tx_queue_size != newdev->driver.virtio.tx_queue_size ||
olddev->driver.virtio.host.csum != newdev->driver.virtio.host.csum ||
olddev->driver.virtio.host.gso != newdev->driver.virtio.host.gso ||
olddev->driver.virtio.host.tso4 != newdev->driver.virtio.host.tso4 ||
--
2.13.5
2
1
31 Aug '17
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
docs/news.xml | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 088966d61d..4b48f0fb3a 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -60,6 +60,15 @@
qemu: Added support for setting heads of virtio GPU
</summary>
</change>
+ <change>
+ <summary>
+ qemu: Added support to configure reconnect timeout for chardev devices
+ </summary>
+ <description>
+ When you have a TCP or UNIX chardev device and it's connected somewhere
+ you can configure reconnect timeout if the connection is closed.
+ </description>
+ </change>
</section>
<section title="Improvements">
</section>
--
2.13.5
2
1
[libvirt] [PATCH v6 00/13] Add support for Veritas HyperScale (VxHS) block device protocol
by John Ferlan 31 Aug '17
by John Ferlan 31 Aug '17
31 Aug '17
Here's the reworked v5 series I promised:
https://www.redhat.com/archives/libvir-list/2017-August/thread.html
Each of the patches lists changes that I recall making in the
area. I may have missed a few... and I may have missed something
from my own review - so hopefully Ashish you can keep me honest and
of course since you have the environment, please check/test that
things actually work.
I've done quite a bit of reformatting the order and splitting things
up so that XML changes are in one patch and qemu changes are in a
subsequent patch. Not too little change, but not too excessive.
I think we do need to think about the default TLS environment and
whether we really care to fail in the event that cfg->vxhsTLS = 0
and src->haveTLS = yes.
Ashish Mittal (10):
storage: Introduce VIR_STORAGE_NET_PROTOCOL_VXHS
docs: Add schema and docs for Veritas HyperScale (VxHS)
util: storage: Add JSON backing volume parse for VxHS
qemu: Add qemu command line generation for a VxHS block device
conf: Introduce TLS options for VxHS block device clients
util: Add haveTLS to virStorageSource
util: Add virstoragetest to parse/format a tls='yes'
qemu: Add TLS support for Veritas HyperScale (VxHS)
tests: Add test for failure when vxhs_tls=0
tests: Add a test case for multiple VxHS disk configuration
John Ferlan (3):
qemu: Add QEMU 2.10 x86_64 the generated capabilities
qemu: Detect support for vxhs
qemu: Introduce qemuDomainPrepareDiskSource
docs/formatdomain.html.in | 46 +-
docs/schemas/domaincommon.rng | 18 +
src/conf/domain_conf.c | 19 +
src/libxl/libxl_conf.c | 1 +
src/qemu/libvirtd_qemu.aug | 4 +
src/qemu/qemu.conf | 33 +
src/qemu/qemu_block.c | 70 +-
src/qemu/qemu_block.h | 4 +-
src/qemu/qemu_capabilities.c | 4 +
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_command.c | 41 +-
src/qemu/qemu_conf.c | 16 +
src/qemu/qemu_conf.h | 3 +
src/qemu/qemu_domain.c | 58 +
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 3 +
src/qemu/qemu_parse_command.c | 15 +
src/qemu/qemu_process.c | 4 +
src/qemu/test_libvirtd_qemu.aug.in | 2 +
src/util/virstoragefile.c | 54 +-
src/util/virstoragefile.h | 4 +
src/xenconfig/xen_xl.c | 1 +
.../caps_2.10.0.x86_64.replies | 17994 +++++++++++++++++++
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 792 +
tests/qemucapabilitiestest.c | 1 +
...ml2argv-disk-drive-network-tlsx509-err-vxhs.xml | 34 +
...-disk-drive-network-tlsx509-multidisk-vxhs.args | 43 +
...v-disk-drive-network-tlsx509-multidisk-vxhs.xml | 50 +
...muxml2argv-disk-drive-network-tlsx509-vxhs.args | 30 +
...emuxml2argv-disk-drive-network-tlsx509-vxhs.xml | 32 +
.../qemuxml2argv-disk-drive-network-vxhs.args | 27 +
.../qemuxml2argv-disk-drive-network-vxhs.xml | 32 +
tests/qemuxml2argvtest.c | 10 +
...uxml2xmlout-disk-drive-network-tlsx509-vxhs.xml | 34 +
.../qemuxml2xmlout-disk-drive-network-vxhs.xml | 34 +
tests/qemuxml2xmltest.c | 2 +
tests/virstoragetest.c | 23 +
37 files changed, 19534 insertions(+), 12 deletions(-)
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-err-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-tlsx509-vxhs.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-vxhs.xml
--
2.9.5
1
14
As suggested yesterday (sorry for short notice) I have just tagged the
rc1 in git and pushed signed tarball and rpms to the usual place:
ftp://libvirt.org/libvirt/
Things looks fine for me, jenkins on https://ci.centos.org/view/libvirt/
seems mostly happy (though there is that master rpm weirdness) so it
looks good from my side but my own testing is very limited so please
give it a try !
If everything goes well I will push RC2 on Thursday with hopefully
a final release over the week end.
please give it some testing,
thanks,
Daniel
--
Daniel Veillard | Red Hat Developers Tools http://developer.redhat.com/
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
2
2
'make dist' fails with error now:
make[2]: Entering directory `/root/dev/libvirt/src'
make[2]: *** No rule to make target `linux', needed by `distdir'. Stop
It turns out that in am__libvirt_util_la_SOURCES_DIST variable KEYTABLES
is not expanded correctly. Like 'linux' stays 'linux' instead of util/virkeycodetable_linux.h.
We do not need generated headers in distribution anyway and won't get
the error too.
---
src/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 0ed4331..94ca528 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -273,7 +273,6 @@ KEYMANS = $(KEYPODS:%.pod=%.7)
man7_MANS = $(KEYMANS)
-UTIL_SOURCES += $(KEYTABLES)
BUILT_SOURCES += $(KEYTABLES)
MAINTAINERCLEANFILES += $(KEYTABLES)
CLEANFILES += $(KEYMANS) $(KEYPODS)
@@ -1224,6 +1223,7 @@ libvirt_la_LIBADD = $(libvirt_la_BUILT_LIBADD)
libvirt_la_BUILT_LIBADD = libvirt_util.la
libvirt_util_la_SOURCES = \
$(UTIL_SOURCES)
+nodist_libvirt_util_la_SOURCES = $(KEYTABLES)
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
$(AM_CFLAGS) $(AUDIT_CFLAGS) $(DEVMAPPER_CFLAGS) \
$(DBUS_CFLAGS) $(LDEXP_LIBM) $(NUMACTL_CFLAGS) \
--
1.8.3.1
2
2
[libvirt] [PATCH 0/3] Fix docs/news.xml template structure and add new features
by Kothapally Madhu Pavan 31 Aug '17
by Kothapally Madhu Pavan 31 Aug '17
31 Aug '17
This patchset will fix docs/news.xml template structure which is broken by
commit b7e779c1a51793 and add support for managedsave-define, managedsave-edit
and managedsave-dumpxml commands.
Kothapally Madhu Pavan (3):
doc: Fix docs/news.xml template structure
doc: Document managedsave-define and managedsave-edit support
doc: Document managedsave-dumpxml support
docs/news.xml | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
--
1.8.3.1
3
6