[libvirt] [PATCH v2 00/31] qemu: Add support for unavailable-features

QEMU 2.8.0 adds support for unavailable-features in query-cpu-definitions reply. The unavailable-features array lists CPU features which prevent a corresponding CPU model from being usable on current host. It can only be used when all the unavailable features are disabled. Empty array means the CPU model can be used without modifications. Changes in v2: - many; the way we probe QEMU was rewritten so that we probe both KVM and TCG capabilities and store them separately whenever we expect them to be different Big thanks to Andrea Bolognani for providing the updated replies data from aarch64 and ppc64le machines. Jiri Denemark (31): qemu: Make QMP probing process reusable qemu: Use -machine when probing capabilities via QMP qemu: Probe KVM state earlier qemucapsprobe: Ignore all greetings except the first one qemu: Enable KVM when probing capabilities qemu: Discard caps cache when KVM availability changes qemu: Use saner defaults for domain capabilities qemu: Don't return unusable virttype in domain capabilities qemu: Refactor virQEMUCapsCacheLookup qemu: Refresh caps in virQEMUCapsCacheLookupByArch qemu: Introduce virQEMUCapsLoadCPUModels qemu: Introduce virQEMUCapsFormatCPUModels qemu: Probe CPU models for KVM and TCG tests: Update capabilities for QEMU 1.2.2 tests: Update capabilities for QEMU 1.3.1 tests: Update capabilities for QEMU 1.4.2 tests: Update capabilities for QEMU 1.5.3 tests: Update capabilities for QEMU 1.6.0 tests: Update capabilities for QEMU 1.7.0 tests: Update capabilities for QEMU 2.1.1 tests: Update capabilities for QEMU 2.4.0 tests: Update capabilities for QEMU 2.5.0 tests: Update capabilities for QEMU 2.6.0 tests: Update capabilities for QEMU 2.6.0 (aarch64, GICv2) qemu: Avoid reporting "host" as a supported CPU model tests: Update capabilities for QEMU 2.6.0 (aarch64, GICv3) tests: Update capabilities for QEMU 2.6.0 (ppc64le) tests: Update capabilities for QEMU 2.7.0 tests: Add QEMU 2.8.0 capabilities data tests: Add QEMU 2.8.0 domain capabilities tests qemu: Add support for unavailable-features src/conf/domain_capabilities.c | 6 +- src/conf/domain_capabilities.h | 3 +- src/qemu/qemu_capabilities.c | 684 +- src/qemu/qemu_capabilities.h | 15 +- src/qemu/qemu_capspriv.h | 8 + src/qemu/qemu_driver.c | 27 +- src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 18 + src/qemu/qemu_process.c | 3 +- tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml | 1 + .../domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 116 + tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 116 + tests/domaincapstest.c | 8 + .../qemucapabilitiesdata/caps_1.2.2.x86_64.replies | 216 +- tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml | 68 +- .../qemucapabilitiesdata/caps_1.3.1.x86_64.replies | 172 +- tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml | 74 +- .../qemucapabilitiesdata/caps_1.4.2.x86_64.replies | 170 +- tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml | 74 +- .../qemucapabilitiesdata/caps_1.5.3.x86_64.replies | 170 +- tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 74 +- .../qemucapabilitiesdata/caps_1.6.0.x86_64.replies | 170 +- tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 74 +- .../qemucapabilitiesdata/caps_1.7.0.x86_64.replies | 170 +- tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 74 +- .../qemucapabilitiesdata/caps_2.1.1.x86_64.replies | 173 +- tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 77 +- .../qemucapabilitiesdata/caps_2.4.0.x86_64.replies | 182 +- tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 86 +- .../qemucapabilitiesdata/caps_2.5.0.x86_64.replies | 182 +- tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 86 +- .../caps_2.6.0-gicv2.aarch64.replies | 194 +- .../caps_2.6.0-gicv2.aarch64.xml | 93 +- .../caps_2.6.0-gicv3.aarch64.replies | 207 +- .../caps_2.6.0-gicv3.aarch64.xml | 95 +- .../caps_2.6.0.ppc64le.replies | 1406 +- tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 1296 +- .../qemucapabilitiesdata/caps_2.6.0.x86_64.replies | 182 +- tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 86 +- .../qemucapabilitiesdata/caps_2.7.0.x86_64.replies | 185 +- tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 89 +- .../qemucapabilitiesdata/caps_2.8.0.x86_64.replies | 14246 +++++++++++++++++++ tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 293 + tests/qemucapabilitiestest.c | 6 + tests/qemucapsprobemock.c | 9 +- tests/qemumonitorjsontest.c | 27 +- tests/qemuxml2argvtest.c | 39 +- 47 files changed, 20114 insertions(+), 1637 deletions(-) create mode 100644 tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml create mode 100644 tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml -- 2.10.2

The code that runs a new QEMU process to be used for probing capabilities is separated into four reusable functions so that any code that wants to probe a QEMU process may just follow a few simple steps: cmd = virQEMUCapsInitQMPCommandNew(...); mon = virQEMUCapsInitQMPCommandRun(cmd, ...); /* talk to the running QEMU process using its QMP monitor */ if (reprobeIsRequired) { virQEMUCapsInitQMPCommandAbort(cmd, ...); mon = virQEMUCapsInitQMPCommandRun(cmd, ...); /* talk to the running QEMU process again */ } virQEMUCapsInitQMPCommandFree(cmd); Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 259 +++++++++++++++++++++++++++++-------------- 1 file changed, 174 insertions(+), 85 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index cfd090c..5ae57be 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4022,32 +4022,101 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, return ret; } -static int -virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, - const char *libDir, - uid_t runUid, - gid_t runGid, - char **qmperr) -{ - int ret = -1; - virCommandPtr cmd = NULL; - qemuMonitorPtr mon = NULL; - int status = 0; + +typedef struct _virQEMUCapsInitQMPCommand virQEMUCapsInitQMPCommand; +typedef virQEMUCapsInitQMPCommand *virQEMUCapsInitQMPCommandPtr; +struct _virQEMUCapsInitQMPCommand { + char *binary; + uid_t runUid; + gid_t runGid; + char **qmperr; + char *monarg; + char *monpath; + char *pidfile; + virCommandPtr cmd; + qemuMonitorPtr mon; virDomainChrSourceDef config; - char *monarg = NULL; - char *monpath = NULL; - char *pidfile = NULL; - pid_t pid = 0; - virDomainObjPtr vm = NULL; - virDomainXMLOptionPtr xmlopt = NULL; + pid_t pid; + virDomainObjPtr vm; +}; + + +static void +virQEMUCapsInitQMPCommandAbort(virQEMUCapsInitQMPCommandPtr cmd) +{ + if (cmd->mon) + virObjectUnlock(cmd->mon); + qemuMonitorClose(cmd->mon); + cmd->mon = NULL; + + virCommandAbort(cmd->cmd); + virCommandFree(cmd->cmd); + cmd->cmd = NULL; + + if (cmd->monpath) + ignore_value(unlink(cmd->monpath)); + + virDomainObjEndAPI(&cmd->vm); + + if (cmd->pid != 0) { + char ebuf[1024]; + + VIR_DEBUG("Killing QMP caps process %lld", (long long) cmd->pid); + if (virProcessKill(cmd->pid, SIGKILL) < 0 && errno != ESRCH) + VIR_ERROR(_("Failed to kill process %lld: %s"), + (long long) cmd->pid, + virStrerror(errno, ebuf, sizeof(ebuf))); + + VIR_FREE(*cmd->qmperr); + } + if (cmd->pidfile) + unlink(cmd->pidfile); + cmd->pid = 0; +} + + +static void +virQEMUCapsInitQMPCommandFree(virQEMUCapsInitQMPCommandPtr cmd) +{ + if (!cmd) + return; + + virQEMUCapsInitQMPCommandAbort(cmd); + VIR_FREE(cmd->binary); + VIR_FREE(cmd->monpath); + VIR_FREE(cmd->monarg); + VIR_FREE(cmd->pidfile); + VIR_FREE(cmd); +} + + +static virQEMUCapsInitQMPCommandPtr +virQEMUCapsInitQMPCommandNew(char *binary, + const char *libDir, + uid_t runUid, + gid_t runGid, + char **qmperr) +{ + virQEMUCapsInitQMPCommandPtr cmd = NULL; + + if (VIR_ALLOC(cmd) < 0) + goto error; + + if (VIR_STRDUP(cmd->binary, binary) < 0) + goto error; + + cmd->runUid = runUid; + cmd->runGid = runGid; + cmd->qmperr = qmperr; /* the ".sock" sufix is important to avoid a possible clash with a qemu * domain called "capabilities" */ - if (virAsprintf(&monpath, "%s/%s", libDir, "capabilities.monitor.sock") < 0) - goto cleanup; - if (virAsprintf(&monarg, "unix:%s,server,nowait", monpath) < 0) - goto cleanup; + if (virAsprintf(&cmd->monpath, "%s/%s", libDir, + "capabilities.monitor.sock") < 0) + goto error; + if (virAsprintf(&cmd->monarg, "unix:%s,server,nowait", cmd->monpath) < 0) + goto error; /* ".pidfile" suffix is used rather than ".pid" to avoid a possible clash * with a qemu domain called "capabilities" @@ -4055,17 +4124,31 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, * -daemonize we need QEMU to be allowed to create them, rather * than libvirtd. So we're using libDir which QEMU can write to */ - if (virAsprintf(&pidfile, "%s/%s", libDir, "capabilities.pidfile") < 0) - goto cleanup; + if (virAsprintf(&cmd->pidfile, "%s/%s", libDir, "capabilities.pidfile") < 0) + goto error; - memset(&config, 0, sizeof(config)); - config.type = VIR_DOMAIN_CHR_TYPE_UNIX; - config.data.nix.path = monpath; - config.data.nix.listen = false; + virPidFileForceCleanupPath(cmd->pidfile); - virPidFileForceCleanupPath(pidfile); + cmd->config.type = VIR_DOMAIN_CHR_TYPE_UNIX; + cmd->config.data.nix.path = cmd->monpath; + cmd->config.data.nix.listen = false; - VIR_DEBUG("Try to get caps via QMP qemuCaps=%p", qemuCaps); + return cmd; + + error: + virQEMUCapsInitQMPCommandFree(cmd); + return NULL; +} + + +static qemuMonitorPtr +virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd, + bool *qemuFailed) +{ + virDomainXMLOptionPtr xmlopt = NULL; + int status = 0; + + VIR_DEBUG("Try to probe capabilities of '%s' via QMP", cmd->binary); /* * We explicitly need to use -daemonize here, rather than @@ -4074,86 +4157,92 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, * daemonize guarantees control won't return to libvirt * until the socket is present. */ - cmd = virCommandNewArgList(qemuCaps->binary, - "-S", - "-no-user-config", - "-nodefaults", - "-nographic", - "-M", "none", - "-qmp", monarg, - "-pidfile", pidfile, - "-daemonize", - NULL); - virCommandAddEnvPassCommon(cmd); - virCommandClearCaps(cmd); - virCommandSetGID(cmd, runGid); - virCommandSetUID(cmd, runUid); + cmd->cmd = virCommandNewArgList(cmd->binary, + "-S", + "-no-user-config", + "-nodefaults", + "-nographic", + "-M", "none", + "-qmp", cmd->monarg, + "-pidfile", cmd->pidfile, + "-daemonize", + NULL); + virCommandAddEnvPassCommon(cmd->cmd); + virCommandClearCaps(cmd->cmd); + virCommandSetGID(cmd->cmd, cmd->runGid); + virCommandSetUID(cmd->cmd, cmd->runUid); - virCommandSetErrorBuffer(cmd, qmperr); + virCommandSetErrorBuffer(cmd->cmd, cmd->qmperr); /* Log, but otherwise ignore, non-zero status. */ - if (virCommandRun(cmd, &status) < 0) + if (virCommandRun(cmd->cmd, &status) < 0) goto cleanup; if (status != 0) { - ret = 0; VIR_DEBUG("QEMU %s exited with status %d: %s", - qemuCaps->binary, status, *qmperr); - goto cleanup; + cmd->binary, status, *cmd->qmperr); + goto ignore; } - if (virPidFileReadPath(pidfile, &pid) < 0) { - VIR_DEBUG("Failed to read pidfile %s", pidfile); - ret = 0; - goto cleanup; + if (virPidFileReadPath(cmd->pidfile, &cmd->pid) < 0) { + VIR_DEBUG("Failed to read pidfile %s", cmd->pidfile); + goto ignore; } if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) || - !(vm = virDomainObjNew(xmlopt))) + !(cmd->vm = virDomainObjNew(xmlopt))) goto cleanup; - vm->pid = pid; + cmd->vm->pid = cmd->pid; - if (!(mon = qemuMonitorOpen(vm, &config, true, &callbacks, NULL))) { - ret = 0; + if (!(cmd->mon = qemuMonitorOpen(cmd->vm, &cmd->config, true, + &callbacks, NULL))) + goto ignore; + + virObjectLock(cmd->mon); + + cleanup: + if (!cmd->mon) + virQEMUCapsInitQMPCommandAbort(cmd); + virObjectUnref(xmlopt); + + return cmd->mon; + + ignore: + *qemuFailed = true; + goto cleanup; +} + + +static int +virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, + const char *libDir, + uid_t runUid, + gid_t runGid, + char **qmperr) +{ + virQEMUCapsInitQMPCommandPtr cmd = NULL; + qemuMonitorPtr mon = NULL; + bool qemuFailed = false; + int ret = -1; + + if (!(cmd = virQEMUCapsInitQMPCommandNew(qemuCaps->binary, libDir, + runUid, runGid, qmperr))) + goto cleanup; + + if (!(mon = virQEMUCapsInitQMPCommandRun(cmd, &qemuFailed))) { + if (qemuFailed) + ret = 0; goto cleanup; } - virObjectLock(mon); - if (virQEMUCapsInitQMPMonitor(qemuCaps, mon) < 0) goto cleanup; ret = 0; cleanup: - if (mon) - virObjectUnlock(mon); - qemuMonitorClose(mon); - virCommandAbort(cmd); - virCommandFree(cmd); - VIR_FREE(monarg); - if (monpath) - ignore_value(unlink(monpath)); - VIR_FREE(monpath); - virDomainObjEndAPI(&vm); - virObjectUnref(xmlopt); - - if (pid != 0) { - char ebuf[1024]; - - VIR_DEBUG("Killing QMP caps process %lld", (long long) pid); - if (virProcessKill(pid, SIGKILL) < 0 && errno != ESRCH) - VIR_ERROR(_("Failed to kill process %lld: %s"), - (long long) pid, - virStrerror(errno, ebuf, sizeof(ebuf))); - - VIR_FREE(*qmperr); - } - if (pidfile) { - unlink(pidfile); - VIR_FREE(pidfile); - } + virQEMUCapsInitQMPCommandFree(cmd); return ret; } -- 2.10.2

On Mon, Nov 21, 2016 at 12:20:57AM +0100, Jiri Denemark wrote:
The code that runs a new QEMU process to be used for probing capabilities is separated into four reusable functions so that any code that wants to probe a QEMU process may just follow a few simple steps:
cmd = virQEMUCapsInitQMPCommandNew(...);
mon = virQEMUCapsInitQMPCommandRun(cmd, ...);
/* talk to the running QEMU process using its QMP monitor */
if (reprobeIsRequired) { virQEMUCapsInitQMPCommandAbort(cmd, ...); mon = virQEMUCapsInitQMPCommandRun(cmd, ...);
/* talk to the running QEMU process again */ }
virQEMUCapsInitQMPCommandFree(cmd);
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 259 +++++++++++++++++++++++++++++-------------- 1 file changed, 174 insertions(+), 85 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index cfd090c..5ae57be 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4022,32 +4022,101 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, return ret; }
-static int -virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, - const char *libDir, - uid_t runUid, - gid_t runGid, - char **qmperr) -{ - int ret = -1; - virCommandPtr cmd = NULL; - qemuMonitorPtr mon = NULL; - int status = 0; + +typedef struct _virQEMUCapsInitQMPCommand virQEMUCapsInitQMPCommand; +typedef virQEMUCapsInitQMPCommand *virQEMUCapsInitQMPCommandPtr; +struct _virQEMUCapsInitQMPCommand { + char *binary; + uid_t runUid; + gid_t runGid; + char **qmperr; + char *monarg; + char *monpath; + char *pidfile; + virCommandPtr cmd; + qemuMonitorPtr mon; virDomainChrSourceDef config; - char *monarg = NULL; - char *monpath = NULL; - char *pidfile = NULL; - pid_t pid = 0; - virDomainObjPtr vm = NULL; - virDomainXMLOptionPtr xmlopt = NULL; + pid_t pid; + virDomainObjPtr vm; +}; + + +static void +virQEMUCapsInitQMPCommandAbort(virQEMUCapsInitQMPCommandPtr cmd) +{ + if (cmd->mon) + virObjectUnlock(cmd->mon); + qemuMonitorClose(cmd->mon); + cmd->mon = NULL; + + virCommandAbort(cmd->cmd); + virCommandFree(cmd->cmd); + cmd->cmd = NULL; + + if (cmd->monpath) + ignore_value(unlink(cmd->monpath)); + + virDomainObjEndAPI(&cmd->vm); + + if (cmd->pid != 0) { + char ebuf[1024]; + + VIR_DEBUG("Killing QMP caps process %lld", (long long) cmd->pid); + if (virProcessKill(cmd->pid, SIGKILL) < 0 && errno != ESRCH) + VIR_ERROR(_("Failed to kill process %lld: %s"), + (long long) cmd->pid, + virStrerror(errno, ebuf, sizeof(ebuf))); + + VIR_FREE(*cmd->qmperr); + } + if (cmd->pidfile) + unlink(cmd->pidfile); + cmd->pid = 0; +} + + +static void +virQEMUCapsInitQMPCommandFree(virQEMUCapsInitQMPCommandPtr cmd) +{ + if (!cmd) + return; + + virQEMUCapsInitQMPCommandAbort(cmd); + VIR_FREE(cmd->binary); + VIR_FREE(cmd->monpath); + VIR_FREE(cmd->monarg); + VIR_FREE(cmd->pidfile); + VIR_FREE(cmd); +} + + +static virQEMUCapsInitQMPCommandPtr +virQEMUCapsInitQMPCommandNew(char *binary, + const char *libDir, + uid_t runUid, + gid_t runGid, + char **qmperr) +{ + virQEMUCapsInitQMPCommandPtr cmd = NULL; + + if (VIR_ALLOC(cmd) < 0) + goto error; + + if (VIR_STRDUP(cmd->binary, binary) < 0) + goto error; + + cmd->runUid = runUid; + cmd->runGid = runGid; + cmd->qmperr = qmperr;
/* the ".sock" sufix is important to avoid a possible clash with a qemu * domain called "capabilities" */ - if (virAsprintf(&monpath, "%s/%s", libDir, "capabilities.monitor.sock") < 0) - goto cleanup; - if (virAsprintf(&monarg, "unix:%s,server,nowait", monpath) < 0) - goto cleanup; + if (virAsprintf(&cmd->monpath, "%s/%s", libDir, + "capabilities.monitor.sock") < 0) + goto error; + if (virAsprintf(&cmd->monarg, "unix:%s,server,nowait", cmd->monpath) < 0) + goto error;
/* ".pidfile" suffix is used rather than ".pid" to avoid a possible clash * with a qemu domain called "capabilities" @@ -4055,17 +4124,31 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, * -daemonize we need QEMU to be allowed to create them, rather * than libvirtd. So we're using libDir which QEMU can write to */ - if (virAsprintf(&pidfile, "%s/%s", libDir, "capabilities.pidfile") < 0) - goto cleanup; + if (virAsprintf(&cmd->pidfile, "%s/%s", libDir, "capabilities.pidfile") < 0) + goto error;
- memset(&config, 0, sizeof(config)); - config.type = VIR_DOMAIN_CHR_TYPE_UNIX; - config.data.nix.path = monpath; - config.data.nix.listen = false; + virPidFileForceCleanupPath(cmd->pidfile);
- virPidFileForceCleanupPath(pidfile); + cmd->config.type = VIR_DOMAIN_CHR_TYPE_UNIX; + cmd->config.data.nix.path = cmd->monpath; + cmd->config.data.nix.listen = false;
- VIR_DEBUG("Try to get caps via QMP qemuCaps=%p", qemuCaps); + return cmd; + + error: + virQEMUCapsInitQMPCommandFree(cmd); + return NULL; +} + + +static qemuMonitorPtr +virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd, + bool *qemuFailed)
That *bool* is not necessary, function virQEMUCapsInitQMPCommandRun can return simple *int* because qemuMonitorPtr is stored in *cmd*. So this function can return -1 in case of fatal error. In case return is 0, following code can easily depend on whether cmd->mon is set or not. Otherwise this patch looks good, but I think that it would be better to send a new version with the suggested change. Pavel
+{ + virDomainXMLOptionPtr xmlopt = NULL; + int status = 0; + + VIR_DEBUG("Try to probe capabilities of '%s' via QMP", cmd->binary);
/* * We explicitly need to use -daemonize here, rather than @@ -4074,86 +4157,92 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, * daemonize guarantees control won't return to libvirt * until the socket is present. */ - cmd = virCommandNewArgList(qemuCaps->binary, - "-S", - "-no-user-config", - "-nodefaults", - "-nographic", - "-M", "none", - "-qmp", monarg, - "-pidfile", pidfile, - "-daemonize", - NULL); - virCommandAddEnvPassCommon(cmd); - virCommandClearCaps(cmd); - virCommandSetGID(cmd, runGid); - virCommandSetUID(cmd, runUid); + cmd->cmd = virCommandNewArgList(cmd->binary, + "-S", + "-no-user-config", + "-nodefaults", + "-nographic", + "-M", "none", + "-qmp", cmd->monarg, + "-pidfile", cmd->pidfile, + "-daemonize", + NULL); + virCommandAddEnvPassCommon(cmd->cmd); + virCommandClearCaps(cmd->cmd); + virCommandSetGID(cmd->cmd, cmd->runGid); + virCommandSetUID(cmd->cmd, cmd->runUid);
- virCommandSetErrorBuffer(cmd, qmperr); + virCommandSetErrorBuffer(cmd->cmd, cmd->qmperr);
/* Log, but otherwise ignore, non-zero status. */ - if (virCommandRun(cmd, &status) < 0) + if (virCommandRun(cmd->cmd, &status) < 0) goto cleanup;
if (status != 0) { - ret = 0; VIR_DEBUG("QEMU %s exited with status %d: %s", - qemuCaps->binary, status, *qmperr); - goto cleanup; + cmd->binary, status, *cmd->qmperr); + goto ignore; }
- if (virPidFileReadPath(pidfile, &pid) < 0) { - VIR_DEBUG("Failed to read pidfile %s", pidfile); - ret = 0; - goto cleanup; + if (virPidFileReadPath(cmd->pidfile, &cmd->pid) < 0) { + VIR_DEBUG("Failed to read pidfile %s", cmd->pidfile); + goto ignore; }
if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) || - !(vm = virDomainObjNew(xmlopt))) + !(cmd->vm = virDomainObjNew(xmlopt))) goto cleanup;
- vm->pid = pid; + cmd->vm->pid = cmd->pid;
- if (!(mon = qemuMonitorOpen(vm, &config, true, &callbacks, NULL))) { - ret = 0; + if (!(cmd->mon = qemuMonitorOpen(cmd->vm, &cmd->config, true, + &callbacks, NULL))) + goto ignore; + + virObjectLock(cmd->mon); + + cleanup: + if (!cmd->mon) + virQEMUCapsInitQMPCommandAbort(cmd); + virObjectUnref(xmlopt); + + return cmd->mon; + + ignore: + *qemuFailed = true; + goto cleanup; +} + + +static int +virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, + const char *libDir, + uid_t runUid, + gid_t runGid, + char **qmperr) +{ + virQEMUCapsInitQMPCommandPtr cmd = NULL; + qemuMonitorPtr mon = NULL; + bool qemuFailed = false; + int ret = -1; + + if (!(cmd = virQEMUCapsInitQMPCommandNew(qemuCaps->binary, libDir, + runUid, runGid, qmperr))) + goto cleanup; + + if (!(mon = virQEMUCapsInitQMPCommandRun(cmd, &qemuFailed))) { + if (qemuFailed) + ret = 0; goto cleanup; }
- virObjectLock(mon); - if (virQEMUCapsInitQMPMonitor(qemuCaps, mon) < 0) goto cleanup;
ret = 0;
cleanup: - if (mon) - virObjectUnlock(mon); - qemuMonitorClose(mon); - virCommandAbort(cmd); - virCommandFree(cmd); - VIR_FREE(monarg); - if (monpath) - ignore_value(unlink(monpath)); - VIR_FREE(monpath); - virDomainObjEndAPI(&vm); - virObjectUnref(xmlopt); - - if (pid != 0) { - char ebuf[1024]; - - VIR_DEBUG("Killing QMP caps process %lld", (long long) pid); - if (virProcessKill(pid, SIGKILL) < 0 && errno != ESRCH) - VIR_ERROR(_("Failed to kill process %lld: %s"), - (long long) pid, - virStrerror(errno, ebuf, sizeof(ebuf))); - - VIR_FREE(*qmperr); - } - if (pidfile) { - unlink(pidfile); - VIR_FREE(pidfile); - } + virQEMUCapsInitQMPCommandFree(cmd); return ret; }
-- 2.10.2
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

On Thu, Nov 24, 2016 at 14:54:48 +0100, Pavel Hrdina wrote:
On Mon, Nov 21, 2016 at 12:20:57AM +0100, Jiri Denemark wrote:
The code that runs a new QEMU process to be used for probing capabilities is separated into four reusable functions so that any code that wants to probe a QEMU process may just follow a few simple steps:
cmd = virQEMUCapsInitQMPCommandNew(...);
mon = virQEMUCapsInitQMPCommandRun(cmd, ...);
/* talk to the running QEMU process using its QMP monitor */
if (reprobeIsRequired) { virQEMUCapsInitQMPCommandAbort(cmd, ...); mon = virQEMUCapsInitQMPCommandRun(cmd, ...);
/* talk to the running QEMU process again */ }
virQEMUCapsInitQMPCommandFree(cmd);
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 259 +++++++++++++++++++++++++++++-------------- 1 file changed, 174 insertions(+), 85 deletions(-)
+static qemuMonitorPtr +virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd, + bool *qemuFailed)
That *bool* is not necessary, function virQEMUCapsInitQMPCommandRun can return simple *int* because qemuMonitorPtr is stored in *cmd*. So this function can return -1 in case of fatal error. In case return is 0, following code can easily depend on whether cmd->mon is set or not.
Indeed, although I think the function should rather return -1, 0, 1 instead of forcing the code to do magic based on cmd->mon.
Otherwise this patch looks good, but I think that it would be better to send a new version with the suggested change.
Sure, since the patch is quite large and not exactly easy to read, the following is the diff I will squash into v2. Jirka diff --git i/src/qemu/qemu_capabilities.c w/src/qemu/qemu_capabilities.c index 1257bb0ff..d6182ccb7 100644 --- i/src/qemu/qemu_capabilities.c +++ w/src/qemu/qemu_capabilities.c @@ -4143,12 +4143,16 @@ virQEMUCapsInitQMPCommandNew(char *binary, } -static qemuMonitorPtr -virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd, - bool *qemuFailed) +/* Returns -1 on fatal error, + * 0 on success, + * 1 when probing QEMU failed + */ +static int +virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd) { virDomainXMLOptionPtr xmlopt = NULL; int status = 0; + int ret = -1; VIR_DEBUG("Try to probe capabilities of '%s' via QMP", cmd->binary); @@ -4203,15 +4207,17 @@ virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd, virObjectLock(cmd->mon); + ret = 0; + cleanup: if (!cmd->mon) virQEMUCapsInitQMPCommandAbort(cmd); virObjectUnref(xmlopt); - return cmd->mon; + return ret; ignore: - *qemuFailed = true; + ret = 1; goto cleanup; } @@ -4224,21 +4230,20 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, char **qmperr) { virQEMUCapsInitQMPCommandPtr cmd = NULL; - qemuMonitorPtr mon = NULL; - bool qemuFailed = false; int ret = -1; + int rc; if (!(cmd = virQEMUCapsInitQMPCommandNew(qemuCaps->binary, libDir, runUid, runGid, qmperr))) goto cleanup; - if (!(mon = virQEMUCapsInitQMPCommandRun(cmd, &qemuFailed))) { - if (qemuFailed) + if ((rc = virQEMUCapsInitQMPCommandRun(cmd)) != 0) { + if (rc == 1) ret = 0; goto cleanup; } - if (virQEMUCapsInitQMPMonitor(qemuCaps, mon) < 0) + if (virQEMUCapsInitQMPMonitor(qemuCaps, cmd->mon) < 0) goto cleanup; ret = 0;

The code that runs a new QEMU process to be used for probing capabilities is separated into four reusable functions so that any code that wants to probe a QEMU process may just follow a few simple steps: cmd = virQEMUCapsInitQMPCommandNew(...); mon = virQEMUCapsInitQMPCommandRun(cmd, ...); /* talk to the running QEMU process using its QMP monitor */ if (reprobeIsRequired) { virQEMUCapsInitQMPCommandAbort(cmd, ...); mon = virQEMUCapsInitQMPCommandRun(cmd, ...); /* talk to the running QEMU process again */ } virQEMUCapsInitQMPCommandFree(cmd); Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 266 +++++++++++++++++++++++++++++-------------- 1 file changed, 180 insertions(+), 86 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f9e39a34a..d6182ccb7 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4024,32 +4024,101 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, return ret; } -static int -virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, - const char *libDir, - uid_t runUid, - gid_t runGid, - char **qmperr) -{ - int ret = -1; - virCommandPtr cmd = NULL; - qemuMonitorPtr mon = NULL; - int status = 0; + +typedef struct _virQEMUCapsInitQMPCommand virQEMUCapsInitQMPCommand; +typedef virQEMUCapsInitQMPCommand *virQEMUCapsInitQMPCommandPtr; +struct _virQEMUCapsInitQMPCommand { + char *binary; + uid_t runUid; + gid_t runGid; + char **qmperr; + char *monarg; + char *monpath; + char *pidfile; + virCommandPtr cmd; + qemuMonitorPtr mon; virDomainChrSourceDef config; - char *monarg = NULL; - char *monpath = NULL; - char *pidfile = NULL; - pid_t pid = 0; - virDomainObjPtr vm = NULL; - virDomainXMLOptionPtr xmlopt = NULL; + pid_t pid; + virDomainObjPtr vm; +}; + + +static void +virQEMUCapsInitQMPCommandAbort(virQEMUCapsInitQMPCommandPtr cmd) +{ + if (cmd->mon) + virObjectUnlock(cmd->mon); + qemuMonitorClose(cmd->mon); + cmd->mon = NULL; + + virCommandAbort(cmd->cmd); + virCommandFree(cmd->cmd); + cmd->cmd = NULL; + + if (cmd->monpath) + ignore_value(unlink(cmd->monpath)); + + virDomainObjEndAPI(&cmd->vm); + + if (cmd->pid != 0) { + char ebuf[1024]; + + VIR_DEBUG("Killing QMP caps process %lld", (long long) cmd->pid); + if (virProcessKill(cmd->pid, SIGKILL) < 0 && errno != ESRCH) + VIR_ERROR(_("Failed to kill process %lld: %s"), + (long long) cmd->pid, + virStrerror(errno, ebuf, sizeof(ebuf))); + + VIR_FREE(*cmd->qmperr); + } + if (cmd->pidfile) + unlink(cmd->pidfile); + cmd->pid = 0; +} + + +static void +virQEMUCapsInitQMPCommandFree(virQEMUCapsInitQMPCommandPtr cmd) +{ + if (!cmd) + return; + + virQEMUCapsInitQMPCommandAbort(cmd); + VIR_FREE(cmd->binary); + VIR_FREE(cmd->monpath); + VIR_FREE(cmd->monarg); + VIR_FREE(cmd->pidfile); + VIR_FREE(cmd); +} + + +static virQEMUCapsInitQMPCommandPtr +virQEMUCapsInitQMPCommandNew(char *binary, + const char *libDir, + uid_t runUid, + gid_t runGid, + char **qmperr) +{ + virQEMUCapsInitQMPCommandPtr cmd = NULL; + + if (VIR_ALLOC(cmd) < 0) + goto error; + + if (VIR_STRDUP(cmd->binary, binary) < 0) + goto error; + + cmd->runUid = runUid; + cmd->runGid = runGid; + cmd->qmperr = qmperr; /* the ".sock" sufix is important to avoid a possible clash with a qemu * domain called "capabilities" */ - if (virAsprintf(&monpath, "%s/%s", libDir, "capabilities.monitor.sock") < 0) - goto cleanup; - if (virAsprintf(&monarg, "unix:%s,server,nowait", monpath) < 0) - goto cleanup; + if (virAsprintf(&cmd->monpath, "%s/%s", libDir, + "capabilities.monitor.sock") < 0) + goto error; + if (virAsprintf(&cmd->monarg, "unix:%s,server,nowait", cmd->monpath) < 0) + goto error; /* ".pidfile" suffix is used rather than ".pid" to avoid a possible clash * with a qemu domain called "capabilities" @@ -4057,17 +4126,35 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, * -daemonize we need QEMU to be allowed to create them, rather * than libvirtd. So we're using libDir which QEMU can write to */ - if (virAsprintf(&pidfile, "%s/%s", libDir, "capabilities.pidfile") < 0) - goto cleanup; + if (virAsprintf(&cmd->pidfile, "%s/%s", libDir, "capabilities.pidfile") < 0) + goto error; - memset(&config, 0, sizeof(config)); - config.type = VIR_DOMAIN_CHR_TYPE_UNIX; - config.data.nix.path = monpath; - config.data.nix.listen = false; + virPidFileForceCleanupPath(cmd->pidfile); - virPidFileForceCleanupPath(pidfile); + cmd->config.type = VIR_DOMAIN_CHR_TYPE_UNIX; + cmd->config.data.nix.path = cmd->monpath; + cmd->config.data.nix.listen = false; - VIR_DEBUG("Try to get caps via QMP qemuCaps=%p", qemuCaps); + return cmd; + + error: + virQEMUCapsInitQMPCommandFree(cmd); + return NULL; +} + + +/* Returns -1 on fatal error, + * 0 on success, + * 1 when probing QEMU failed + */ +static int +virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd) +{ + virDomainXMLOptionPtr xmlopt = NULL; + int status = 0; + int ret = -1; + + VIR_DEBUG("Try to probe capabilities of '%s' via QMP", cmd->binary); /* * We explicitly need to use -daemonize here, rather than @@ -4076,86 +4163,93 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, * daemonize guarantees control won't return to libvirt * until the socket is present. */ - cmd = virCommandNewArgList(qemuCaps->binary, - "-S", - "-no-user-config", - "-nodefaults", - "-nographic", - "-M", "none", - "-qmp", monarg, - "-pidfile", pidfile, - "-daemonize", - NULL); - virCommandAddEnvPassCommon(cmd); - virCommandClearCaps(cmd); - virCommandSetGID(cmd, runGid); - virCommandSetUID(cmd, runUid); + cmd->cmd = virCommandNewArgList(cmd->binary, + "-S", + "-no-user-config", + "-nodefaults", + "-nographic", + "-M", "none", + "-qmp", cmd->monarg, + "-pidfile", cmd->pidfile, + "-daemonize", + NULL); + virCommandAddEnvPassCommon(cmd->cmd); + virCommandClearCaps(cmd->cmd); + virCommandSetGID(cmd->cmd, cmd->runGid); + virCommandSetUID(cmd->cmd, cmd->runUid); - virCommandSetErrorBuffer(cmd, qmperr); + virCommandSetErrorBuffer(cmd->cmd, cmd->qmperr); /* Log, but otherwise ignore, non-zero status. */ - if (virCommandRun(cmd, &status) < 0) + if (virCommandRun(cmd->cmd, &status) < 0) goto cleanup; if (status != 0) { - ret = 0; VIR_DEBUG("QEMU %s exited with status %d: %s", - qemuCaps->binary, status, *qmperr); - goto cleanup; + cmd->binary, status, *cmd->qmperr); + goto ignore; } - if (virPidFileReadPath(pidfile, &pid) < 0) { - VIR_DEBUG("Failed to read pidfile %s", pidfile); - ret = 0; - goto cleanup; + if (virPidFileReadPath(cmd->pidfile, &cmd->pid) < 0) { + VIR_DEBUG("Failed to read pidfile %s", cmd->pidfile); + goto ignore; } if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) || - !(vm = virDomainObjNew(xmlopt))) + !(cmd->vm = virDomainObjNew(xmlopt))) goto cleanup; - vm->pid = pid; + cmd->vm->pid = cmd->pid; - if (!(mon = qemuMonitorOpen(vm, &config, true, &callbacks, NULL))) { - ret = 0; + if (!(cmd->mon = qemuMonitorOpen(cmd->vm, &cmd->config, true, + &callbacks, NULL))) + goto ignore; + + virObjectLock(cmd->mon); + + ret = 0; + + cleanup: + if (!cmd->mon) + virQEMUCapsInitQMPCommandAbort(cmd); + virObjectUnref(xmlopt); + + return ret; + + ignore: + ret = 1; + goto cleanup; +} + + +static int +virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, + const char *libDir, + uid_t runUid, + gid_t runGid, + char **qmperr) +{ + virQEMUCapsInitQMPCommandPtr cmd = NULL; + int ret = -1; + int rc; + + if (!(cmd = virQEMUCapsInitQMPCommandNew(qemuCaps->binary, libDir, + runUid, runGid, qmperr))) + goto cleanup; + + if ((rc = virQEMUCapsInitQMPCommandRun(cmd)) != 0) { + if (rc == 1) + ret = 0; goto cleanup; } - virObjectLock(mon); - - if (virQEMUCapsInitQMPMonitor(qemuCaps, mon) < 0) + if (virQEMUCapsInitQMPMonitor(qemuCaps, cmd->mon) < 0) goto cleanup; ret = 0; cleanup: - if (mon) - virObjectUnlock(mon); - qemuMonitorClose(mon); - virCommandAbort(cmd); - virCommandFree(cmd); - VIR_FREE(monarg); - if (monpath) - ignore_value(unlink(monpath)); - VIR_FREE(monpath); - virDomainObjEndAPI(&vm); - virObjectUnref(xmlopt); - - if (pid != 0) { - char ebuf[1024]; - - VIR_DEBUG("Killing QMP caps process %lld", (long long) pid); - if (virProcessKill(pid, SIGKILL) < 0 && errno != ESRCH) - VIR_ERROR(_("Failed to kill process %lld: %s"), - (long long) pid, - virStrerror(errno, ebuf, sizeof(ebuf))); - - VIR_FREE(*qmperr); - } - if (pidfile) { - unlink(pidfile); - VIR_FREE(pidfile); - } + virQEMUCapsInitQMPCommandFree(cmd); return ret; } -- 2.11.0.rc2

On Fri, Nov 25, 2016 at 19:56:23 +0100, Jiri Denemark wrote:
The code that runs a new QEMU process to be used for probing capabilities is separated into four reusable functions so that any code that wants to probe a QEMU process may just follow a few simple steps:
cmd = virQEMUCapsInitQMPCommandNew(...);
mon = virQEMUCapsInitQMPCommandRun(cmd, ...);
Oops, and this needs to be changed to virQEMUCapsInitQMPCommandRun(cmd);
/* talk to the running QEMU process using its QMP monitor */
if (reprobeIsRequired) { virQEMUCapsInitQMPCommandAbort(cmd, ...); mon = virQEMUCapsInitQMPCommandRun(cmd, ...);
And here as well.
/* talk to the running QEMU process again */ }
virQEMUCapsInitQMPCommandFree(cmd);
Jirka

On Fri, Nov 25, 2016 at 08:07:25PM +0100, Jiri Denemark wrote:
On Fri, Nov 25, 2016 at 19:56:23 +0100, Jiri Denemark wrote:
The code that runs a new QEMU process to be used for probing capabilities is separated into four reusable functions so that any code that wants to probe a QEMU process may just follow a few simple steps:
cmd = virQEMUCapsInitQMPCommandNew(...);
mon = virQEMUCapsInitQMPCommandRun(cmd, ...);
Oops, and this needs to be changed to
virQEMUCapsInitQMPCommandRun(cmd);
/* talk to the running QEMU process using its QMP monitor */
if (reprobeIsRequired) { virQEMUCapsInitQMPCommandAbort(cmd, ...); mon = virQEMUCapsInitQMPCommandRun(cmd, ...);
And here as well.
/* talk to the running QEMU process again */ }
virQEMUCapsInitQMPCommandFree(cmd);
ACK with this fixed :) Pavel

Using -machine instead of -M for QMP probing is safe because any QEMU binary which is capable of QMP probing supports -machine. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 5ae57be..7a196ad 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4162,7 +4162,7 @@ virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd, "-no-user-config", "-nodefaults", "-nographic", - "-M", "none", + "-machine", "none", "-qmp", cmd->monarg, "-pidfile", cmd->pidfile, "-daemonize", -- 2.10.2

On Mon, Nov 21, 2016 at 12:20:58AM +0100, Jiri Denemark wrote:
Using -machine instead of -M for QMP probing is safe because any QEMU binary which is capable of QMP probing supports -machine.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
ACK Pavel

Let's set QEMU_CAPS_KVM and QEMU_CAPS_ENABLE_KVM early so that the rest of the probing code can use these capabilities to handle KVM/TCG replies differently. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 7 +- .../qemucapabilitiesdata/caps_1.2.2.x86_64.replies | 138 ++++++++++----------- .../qemucapabilitiesdata/caps_1.3.1.x86_64.replies | 86 ++++++------- .../qemucapabilitiesdata/caps_1.4.2.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_1.5.3.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_1.6.0.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_1.7.0.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.1.1.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.4.0.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.5.0.x86_64.replies | 84 ++++++------- .../caps_2.6.0-gicv2.aarch64.replies | 84 ++++++------- .../caps_2.6.0-gicv3.aarch64.replies | 84 ++++++------- .../caps_2.6.0.ppc64le.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.6.0.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.7.0.x86_64.replies | 84 ++++++------- 15 files changed, 621 insertions(+), 618 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 7a196ad..fe0705f 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3980,6 +3980,11 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, if (virQEMUCapsProbeQMPCommands(qemuCaps, mon) < 0) goto cleanup; + + /* Some capabilities may differ depending on KVM state */ + if (virQEMUCapsProbeQMPKVMState(qemuCaps, mon) < 0) + goto cleanup; + if (virQEMUCapsProbeQMPEvents(qemuCaps, mon) < 0) goto cleanup; if (virQEMUCapsProbeQMPObjects(qemuCaps, mon) < 0) @@ -3988,8 +3993,6 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, goto cleanup; if (virQEMUCapsProbeQMPCPUDefinitions(qemuCaps, mon) < 0) goto cleanup; - if (virQEMUCapsProbeQMPKVMState(qemuCaps, mon) < 0) - goto cleanup; if (virQEMUCapsProbeQMPTPM(qemuCaps, mon) < 0) goto cleanup; if (virQEMUCapsProbeQMPCommandLine(qemuCaps, mon) < 0) diff --git a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.replies index dff9788..c05e110 100644 --- a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.replies @@ -278,6 +278,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-6" +} + +{ "return": [ { "name": "SPICE_MIGRATE_COMPLETED" @@ -346,7 +354,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-6" + "id": "libvirt-7" } { @@ -769,7 +777,7 @@ "name": "VGA" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -871,7 +879,7 @@ "type": "hex32" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1009,7 +1017,7 @@ "type": "on/off" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1071,11 +1079,11 @@ "type": "on/off" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { - "id": "libvirt-11", + "id": "libvirt-12", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1083,7 +1091,7 @@ } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1091,7 +1099,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -1099,7 +1107,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1107,7 +1115,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1115,7 +1123,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1123,7 +1131,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'kvm-pci-assign' not found" @@ -1131,7 +1139,7 @@ } { - "id": "libvirt-18", + "id": "libvirt-19", "error": { "class": "DeviceNotFound", "desc": "Device 'vfio-pci' not found" @@ -1209,7 +1217,7 @@ "type": "drive" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -1263,7 +1271,7 @@ "type": "drive" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -1305,11 +1313,11 @@ "type": "uint32" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { - "id": "libvirt-22", + "id": "libvirt-23", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -1359,7 +1367,7 @@ "type": "uint32" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1385,17 +1393,17 @@ "type": "drive" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { "return": [ ], - "id": "libvirt-25" + "id": "libvirt-26" } { - "id": "libvirt-26", + "id": "libvirt-27", "error": { "class": "DeviceNotFound", "desc": "Device 'q35-pcihost' not found" @@ -1449,7 +1457,7 @@ "type": "drive" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -1463,36 +1471,6 @@ "type": "hex32" } ], - "id": "libvirt-28" -} - -{ - "return": [ - { - "name": "command_serr_enable", - "type": "on/off" - }, - { - "name": "multifunction", - "type": "on/off" - }, - { - "name": "rombar", - "type": "uint32" - }, - { - "name": "romfile", - "type": "string" - }, - { - "name": "addr", - "type": "pci-devfn" - }, - { - "name": "vgamem_mb", - "type": "uint32" - } - ], "id": "libvirt-29" } @@ -1551,6 +1529,36 @@ { "name": "vgamem_mb", "type": "uint32" + } + ], + "id": "libvirt-31" +} + +{ + "return": [ + { + "name": "command_serr_enable", + "type": "on/off" + }, + { + "name": "multifunction", + "type": "on/off" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "romfile", + "type": "string" + }, + { + "name": "addr", + "type": "pci-devfn" + }, + { + "name": "vgamem_mb", + "type": "uint32" }, { "name": "vram64_size_mb", @@ -1589,11 +1597,11 @@ "type": "uint32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { - "id": "libvirt-32", + "id": "libvirt-33", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-pci' not found" @@ -1601,7 +1609,7 @@ } { - "id": "libvirt-33", + "id": "libvirt-34", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-device' not found" @@ -1609,7 +1617,7 @@ } { - "id": "libvirt-34", + "id": "libvirt-35", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -1651,11 +1659,11 @@ "type": "on/off" } ], - "id": "libvirt-35" + "id": "libvirt-36" } { - "id": "libvirt-36", + "id": "libvirt-37", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -1663,7 +1671,7 @@ } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-device' not found" @@ -1697,7 +1705,7 @@ "type": "uint32" } ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -1738,7 +1746,7 @@ "name": "none" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -1810,14 +1818,6 @@ "name": "Opteron_G4" } ], - "id": "libvirt-40" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-41" } diff --git a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.replies index c40f9fe..6801a76 100644 --- a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.replies @@ -316,6 +316,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "SPICE_MIGRATE_COMPLETED" @@ -390,7 +398,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -873,7 +881,7 @@ "name": "VGA" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -975,7 +983,7 @@ "type": "hex32" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1113,7 +1121,7 @@ "type": "on/off" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -1175,11 +1183,11 @@ "type": "on/off" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1187,7 +1195,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1195,7 +1203,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -1203,7 +1211,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1211,7 +1219,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1219,7 +1227,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1269,7 +1277,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1303,7 +1311,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -1377,7 +1385,7 @@ "type": "drive" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -1431,7 +1439,7 @@ "type": "drive" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1473,7 +1481,7 @@ "type": "uint32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -1503,7 +1511,7 @@ "type": "chr" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1549,7 +1557,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1575,13 +1583,13 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { "return": [ ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1591,7 +1599,7 @@ "type": "uint64" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -1641,7 +1649,7 @@ "type": "drive" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -1655,7 +1663,7 @@ "type": "hex32" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -1689,7 +1697,7 @@ "type": "uint32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -1719,7 +1727,7 @@ "type": "uint32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -1789,11 +1797,11 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { - "id": "libvirt-33", + "id": "libvirt-34", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-pci' not found" @@ -1801,7 +1809,7 @@ } { - "id": "libvirt-34", + "id": "libvirt-35", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-device' not found" @@ -1809,7 +1817,7 @@ } { - "id": "libvirt-35", + "id": "libvirt-36", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -1851,11 +1859,11 @@ "type": "on/off" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -1863,7 +1871,7 @@ } { - "id": "libvirt-38", + "id": "libvirt-39", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-device' not found" @@ -1917,7 +1925,7 @@ "type": "on/off" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -1965,7 +1973,7 @@ "name": "none" } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -2043,14 +2051,6 @@ "name": "Opteron_G5" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } @@ -2085,5 +2085,5 @@ "capability": "xbzrle" } ], - "id": "libvirt-45" + "id": "libvirt-46" } diff --git a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.replies index 7e86cff..f9eff8e 100644 --- a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.replies @@ -328,6 +328,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "SPICE_MIGRATE_COMPLETED" @@ -402,7 +410,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -912,7 +920,7 @@ "name": "VGA" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1014,7 +1022,7 @@ "type": "hex32" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1160,7 +1168,7 @@ "type": "on/off" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -1222,11 +1230,11 @@ "type": "on/off" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1234,7 +1242,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1242,7 +1250,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -1250,7 +1258,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1258,7 +1266,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1266,7 +1274,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1316,7 +1324,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1350,7 +1358,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -1424,7 +1432,7 @@ "type": "drive" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -1478,7 +1486,7 @@ "type": "drive" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1520,7 +1528,7 @@ "type": "uint32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -1550,7 +1558,7 @@ "type": "chr" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1596,7 +1604,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1622,13 +1630,13 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { "return": [ ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1638,7 +1646,7 @@ "type": "uint64" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -1688,7 +1696,7 @@ "type": "drive" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -1702,7 +1710,7 @@ "type": "hex32" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -1736,7 +1744,7 @@ "type": "uint32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -1766,7 +1774,7 @@ "type": "uint32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -1836,11 +1844,11 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { - "id": "libvirt-33", + "id": "libvirt-34", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-pci' not found" @@ -1848,7 +1856,7 @@ } { - "id": "libvirt-34", + "id": "libvirt-35", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-device' not found" @@ -1856,7 +1864,7 @@ } { - "id": "libvirt-35", + "id": "libvirt-36", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -1898,11 +1906,11 @@ "type": "on/off" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -1910,7 +1918,7 @@ } { - "id": "libvirt-38", + "id": "libvirt-39", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-device' not found" @@ -1964,7 +1972,7 @@ "type": "on/off" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -2015,7 +2023,7 @@ "name": "none" } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -2093,14 +2101,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.replies index 7486579..8a0ae5f 100644 --- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.replies @@ -343,6 +343,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "GUEST_PANICKED" @@ -423,7 +431,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -999,7 +1007,7 @@ "name": "VGA" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1101,7 +1109,7 @@ "type": "hex32" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1247,7 +1255,7 @@ "type": "on/off" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -1309,11 +1317,11 @@ "type": "on/off" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1321,7 +1329,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1329,7 +1337,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -1337,7 +1345,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1345,7 +1353,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1353,7 +1361,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1403,7 +1411,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1445,7 +1453,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -1519,7 +1527,7 @@ "type": "drive" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -1573,7 +1581,7 @@ "type": "drive" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1615,7 +1623,7 @@ "type": "uint32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -1645,7 +1653,7 @@ "type": "chr" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1699,7 +1707,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1725,13 +1733,13 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { "return": [ ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1741,7 +1749,7 @@ "type": "uint64" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -1791,7 +1799,7 @@ "type": "drive" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -1805,7 +1813,7 @@ "type": "hex32" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -1839,7 +1847,7 @@ "type": "uint32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -1869,7 +1877,7 @@ "type": "uint32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -1939,11 +1947,11 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { - "id": "libvirt-33", + "id": "libvirt-34", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-pci' not found" @@ -1951,7 +1959,7 @@ } { - "id": "libvirt-34", + "id": "libvirt-35", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-device' not found" @@ -1959,7 +1967,7 @@ } { - "id": "libvirt-35", + "id": "libvirt-36", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -2001,11 +2009,11 @@ "type": "on/off" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -2015,7 +2023,7 @@ { "return": [ ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -2065,7 +2073,7 @@ "type": "on/off" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -2138,7 +2146,7 @@ "cpu-max": 1 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -2216,14 +2224,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.replies index aad28ca..820eaf9 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.replies @@ -349,6 +349,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "GUEST_PANICKED" @@ -432,7 +440,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1020,7 +1028,7 @@ "name": "VGA" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1122,7 +1130,7 @@ "type": "hex32" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1276,7 +1284,7 @@ "type": "on/off" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -1338,11 +1346,11 @@ "type": "on/off" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1350,7 +1358,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1358,7 +1366,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -1366,7 +1374,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1374,7 +1382,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1382,7 +1390,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1432,7 +1440,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1474,7 +1482,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -1548,7 +1556,7 @@ "type": "drive" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -1602,7 +1610,7 @@ "type": "drive" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1644,7 +1652,7 @@ "type": "uint32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -1678,7 +1686,7 @@ "type": "chr" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1736,7 +1744,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1762,7 +1770,7 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -1772,7 +1780,7 @@ "type": "size" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1786,7 +1794,7 @@ "type": "uint64" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -1836,7 +1844,7 @@ "type": "drive" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -1850,7 +1858,7 @@ "type": "hex32" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -1884,7 +1892,7 @@ "type": "uint32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -1914,7 +1922,7 @@ "type": "uint32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -1984,11 +1992,11 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { - "id": "libvirt-33", + "id": "libvirt-34", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-pci' not found" @@ -1996,7 +2004,7 @@ } { - "id": "libvirt-34", + "id": "libvirt-35", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-device' not found" @@ -2004,7 +2012,7 @@ } { - "id": "libvirt-35", + "id": "libvirt-36", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -2046,11 +2054,11 @@ "type": "on/off" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -2060,7 +2068,7 @@ { "return": [ ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -2110,7 +2118,7 @@ "type": "on/off" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -2191,7 +2199,7 @@ "cpu-max": 1 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -2269,14 +2277,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies index b44d5f1..4df07eb 100644 --- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies @@ -358,6 +358,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "BLOCK_IMAGE_CORRUPTED" @@ -444,7 +452,7 @@ "name": "SHUTDOWN" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1029,7 +1037,7 @@ "name": "VGA" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1131,7 +1139,7 @@ "type": "hex32" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1285,7 +1293,7 @@ "type": "on/off" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -1347,11 +1355,11 @@ "type": "on/off" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1359,7 +1367,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1367,7 +1375,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -1375,7 +1383,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1383,7 +1391,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1391,7 +1399,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1441,7 +1449,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1483,7 +1491,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -1557,7 +1565,7 @@ "type": "drive" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -1611,7 +1619,7 @@ "type": "drive" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1653,7 +1661,7 @@ "type": "uint32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -1687,7 +1695,7 @@ "type": "chr" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -1745,7 +1753,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -1771,7 +1779,7 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -1785,7 +1793,7 @@ "type": "size" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -1803,7 +1811,7 @@ "type": "uint64" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -1853,7 +1861,7 @@ "type": "drive" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -1867,7 +1875,7 @@ "type": "hex32" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -1901,7 +1909,7 @@ "type": "uint32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -1931,7 +1939,7 @@ "type": "uint32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -2001,11 +2009,11 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { - "id": "libvirt-33", + "id": "libvirt-34", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-pci' not found" @@ -2013,7 +2021,7 @@ } { - "id": "libvirt-34", + "id": "libvirt-35", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-device' not found" @@ -2021,7 +2029,7 @@ } { - "id": "libvirt-35", + "id": "libvirt-36", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -2063,11 +2071,11 @@ "type": "on/off" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -2077,7 +2085,7 @@ { "return": [ ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -2127,7 +2135,7 @@ "type": "on/off" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -2216,7 +2224,7 @@ "cpu-max": 1 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -2294,14 +2302,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies index a7d8f36..f7daf61 100644 --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies @@ -391,6 +391,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "VSERPORT_CHANGE" @@ -489,7 +497,7 @@ "name": "BLOCK_IMAGE_CORRUPTED" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1272,7 +1280,7 @@ "name": "fusbh200-ehci-usb" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1382,7 +1390,7 @@ "type": "uint32" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1544,7 +1552,7 @@ "type": "on/off" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -1614,11 +1622,11 @@ "type": "on/off" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1626,7 +1634,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1634,7 +1642,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -1642,7 +1650,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1650,7 +1658,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1658,7 +1666,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -1708,7 +1716,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -1750,7 +1758,7 @@ "type": "pci-host-devaddr" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -1836,7 +1844,7 @@ "type": "drive" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -1890,7 +1898,7 @@ "type": "drive" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -1940,7 +1948,7 @@ "type": "uint32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -1978,7 +1986,7 @@ "type": "chr" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -2040,7 +2048,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -2066,7 +2074,7 @@ "type": "drive" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -2104,7 +2112,7 @@ "type": "size" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -2154,7 +2162,7 @@ "type": "uint64" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -2208,7 +2216,7 @@ "type": "drive" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -2222,7 +2230,7 @@ "type": "uint32" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -2256,7 +2264,7 @@ "type": "uint32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -2286,7 +2294,7 @@ "type": "uint32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -2356,11 +2364,11 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { - "id": "libvirt-33", + "id": "libvirt-34", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-pci' not found" @@ -2368,7 +2376,7 @@ } { - "id": "libvirt-34", + "id": "libvirt-35", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-gpu-device' not found" @@ -2426,7 +2434,7 @@ "type": "pci-devfn" } ], - "id": "libvirt-35" + "id": "libvirt-36" } { @@ -2476,11 +2484,11 @@ "type": "uint32" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -2490,7 +2498,7 @@ { "return": [ ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -2544,7 +2552,7 @@ "type": "on/off" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -2649,7 +2657,7 @@ "cpu-max": 255 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -2730,14 +2738,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies index c483c48..9f3135f 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies @@ -439,6 +439,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "MEM_UNPLUG_ERROR" @@ -546,7 +554,7 @@ "name": "BLOCK_IMAGE_CORRUPTED" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1434,7 +1442,7 @@ "name": "virtio-blk-device" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1586,7 +1594,7 @@ "type": "uint32" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1799,7 +1807,7 @@ "type": "bool" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -1902,11 +1910,11 @@ "type": "bool" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1914,7 +1922,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -1922,7 +1930,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -1930,7 +1938,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -1938,7 +1946,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -1946,7 +1954,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -2002,7 +2010,7 @@ "type": "str" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -2058,7 +2066,7 @@ "type": "str" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -2153,7 +2161,7 @@ "type": "str" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -2210,7 +2218,7 @@ "type": "str" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -2263,7 +2271,7 @@ "type": "uint32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -2304,7 +2312,7 @@ "type": "str" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -2369,7 +2377,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -2396,7 +2404,7 @@ "type": "str" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -2434,7 +2442,7 @@ "type": "size" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -2488,7 +2496,7 @@ "type": "uint64" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -2548,7 +2556,7 @@ "type": "str" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -2562,7 +2570,7 @@ "type": "uint32" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -2609,7 +2617,7 @@ "type": "uint32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -2642,7 +2650,7 @@ "type": "uint32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -2719,7 +2727,7 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { @@ -2800,7 +2808,7 @@ "type": "bool" } ], - "id": "libvirt-33" + "id": "libvirt-34" } { @@ -2830,7 +2838,7 @@ "type": "uint32" } ], - "id": "libvirt-34" + "id": "libvirt-35" } { @@ -2907,7 +2915,7 @@ "type": "bool" } ], - "id": "libvirt-35" + "id": "libvirt-36" } { @@ -2992,11 +3000,11 @@ "type": "uint32" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -3039,7 +3047,7 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -3109,7 +3117,7 @@ "type": "bool" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -3238,7 +3246,7 @@ "cpu-max": 255 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -3328,14 +3336,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies index a507542..1ed8805 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies @@ -466,6 +466,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "WATCHDOG" @@ -573,7 +581,7 @@ "name": "ACPI_DEVICE_OST" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1479,7 +1487,7 @@ "name": "virtio-blk-device" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1641,7 +1649,7 @@ "type": "str" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1869,7 +1877,7 @@ "type": "str" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -1987,11 +1995,11 @@ "type": "uint32" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -1999,7 +2007,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -2007,7 +2015,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -2015,7 +2023,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -2023,7 +2031,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -2031,7 +2039,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -2087,7 +2095,7 @@ "type": "bool" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -2171,7 +2179,7 @@ "type": "bool" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -2266,7 +2274,7 @@ "type": "uint64" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -2323,7 +2331,7 @@ "type": "uint16" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -2376,7 +2384,7 @@ "type": "int32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -2417,7 +2425,7 @@ "type": "bool" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -2482,7 +2490,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -2509,7 +2517,7 @@ "type": "uint32" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -2547,7 +2555,7 @@ "type": "child<qemu:memory-region>" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -2601,7 +2609,7 @@ "type": "child<qemu:memory-region>" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -2661,7 +2669,7 @@ "type": "uint16" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -2675,7 +2683,7 @@ "type": "LostTickPolicy" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -2722,7 +2730,7 @@ "type": "int32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -2755,7 +2763,7 @@ "type": "int32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -2832,7 +2840,7 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { @@ -2938,7 +2946,7 @@ "type": "uint32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } { @@ -2978,7 +2986,7 @@ "type": "bool" } ], - "id": "libvirt-34" + "id": "libvirt-35" } { @@ -3055,7 +3063,7 @@ "type": "uint32" } ], - "id": "libvirt-35" + "id": "libvirt-36" } { @@ -3155,11 +3163,11 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -3202,7 +3210,7 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -3272,7 +3280,7 @@ "type": "uint32" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -3409,7 +3417,7 @@ "cpu-max": 255 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -3499,14 +3507,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.replies index f7b274c..66977ba 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.replies @@ -469,6 +469,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "WATCHDOG" @@ -582,7 +590,7 @@ "name": "ACPI_DEVICE_OST" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -2235,7 +2243,7 @@ "name": "fw-path-provider" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -2397,7 +2405,7 @@ "type": "str" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -2625,7 +2633,7 @@ "type": "str" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -2743,11 +2751,11 @@ "type": "uint32" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -2755,7 +2763,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -2763,7 +2771,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -2771,7 +2779,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -2779,7 +2787,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -2787,7 +2795,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -2795,7 +2803,7 @@ } { - "id": "libvirt-18", + "id": "libvirt-19", "error": { "class": "DeviceNotFound", "desc": "Device 'kvm-pci-assign' not found" @@ -2887,7 +2895,7 @@ "type": "bool" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -2982,7 +2990,7 @@ "type": "uint64" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -3039,11 +3047,11 @@ "type": "uint16" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { - "id": "libvirt-22", + "id": "libvirt-23", "error": { "class": "DeviceNotFound", "desc": "Device 'PIIX4_PM' not found" @@ -3051,7 +3059,7 @@ } { - "id": "libvirt-23", + "id": "libvirt-24", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -3120,7 +3128,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -3147,11 +3155,11 @@ "type": "uint32" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { - "id": "libvirt-26", + "id": "libvirt-27", "error": { "class": "DeviceNotFound", "desc": "Device 'i440FX-pcihost' not found" @@ -3159,7 +3167,7 @@ } { - "id": "libvirt-27", + "id": "libvirt-28", "error": { "class": "DeviceNotFound", "desc": "Device 'q35-pcihost' not found" @@ -3223,11 +3231,11 @@ "type": "uint16" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { - "id": "libvirt-29", + "id": "libvirt-30", "error": { "class": "DeviceNotFound", "desc": "Device 'kvm-pit' not found" @@ -3278,11 +3286,11 @@ "type": "int32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { - "id": "libvirt-31", + "id": "libvirt-32", "error": { "class": "DeviceNotFound", "desc": "Device 'vmware-svga' not found" @@ -3290,7 +3298,7 @@ } { - "id": "libvirt-32", + "id": "libvirt-33", "error": { "class": "DeviceNotFound", "desc": "Device 'qxl' not found" @@ -3390,7 +3398,7 @@ "type": "uint32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } { @@ -3420,11 +3428,11 @@ "type": "uint32" } ], - "id": "libvirt-34" + "id": "libvirt-35" } { - "id": "libvirt-35", + "id": "libvirt-36", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -3528,11 +3536,11 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -3575,7 +3583,7 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -3645,7 +3653,7 @@ "type": "uint32" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -3820,7 +3828,7 @@ "cpu-max": 1 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -3916,14 +3924,6 @@ "name": "pxa270" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.replies index 11b9810..f1c2eab 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.replies @@ -469,6 +469,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "WATCHDOG" @@ -582,7 +590,7 @@ "name": "ACPI_DEVICE_OST" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -2235,7 +2243,7 @@ "name": "fw-path-provider" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -2397,7 +2405,7 @@ "type": "str" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -2625,7 +2633,7 @@ "type": "str" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -2743,11 +2751,11 @@ "type": "uint32" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -2755,7 +2763,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -2763,7 +2771,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -2771,7 +2779,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -2779,7 +2787,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -2787,7 +2795,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -2795,7 +2803,7 @@ } { - "id": "libvirt-18", + "id": "libvirt-19", "error": { "class": "DeviceNotFound", "desc": "Device 'kvm-pci-assign' not found" @@ -2887,7 +2895,7 @@ "type": "bool" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -2982,7 +2990,7 @@ "type": "uint64" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -3039,11 +3047,11 @@ "type": "uint16" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { - "id": "libvirt-22", + "id": "libvirt-23", "error": { "class": "DeviceNotFound", "desc": "Device 'PIIX4_PM' not found" @@ -3051,7 +3059,7 @@ } { - "id": "libvirt-23", + "id": "libvirt-24", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -3120,7 +3128,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -3147,11 +3155,11 @@ "type": "uint32" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { - "id": "libvirt-26", + "id": "libvirt-27", "error": { "class": "DeviceNotFound", "desc": "Device 'i440FX-pcihost' not found" @@ -3159,7 +3167,7 @@ } { - "id": "libvirt-27", + "id": "libvirt-28", "error": { "class": "DeviceNotFound", "desc": "Device 'q35-pcihost' not found" @@ -3223,11 +3231,11 @@ "type": "uint16" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { - "id": "libvirt-29", + "id": "libvirt-30", "error": { "class": "DeviceNotFound", "desc": "Device 'kvm-pit' not found" @@ -3278,11 +3286,11 @@ "type": "int32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { - "id": "libvirt-31", + "id": "libvirt-32", "error": { "class": "DeviceNotFound", "desc": "Device 'vmware-svga' not found" @@ -3290,7 +3298,7 @@ } { - "id": "libvirt-32", + "id": "libvirt-33", "error": { "class": "DeviceNotFound", "desc": "Device 'qxl' not found" @@ -3390,7 +3398,7 @@ "type": "uint32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } { @@ -3425,11 +3433,11 @@ "type": "uint32" } ], - "id": "libvirt-34" + "id": "libvirt-35" } { - "id": "libvirt-35", + "id": "libvirt-36", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -3533,11 +3541,11 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -3580,7 +3588,7 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -3650,7 +3658,7 @@ "type": "uint32" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -3825,7 +3833,7 @@ "cpu-max": 1 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -3921,14 +3929,6 @@ "name": "pxa270" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.replies b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.replies index 87988ca..5e4ccac 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.replies +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.replies @@ -466,6 +466,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "WATCHDOG" @@ -579,7 +587,7 @@ "name": "ACPI_DEVICE_OST" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -2388,7 +2396,7 @@ "name": "fw-path-provider" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -2550,7 +2558,7 @@ "type": "str" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -2778,7 +2786,7 @@ "type": "str" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -2896,11 +2904,11 @@ "type": "uint32" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -2908,7 +2916,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -2916,7 +2924,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -2924,7 +2932,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -2932,7 +2940,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -2940,7 +2948,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -2948,7 +2956,7 @@ } { - "id": "libvirt-18", + "id": "libvirt-19", "error": { "class": "DeviceNotFound", "desc": "Device 'kvm-pci-assign' not found" @@ -3040,7 +3048,7 @@ "type": "bool" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -3135,7 +3143,7 @@ "type": "uint64" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -3192,11 +3200,11 @@ "type": "uint16" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { - "id": "libvirt-22", + "id": "libvirt-23", "error": { "class": "DeviceNotFound", "desc": "Device 'PIIX4_PM' not found" @@ -3204,7 +3212,7 @@ } { - "id": "libvirt-23", + "id": "libvirt-24", "error": { "class": "DeviceNotFound", "desc": "Device 'usb-redir' not found" @@ -3273,7 +3281,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -3300,11 +3308,11 @@ "type": "uint32" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { - "id": "libvirt-26", + "id": "libvirt-27", "error": { "class": "DeviceNotFound", "desc": "Device 'i440FX-pcihost' not found" @@ -3312,7 +3320,7 @@ } { - "id": "libvirt-27", + "id": "libvirt-28", "error": { "class": "DeviceNotFound", "desc": "Device 'q35-pcihost' not found" @@ -3376,11 +3384,11 @@ "type": "uint16" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { - "id": "libvirt-29", + "id": "libvirt-30", "error": { "class": "DeviceNotFound", "desc": "Device 'kvm-pit' not found" @@ -3431,11 +3439,11 @@ "type": "int32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { - "id": "libvirt-31", + "id": "libvirt-32", "error": { "class": "DeviceNotFound", "desc": "Device 'vmware-svga' not found" @@ -3443,7 +3451,7 @@ } { - "id": "libvirt-32", + "id": "libvirt-33", "error": { "class": "DeviceNotFound", "desc": "Device 'qxl' not found" @@ -3543,7 +3551,7 @@ "type": "uint32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } { @@ -3573,11 +3581,11 @@ "type": "uint32" } ], - "id": "libvirt-34" + "id": "libvirt-35" } { - "id": "libvirt-35", + "id": "libvirt-36", "error": { "class": "DeviceNotFound", "desc": "Device 'ICH9-LPC' not found" @@ -3681,11 +3689,11 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -3728,7 +3736,7 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -3798,7 +3806,7 @@ "type": "uint32" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -3870,7 +3878,7 @@ "cpu-max": 255 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -5166,14 +5174,6 @@ "name": "MPC8541E_v11" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies index 60e8147..89a8707 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies @@ -472,6 +472,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "WATCHDOG" @@ -585,7 +593,7 @@ "name": "ACPI_DEVICE_OST" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1557,7 +1565,7 @@ "name": "virtio-blk-device" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1719,7 +1727,7 @@ "type": "str" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1947,7 +1955,7 @@ "type": "str" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -2065,11 +2073,11 @@ "type": "uint32" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -2077,7 +2085,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -2085,7 +2093,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -2093,7 +2101,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -2101,7 +2109,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -2109,7 +2117,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -2165,7 +2173,7 @@ "type": "bool" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -2253,7 +2261,7 @@ "type": "bool" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -2348,7 +2356,7 @@ "type": "uint64" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -2405,7 +2413,7 @@ "type": "uint16" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -2458,7 +2466,7 @@ "type": "int32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -2499,7 +2507,7 @@ "type": "bool" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -2564,7 +2572,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -2591,7 +2599,7 @@ "type": "uint32" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -2629,7 +2637,7 @@ "type": "child<qemu:memory-region>" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -2683,7 +2691,7 @@ "type": "child<qemu:memory-region>" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -2743,7 +2751,7 @@ "type": "uint16" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -2757,7 +2765,7 @@ "type": "LostTickPolicy" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -2804,7 +2812,7 @@ "type": "int32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -2837,7 +2845,7 @@ "type": "int32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -2914,7 +2922,7 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { @@ -3020,7 +3028,7 @@ "type": "uint32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } { @@ -3060,7 +3068,7 @@ "type": "bool" } ], - "id": "libvirt-34" + "id": "libvirt-35" } { @@ -3137,7 +3145,7 @@ "type": "uint32" } ], - "id": "libvirt-35" + "id": "libvirt-36" } { @@ -3237,11 +3245,11 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -3284,7 +3292,7 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -3354,7 +3362,7 @@ "type": "uint32" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -3467,7 +3475,7 @@ "cpu-max": 255 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -3557,14 +3565,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies index 95b9767..7b22dcc 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies @@ -481,6 +481,14 @@ } { + "return": { + "enabled": false, + "present": true + }, + "id": "libvirt-7" +} + +{ "return": [ { "name": "WATCHDOG" @@ -594,7 +602,7 @@ "name": "ACPI_DEVICE_OST" } ], - "id": "libvirt-7" + "id": "libvirt-8" } { @@ -1581,7 +1589,7 @@ "name": "virtio-blk-device" } ], - "id": "libvirt-8" + "id": "libvirt-9" } { @@ -1766,7 +1774,7 @@ "type": "str" } ], - "id": "libvirt-9" + "id": "libvirt-10" } { @@ -1998,7 +2006,7 @@ "type": "str" } ], - "id": "libvirt-10" + "id": "libvirt-11" } { @@ -2120,11 +2128,11 @@ "type": "str" } ], - "id": "libvirt-11" + "id": "libvirt-12" } { - "id": "libvirt-12", + "id": "libvirt-13", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-ccw' not found" @@ -2132,7 +2140,7 @@ } { - "id": "libvirt-13", + "id": "libvirt-14", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-ccw' not found" @@ -2140,7 +2148,7 @@ } { - "id": "libvirt-14", + "id": "libvirt-15", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-scsi-ccw' not found" @@ -2148,7 +2156,7 @@ } { - "id": "libvirt-15", + "id": "libvirt-16", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-blk-s390' not found" @@ -2156,7 +2164,7 @@ } { - "id": "libvirt-16", + "id": "libvirt-17", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-net-s390' not found" @@ -2164,7 +2172,7 @@ } { - "id": "libvirt-17", + "id": "libvirt-18", "error": { "class": "DeviceNotFound", "desc": "Device 'pci-assign' not found" @@ -2225,7 +2233,7 @@ "type": "bool" } ], - "id": "libvirt-18" + "id": "libvirt-19" } { @@ -2327,7 +2335,7 @@ "type": "bool" } ], - "id": "libvirt-19" + "id": "libvirt-20" } { @@ -2437,7 +2445,7 @@ "type": "uint64" } ], - "id": "libvirt-20" + "id": "libvirt-21" } { @@ -2509,7 +2517,7 @@ "type": "uint16" } ], - "id": "libvirt-21" + "id": "libvirt-22" } { @@ -2567,7 +2575,7 @@ "type": "int32" } ], - "id": "libvirt-22" + "id": "libvirt-23" } { @@ -2616,7 +2624,7 @@ "type": "bool" } ], - "id": "libvirt-23" + "id": "libvirt-24" } { @@ -2685,7 +2693,7 @@ "type": "uint32" } ], - "id": "libvirt-24" + "id": "libvirt-25" } { @@ -2712,7 +2720,7 @@ "type": "uint32" } ], - "id": "libvirt-25" + "id": "libvirt-26" } { @@ -2750,7 +2758,7 @@ "type": "child<qemu:memory-region>" } ], - "id": "libvirt-26" + "id": "libvirt-27" } { @@ -2828,7 +2836,7 @@ "type": "int" } ], - "id": "libvirt-27" + "id": "libvirt-28" } { @@ -2897,7 +2905,7 @@ "type": "uint16" } ], - "id": "libvirt-28" + "id": "libvirt-29" } { @@ -2911,7 +2919,7 @@ "type": "LostTickPolicy" } ], - "id": "libvirt-29" + "id": "libvirt-30" } { @@ -2963,7 +2971,7 @@ "type": "int32" } ], - "id": "libvirt-30" + "id": "libvirt-31" } { @@ -3001,7 +3009,7 @@ "type": "int32" } ], - "id": "libvirt-31" + "id": "libvirt-32" } { @@ -3083,7 +3091,7 @@ "type": "uint32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } { @@ -3193,7 +3201,7 @@ "type": "uint32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } { @@ -3233,7 +3241,7 @@ "type": "bool" } ], - "id": "libvirt-34" + "id": "libvirt-35" } { @@ -3319,7 +3327,7 @@ "type": "uint32" } ], - "id": "libvirt-35" + "id": "libvirt-36" } { @@ -3423,11 +3431,11 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } { - "id": "libvirt-37", + "id": "libvirt-38", "error": { "class": "DeviceNotFound", "desc": "Device 'virtio-balloon-ccw' not found" @@ -3470,7 +3478,7 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } { @@ -3545,7 +3553,7 @@ "type": "uint32" } ], - "id": "libvirt-39" + "id": "libvirt-40" } { @@ -3694,7 +3702,7 @@ "cpu-max": 255 } ], - "id": "libvirt-40" + "id": "libvirt-41" } { @@ -3787,14 +3795,6 @@ "name": "qemu64" } ], - "id": "libvirt-41" -} - -{ - "return": { - "enabled": false, - "present": true - }, "id": "libvirt-42" } -- 2.10.2

On Mon, Nov 21, 2016 at 12:20:59AM +0100, Jiri Denemark wrote:
Let's set QEMU_CAPS_KVM and QEMU_CAPS_ENABLE_KVM early so that the rest of the probing code can use these capabilities to handle KVM/TCG replies differently.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 7 +- .../qemucapabilitiesdata/caps_1.2.2.x86_64.replies | 138 ++++++++++----------- .../qemucapabilitiesdata/caps_1.3.1.x86_64.replies | 86 ++++++------- .../qemucapabilitiesdata/caps_1.4.2.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_1.5.3.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_1.6.0.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_1.7.0.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.1.1.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.4.0.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.5.0.x86_64.replies | 84 ++++++------- .../caps_2.6.0-gicv2.aarch64.replies | 84 ++++++------- .../caps_2.6.0-gicv3.aarch64.replies | 84 ++++++------- .../caps_2.6.0.ppc64le.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.6.0.x86_64.replies | 84 ++++++------- .../qemucapabilitiesdata/caps_2.7.0.x86_64.replies | 84 ++++++------- 15 files changed, 621 insertions(+), 618 deletions(-)
ACK Pavel

When starting QEMU more than once during a single probing process, qemucapsprobe utility would save QMP greeting several times, which doesn't play well with our test monitor. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/qemucapsprobemock.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/qemucapsprobemock.c b/tests/qemucapsprobemock.c index 0c4c786..bad69bb 100644 --- a/tests/qemucapsprobemock.c +++ b/tests/qemucapsprobemock.c @@ -77,10 +77,14 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon, char *p; bool skip = false; - if (first) + if (first) { first = false; - else + } else { + /* Ignore QMP greeting if it's not the first one */ + if (virJSONValueObjectHasKey(value, "QMP")) + goto cleanup; putchar('\n'); + } for (p = json; *p; p++) { if (skip && *p == '\n') { @@ -92,6 +96,7 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon, } } + cleanup: VIR_FREE(json); virJSONValueFree(value); return ret; -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:00AM +0100, Jiri Denemark wrote:
When starting QEMU more than once during a single probing process, qemucapsprobe utility would save QMP greeting several times, which doesn't play well with our test monitor.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/qemucapsprobemock.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
ACK Pavel

CPU related capabilities may differ depending on accelerator used when probing. Let's use KVM if available when probing QEMU and fall back to TCG. The created capabilities already contain all we need to distinguish whether KVM or TCG was used: - KVM was used when probing capabilities: QEMU_CAPS_KVM is set QEMU_CAPS_ENABLE_KVM is not set - TCG was used and QEMU supports KVM, but it failed (e.g., missing kernel module or wrong /dev/kvm permissions) QEMU_CAPS_KVM is not set QEMU_CAPS_ENABLE_KVM is set - KVM was not used and QEMU does not support it QEMU_CAPS_KVM is not set QEMU_CAPS_ENABLE_KVM is not set Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 45 +++++++++++++++++++++++++++++++++++++++++--- src/qemu/qemu_capabilities.h | 3 --- src/qemu/qemu_capspriv.h | 8 ++++++++ tests/qemucapabilitiestest.c | 5 +++++ 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index fe0705f..590b802 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4026,6 +4026,25 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, } +int +virQEMUCapsInitQMPMonitorTCG(virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED, + qemuMonitorPtr mon) +{ + int ret = -1; + + if (qemuMonitorSetCapabilities(mon) < 0) { + VIR_DEBUG("Failed to set monitor capabilities %s", + virGetLastErrorMessage()); + ret = 0; + goto cleanup; + } + + ret = 0; + cleanup: + return ret; +} + + typedef struct _virQEMUCapsInitQMPCommand virQEMUCapsInitQMPCommand; typedef virQEMUCapsInitQMPCommand *virQEMUCapsInitQMPCommandPtr; struct _virQEMUCapsInitQMPCommand { @@ -4146,12 +4165,20 @@ virQEMUCapsInitQMPCommandNew(char *binary, static qemuMonitorPtr virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd, + bool forceTCG, bool *qemuFailed) { virDomainXMLOptionPtr xmlopt = NULL; + const char *machine; int status = 0; - VIR_DEBUG("Try to probe capabilities of '%s' via QMP", cmd->binary); + if (forceTCG) + machine = "none,accel=tcg"; + else + machine = "none,accel=kvm:tcg"; + + VIR_DEBUG("Try to probe capabilities of '%s' via QMP, machine %s", + cmd->binary, machine); /* * We explicitly need to use -daemonize here, rather than @@ -4165,7 +4192,7 @@ virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd, "-no-user-config", "-nodefaults", "-nographic", - "-machine", "none", + "-machine", machine, "-qmp", cmd->monarg, "-pidfile", cmd->pidfile, "-daemonize", @@ -4233,7 +4260,7 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, runUid, runGid, qmperr))) goto cleanup; - if (!(mon = virQEMUCapsInitQMPCommandRun(cmd, &qemuFailed))) { + if (!(mon = virQEMUCapsInitQMPCommandRun(cmd, false, &qemuFailed))) { if (qemuFailed) ret = 0; goto cleanup; @@ -4242,6 +4269,18 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps, if (virQEMUCapsInitQMPMonitor(qemuCaps, mon) < 0) goto cleanup; + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) { + virQEMUCapsInitQMPCommandAbort(cmd); + if (!(mon = virQEMUCapsInitQMPCommandRun(cmd, true, &qemuFailed))) { + if (qemuFailed) + ret = 0; + goto cleanup; + } + + if (virQEMUCapsInitQMPMonitorTCG(qemuCaps, mon) < 0) + goto cleanup; + } + ret = 0; cleanup: diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 9163572..bd7ff29 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -399,9 +399,6 @@ typedef virQEMUCapsCache *virQEMUCapsCachePtr; virQEMUCapsPtr virQEMUCapsNew(void); -int virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, - qemuMonitorPtr mon); - int virQEMUCapsProbeQMP(virQEMUCapsPtr qemuCaps, qemuMonitorPtr mon); diff --git a/src/qemu/qemu_capspriv.h b/src/qemu/qemu_capspriv.h index f8ee47e..38b971e 100644 --- a/src/qemu/qemu_capspriv.h +++ b/src/qemu/qemu_capspriv.h @@ -57,6 +57,14 @@ char *virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps, time_t selfCTime, unsigned long selfVersion); +int +virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, + qemuMonitorPtr mon); + +int +virQEMUCapsInitQMPMonitorTCG(virQEMUCapsPtr qemuCaps, + qemuMonitorPtr mon); + void virQEMUCapsSetArch(virQEMUCapsPtr qemuCaps, virArch arch); diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c index 10cfa43..fe41fc4 100644 --- a/tests/qemucapabilitiestest.c +++ b/tests/qemucapabilitiestest.c @@ -61,6 +61,11 @@ testQemuCaps(const void *opaque) qemuMonitorTestGetMonitor(mon)) < 0) goto cleanup; + if (virQEMUCapsGet(capsActual, QEMU_CAPS_KVM) && + virQEMUCapsInitQMPMonitorTCG(capsActual, + qemuMonitorTestGetMonitor(mon)) < 0) + goto cleanup; + if (!(actual = virQEMUCapsFormatCache(capsActual, 0, 0))) goto cleanup; -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:01AM +0100, Jiri Denemark wrote:
CPU related capabilities may differ depending on accelerator used when probing. Let's use KVM if available when probing QEMU and fall back to TCG. The created capabilities already contain all we need to distinguish whether KVM or TCG was used:
- KVM was used when probing capabilities: QEMU_CAPS_KVM is set QEMU_CAPS_ENABLE_KVM is not set
- TCG was used and QEMU supports KVM, but it failed (e.g., missing kernel module or wrong /dev/kvm permissions) QEMU_CAPS_KVM is not set QEMU_CAPS_ENABLE_KVM is set
- KVM was not used and QEMU does not support it QEMU_CAPS_KVM is not set QEMU_CAPS_ENABLE_KVM is not set
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 45 +++++++++++++++++++++++++++++++++++++++++--- src/qemu/qemu_capabilities.h | 3 --- src/qemu/qemu_capspriv.h | 8 ++++++++ tests/qemucapabilitiestest.c | 5 +++++ 4 files changed, 55 insertions(+), 6 deletions(-)
ACK Pavel

Since some may depend on the accelerator used when probing QEMU the cache becomes invalid when KVM becomes available or if it is not available anymore. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 37 ++++++++++++++++++++++++++++++++----- src/qemu/qemu_capabilities.h | 4 +++- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 590b802..75d635a 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3453,7 +3453,9 @@ virQEMUCapsReset(virQEMUCapsPtr qemuCaps) static int virQEMUCapsInitCached(virCapsPtr caps, virQEMUCapsPtr qemuCaps, - const char *cacheDir) + const char *cacheDir, + uid_t runUid, + gid_t runGid) { char *capsdir = NULL; char *capsfile = NULL; @@ -3503,7 +3505,7 @@ virQEMUCapsInitCached(virCapsPtr caps, goto discard; } - if (!virQEMUCapsIsValid(qemuCaps, qemuctime)) + if (!virQEMUCapsIsValid(qemuCaps, qemuctime, runUid, runGid)) goto discard; /* Discard cache if QEMU binary or libvirtd changed */ @@ -4350,7 +4352,8 @@ virQEMUCapsNewForBinaryInternal(virCapsPtr caps, if (!cacheDir) rv = 0; - else if ((rv = virQEMUCapsInitCached(caps, qemuCaps, cacheDir)) < 0) + else if ((rv = virQEMUCapsInitCached(caps, qemuCaps, cacheDir, + runUid, runGid)) < 0) goto error; if (rv == 0) { @@ -4405,8 +4408,12 @@ virQEMUCapsNewForBinary(virCapsPtr caps, bool virQEMUCapsIsValid(virQEMUCapsPtr qemuCaps, - time_t qemuctime) + time_t qemuctime, + uid_t runUid, + gid_t runGid) { + bool kvmUsable; + if (!qemuCaps->binary) return true; @@ -4431,6 +4438,26 @@ virQEMUCapsIsValid(virQEMUCapsPtr qemuCaps, return false; } + kvmUsable = virFileAccessibleAs("/dev/kvm", R_OK | W_OK, + runUid, runGid) == 0; + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM) && + virQEMUCapsGet(qemuCaps, QEMU_CAPS_ENABLE_KVM) && + kvmUsable) { + VIR_DEBUG("KVM was not enabled when probing '%s', " + "but it should be usable now", + qemuCaps->binary); + return false; + } + + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM) && + !kvmUsable) { + VIR_DEBUG("KVM was enabled when probing '%s', " + "but it is not available now", + qemuCaps->binary); + return false; + } + return true; } @@ -4524,7 +4551,7 @@ virQEMUCapsCacheLookup(virCapsPtr caps, virMutexLock(&cache->lock); ret = virHashLookup(cache->binaries, binary); if (ret && - !virQEMUCapsIsValid(ret, 0)) { + !virQEMUCapsIsValid(ret, 0, cache->runUid, cache->runGid)) { VIR_DEBUG("Cached capabilities %p no longer valid for %s", ret, binary); virHashRemoveEntry(cache->binaries, binary); diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index bd7ff29..8bd5eca 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -451,7 +451,9 @@ int virQEMUCapsGetMachineTypesCaps(virQEMUCapsPtr qemuCaps, virCapsGuestMachinePtr **machines); bool virQEMUCapsIsValid(virQEMUCapsPtr qemuCaps, - time_t ctime); + time_t ctime, + uid_t runUid, + gid_t runGid); void virQEMUCapsFilterByMachineType(virQEMUCapsPtr qemuCaps, const char *machineType); -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:02AM +0100, Jiri Denemark wrote:
Since some may depend on the accelerator used when probing QEMU the cache becomes invalid when KVM becomes available or if it is not available anymore.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 37 ++++++++++++++++++++++++++++++++----- src/qemu/qemu_capabilities.h | 4 +++- 2 files changed, 35 insertions(+), 6 deletions(-)
ACK Pavel

When domain capabilities were introduced we did not have enough data to decide whether KVM works on the host or not and thus working legacy/VFIO device assignment was used as a witness. Now that we know whether KVM was enabled when probing QEMU capabilities (and thus we know it's working), we can use this knowledge to provide better default value for virttype. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_driver.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d039255..925631b 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -18723,7 +18723,8 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, char *ret = NULL; virQEMUDriverPtr driver = conn->privateData; virQEMUCapsPtr qemuCaps = NULL; - int virttype; /* virDomainVirtType */ + int virttype = VIR_DOMAIN_VIRT_NONE; + virDomainVirtType capsType; virDomainCapsPtr domCaps = NULL; int arch = virArchFromHost(); /* virArch */ virQEMUDriverConfigPtr cfg = NULL; @@ -18739,12 +18740,6 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, if (!(caps = virQEMUDriverGetCapabilities(driver, false))) goto cleanup; - if (qemuHostdevHostSupportsPassthroughLegacy() || - qemuHostdevHostSupportsPassthroughVFIO()) - virttype = VIR_DOMAIN_VIRT_KVM; - else - virttype = VIR_DOMAIN_VIRT_QEMU; - if (virttype_str && (virttype = virDomainVirtTypeFromString(virttype_str)) < 0) { virReportError(VIR_ERR_INVALID_ARG, @@ -18808,6 +18803,14 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, machine = virQEMUCapsGetDefaultMachine(qemuCaps); } + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) + capsType = VIR_DOMAIN_VIRT_KVM; + else + capsType = VIR_DOMAIN_VIRT_QEMU; + + if (virttype == VIR_DOMAIN_VIRT_NONE) + virttype = capsType; + if (!(domCaps = virDomainCapsNew(emulatorbin, machine, arch, virttype))) goto cleanup; -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:03AM +0100, Jiri Denemark wrote:
When domain capabilities were introduced we did not have enough data to decide whether KVM works on the host or not and thus working legacy/VFIO device assignment was used as a witness. Now that we know whether KVM was enabled when probing QEMU capabilities (and thus we know it's working), we can use this knowledge to provide better default value for virttype.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_driver.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d039255..925631b 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -18723,7 +18723,8 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, char *ret = NULL; virQEMUDriverPtr driver = conn->privateData; virQEMUCapsPtr qemuCaps = NULL; - int virttype; /* virDomainVirtType */ + int virttype = VIR_DOMAIN_VIRT_NONE; + virDomainVirtType capsType; virDomainCapsPtr domCaps = NULL; int arch = virArchFromHost(); /* virArch */ virQEMUDriverConfigPtr cfg = NULL; @@ -18739,12 +18740,6 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, if (!(caps = virQEMUDriverGetCapabilities(driver, false))) goto cleanup;
- if (qemuHostdevHostSupportsPassthroughLegacy() || - qemuHostdevHostSupportsPassthroughVFIO()) - virttype = VIR_DOMAIN_VIRT_KVM; - else - virttype = VIR_DOMAIN_VIRT_QEMU; - if (virttype_str && (virttype = virDomainVirtTypeFromString(virttype_str)) < 0) { virReportError(VIR_ERR_INVALID_ARG, @@ -18808,6 +18803,14 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, machine = virQEMUCapsGetDefaultMachine(qemuCaps); }
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) + capsType = VIR_DOMAIN_VIRT_KVM; + else + capsType = VIR_DOMAIN_VIRT_QEMU; + + if (virttype == VIR_DOMAIN_VIRT_NONE) + virttype = capsType;
There is no need for the *capsType* variable, just move the "if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) ..." here and virttype can be set directly. ACK with that fixed. Pavel
+ if (!(domCaps = virDomainCapsNew(emulatorbin, machine, arch, virttype))) goto cleanup;
-- 2.10.2
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

If a user asked for a KVM domain capabilities when KVM is not available, we would happily return data we got when probing through TCG and pretended they were relevant for KVM. Let's just report KVM is not supported to avoid confusion. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_driver.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 925631b..09a8d06 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -18811,6 +18811,13 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, if (virttype == VIR_DOMAIN_VIRT_NONE) virttype = capsType; + if (virttype == VIR_DOMAIN_VIRT_KVM && capsType == VIR_DOMAIN_VIRT_QEMU) { + virReportError(VIR_ERR_INVALID_ARG, + _("KVM is not supported by '%s' on this host"), + emulatorbin); + goto cleanup; + } + if (!(domCaps = virDomainCapsNew(emulatorbin, machine, arch, virttype))) goto cleanup; -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:04AM +0100, Jiri Denemark wrote:
If a user asked for a KVM domain capabilities when KVM is not available, we would happily return data we got when probing through TCG and pretended they were relevant for KVM. Let's just report KVM is not supported to avoid confusion.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_driver.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 925631b..09a8d06 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -18811,6 +18811,13 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, if (virttype == VIR_DOMAIN_VIRT_NONE) virttype = capsType;
+ if (virttype == VIR_DOMAIN_VIRT_KVM && capsType == VIR_DOMAIN_VIRT_QEMU) { + virReportError(VIR_ERR_INVALID_ARG, + _("KVM is not supported by '%s' on this host"), + emulatorbin); + goto cleanup; + }
So this uses the *capsType* from the previous patch. ACK to this and previous patch, but for the sake of patch isolation the *capsType* should be introduced by this patch. I'll leave it up to you to decide if you want to make the patches looks better or not :). Pavel
+ if (!(domCaps = virDomainCapsNew(emulatorbin, machine, arch, virttype))) goto cleanup;
-- 2.10.2
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

The function is made a little bit more readable and the code which refreshes cached capabilities if they are not valid any more was moved into a separate function (virQEMUCapsCacheValidate) so that it can be reused in other places. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 59 +++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 75d635a..904289b 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4535,6 +4535,37 @@ virQEMUCapsCacheNew(const char *libDir, return NULL; } + +static void ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) +virQEMUCapsCacheValidate(virQEMUCapsCachePtr cache, + const char *binary, + virCapsPtr caps, + virQEMUCapsPtr *qemuCaps) +{ + if (*qemuCaps && + !virQEMUCapsIsValid(*qemuCaps, 0, cache->runUid, cache->runGid)) { + VIR_DEBUG("Cached capabilities %p no longer valid for %s", + *qemuCaps, binary); + virHashRemoveEntry(cache->binaries, binary); + *qemuCaps = NULL; + } + + if (!*qemuCaps) { + VIR_DEBUG("Creating capabilities for %s", binary); + *qemuCaps = virQEMUCapsNewForBinary(caps, binary, + cache->libDir, cache->cacheDir, + cache->runUid, cache->runGid); + if (*qemuCaps) { + VIR_DEBUG("Caching capabilities %p for %s", *qemuCaps, binary); + if (virHashAddEntry(cache->binaries, binary, *qemuCaps) < 0) { + virObjectUnref(*qemuCaps); + *qemuCaps = NULL; + } + } + } +} + + const char *qemuTestCapsName; virQEMUCapsPtr @@ -4549,32 +4580,14 @@ virQEMUCapsCacheLookup(virCapsPtr caps, binary = qemuTestCapsName; virMutexLock(&cache->lock); + ret = virHashLookup(cache->binaries, binary); - if (ret && - !virQEMUCapsIsValid(ret, 0, cache->runUid, cache->runGid)) { - VIR_DEBUG("Cached capabilities %p no longer valid for %s", - ret, binary); - virHashRemoveEntry(cache->binaries, binary); - ret = NULL; - } - if (!ret) { - VIR_DEBUG("Creating capabilities for %s", - binary); - ret = virQEMUCapsNewForBinary(caps, binary, cache->libDir, - cache->cacheDir, - cache->runUid, cache->runGid); - if (ret) { - VIR_DEBUG("Caching capabilities %p for %s", - ret, binary); - if (virHashAddEntry(cache->binaries, binary, ret) < 0) { - virObjectUnref(ret); - ret = NULL; - } - } - } - VIR_DEBUG("Returning caps %p for %s", ret, binary); + virQEMUCapsCacheValidate(cache, binary, caps, &ret); virObjectRef(ret); + virMutexUnlock(&cache->lock); + + VIR_DEBUG("Returning caps %p for %s", ret, binary); return ret; } -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:05AM +0100, Jiri Denemark wrote:
The function is made a little bit more readable and the code which refreshes cached capabilities if they are not valid any more was moved into a separate function (virQEMUCapsCacheValidate) so that it can be reused in other places.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 59 +++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 23 deletions(-)
ACK Pavel

The function just returned cached capabilities without checking whether they are still valid. We should check that and refresh the capabilities to make sure we don't return stale data. In other words, we should do what all other lookup functions do. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 19 ++++++++++++++++++- src/qemu/qemu_capabilities.h | 3 ++- src/qemu/qemu_driver.c | 3 ++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 904289b..913a22a 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4624,7 +4624,8 @@ virQEMUCapsCompareArch(const void *payload, virQEMUCapsPtr -virQEMUCapsCacheLookupByArch(virQEMUCapsCachePtr cache, +virQEMUCapsCacheLookupByArch(virCapsPtr caps, + virQEMUCapsCachePtr cache, virArch arch) { virQEMUCapsPtr ret = NULL; @@ -4642,6 +4643,22 @@ virQEMUCapsCacheLookupByArch(virQEMUCapsCachePtr cache, ret = virHashSearch(cache->binaries, virQEMUCapsCompareArch, &data); } } + + if (ret) { + char *binary; + + if (VIR_STRDUP(binary, ret->binary) < 0) { + ret = NULL; + } else { + virQEMUCapsCacheValidate(cache, binary, caps, &ret); + VIR_FREE(binary); + } + } else { + virReportError(VIR_ERR_INVALID_ARG, + _("unable to find any emulator to serve '%s' " + "architecture"), virArchToString(arch)); + } + virObjectRef(ret); virMutexUnlock(&cache->lock); diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 8bd5eca..beeed2e 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -473,7 +473,8 @@ virQEMUCapsPtr virQEMUCapsCacheLookupCopy(virCapsPtr caps, virQEMUCapsCachePtr cache, const char *binary, const char *machineType); -virQEMUCapsPtr virQEMUCapsCacheLookupByArch(virQEMUCapsCachePtr cache, +virQEMUCapsPtr virQEMUCapsCacheLookupByArch(virCapsPtr caps, + virQEMUCapsCachePtr cache, virArch arch); void virQEMUCapsCacheFree(virQEMUCapsCachePtr cache); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 09a8d06..17bba48 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -18778,7 +18778,8 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, goto cleanup; } } else { - if (!(qemuCaps = virQEMUCapsCacheLookupByArch(driver->qemuCapsCache, + if (!(qemuCaps = virQEMUCapsCacheLookupByArch(caps, + driver->qemuCapsCache, arch))) { virReportError(VIR_ERR_INVALID_ARG, _("unable to find any emulator to serve '%s' " -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:06AM +0100, Jiri Denemark wrote:
The function just returned cached capabilities without checking whether they are still valid. We should check that and refresh the capabilities to make sure we don't return stale data. In other words, we should do what all other lookup functions do.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 19 ++++++++++++++++++- src/qemu/qemu_capabilities.h | 3 ++- src/qemu/qemu_driver.c | 3 ++- 3 files changed, 22 insertions(+), 3 deletions(-)
ACK Pavel

This patch moves the CPU models parsing code from virQEMUCapsLoadCache into a separate function. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 70 +++++++++++++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 913a22a..7abdc2b 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3002,6 +3002,52 @@ virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps, } +static int +virQEMUCapsLoadCPUModels(virQEMUCapsPtr qemuCaps, + xmlXPathContextPtr ctxt) +{ + xmlNodePtr *nodes = NULL; + char *str = NULL; + size_t i; + int n; + int ret = -1; + + if ((n = virXPathNodeSet("./cpu", ctxt, &nodes)) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("failed to parse qemu capabilities cpus")); + goto cleanup; + } + + if (n == 0) { + ret = 0; + goto cleanup; + } + + if (!(qemuCaps->cpuDefinitions = virDomainCapsCPUModelsNew(n))) + goto cleanup; + + for (i = 0; i < n; i++) { + if (!(str = virXMLPropString(nodes[i], "name"))) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("missing cpu name in QEMU capabilities cache")); + goto cleanup; + } + + if (virDomainCapsCPUModelsAddSteal(qemuCaps->cpuDefinitions, + &str, + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) + goto cleanup; + } + + ret = 0; + + cleanup: + VIR_FREE(nodes); + VIR_FREE(str); + return ret; +} + + /* * Parsing a doc that looks like * @@ -3130,30 +3176,8 @@ virQEMUCapsLoadCache(virCapsPtr caps, } VIR_FREE(str); - if ((n = virXPathNodeSet("./cpu", ctxt, &nodes)) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("failed to parse qemu capabilities cpus")); + if (virQEMUCapsLoadCPUModels(qemuCaps, ctxt) < 0) goto cleanup; - } - if (n > 0) { - if (!(qemuCaps->cpuDefinitions = virDomainCapsCPUModelsNew(n))) - goto cleanup; - - for (i = 0; i < n; i++) { - if (!(str = virXMLPropString(nodes[i], "name"))) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("missing cpu name in QEMU capabilities cache")); - goto cleanup; - } - - if (virDomainCapsCPUModelsAddSteal(qemuCaps->cpuDefinitions, - &str, - VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) - goto cleanup; - } - } - VIR_FREE(nodes); - if ((n = virXPathNodeSet("./machine", ctxt, &nodes)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:07AM +0100, Jiri Denemark wrote:
This patch moves the CPU models parsing code from virQEMUCapsLoadCache into a separate function.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 70 +++++++++++++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 23 deletions(-)
ACK Pavel

This patch moves the CPU models formatting code from virQEMUCapsFormatCache into a separate function. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 7abdc2b..aa64d08 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3292,6 +3292,21 @@ virQEMUCapsLoadCache(virCapsPtr caps, } +static void +virQEMUCapsFormatCPUModels(virQEMUCapsPtr qemuCaps, + virBufferPtr buf) +{ + size_t i; + + if (qemuCaps->cpuDefinitions) { + for (i = 0; i < qemuCaps->cpuDefinitions->nmodels; i++) { + virDomainCapsCPUModelPtr cpu = qemuCaps->cpuDefinitions->models + i; + virBufferEscapeString(buf, "<cpu name='%s'/>\n", cpu->name); + } + } +} + + char * virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps, time_t selfCTime, @@ -3334,12 +3349,7 @@ virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps, virBufferAsprintf(&buf, "<arch>%s</arch>\n", virArchToString(qemuCaps->arch)); - if (qemuCaps->cpuDefinitions) { - for (i = 0; i < qemuCaps->cpuDefinitions->nmodels; i++) { - virDomainCapsCPUModelPtr cpu = qemuCaps->cpuDefinitions->models + i; - virBufferEscapeString(&buf, "<cpu name='%s'/>\n", cpu->name); - } - } + virQEMUCapsFormatCPUModels(qemuCaps, &buf); for (i = 0; i < qemuCaps->nmachineTypes; i++) { virBufferEscapeString(&buf, "<machine name='%s'", -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:08AM +0100, Jiri Denemark wrote:
This patch moves the CPU models formatting code from virQEMUCapsFormatCache into a separate function.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-)
ACK Pavel

CPU models (and especially some additional details which we will start probing for later) differ depending on the accelerator. Thus we need to call query-cpu-definitions in both KVM and TCG mode to get all data we want. Tests in tests/domaincapstest.c are temporarily switched to TCG to avoid having to squash even more stuff into this single patch. They will all be switched back later in separate commits. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 171 +++- src/qemu/qemu_capabilities.h | 2 + src/qemu/qemu_process.c | 3 +- tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 4 +- .../qemu_2.6.0-gicv2-virt.aarch64.xml | 4 +- .../qemu_2.6.0-gicv3-virt.aarch64.xml | 6 +- tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 4 +- tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml | 4 +- tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml | 4 +- tests/domaincapstest.c | 12 +- tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml | 44 +- tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml | 48 +- tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml | 48 +- tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 48 +- tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 48 +- tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 48 +- tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 50 +- tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 56 +- tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 56 +- .../caps_2.6.0-gicv2.aarch64.xml | 60 +- .../caps_2.6.0-gicv3.aarch64.xml | 60 +- tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 860 ++++++++++----------- tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 56 +- tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 58 +- tests/qemuxml2argvtest.c | 25 +- 25 files changed, 944 insertions(+), 835 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index aa64d08..422e50c 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -386,7 +386,8 @@ struct _virQEMUCaps { virArch arch; - virDomainCapsCPUModelsPtr cpuDefinitions; + virDomainCapsCPUModelsPtr kvmCPUModels; + virDomainCapsCPUModelsPtr tcgCPUModels; size_t nmachineTypes; struct virQEMUCapsMachineType *machineTypes; @@ -690,7 +691,16 @@ virQEMUCapsParseX86Models(const char *output, goto error; } while ((p = next)); - qemuCaps->cpuDefinitions = cpus; + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) { + virDomainCapsCPUModelsPtr kvmCPUs; + + if (!(kvmCPUs = virDomainCapsCPUModelsCopy(cpus))) + goto error; + + qemuCaps->kvmCPUModels = kvmCPUs; + } + qemuCaps->tcgCPUModels = cpus; + return 0; error: @@ -739,7 +749,16 @@ virQEMUCapsParsePPCModels(const char *output, goto error; } while ((p = next)); - qemuCaps->cpuDefinitions = cpus; + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) { + virDomainCapsCPUModelsPtr kvmCPUs; + + if (!(kvmCPUs = virDomainCapsCPUModelsCopy(cpus))) + goto error; + + qemuCaps->kvmCPUModels = kvmCPUs; + } + qemuCaps->tcgCPUModels = cpus; + return 0; error: @@ -2121,9 +2140,15 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps) ret->arch = qemuCaps->arch; - if (qemuCaps->cpuDefinitions) { - ret->cpuDefinitions = virDomainCapsCPUModelsCopy(qemuCaps->cpuDefinitions); - if (!ret->cpuDefinitions) + if (qemuCaps->kvmCPUModels) { + ret->kvmCPUModels = virDomainCapsCPUModelsCopy(qemuCaps->kvmCPUModels); + if (!ret->kvmCPUModels) + goto error; + } + + if (qemuCaps->tcgCPUModels) { + ret->tcgCPUModels = virDomainCapsCPUModelsCopy(qemuCaps->tcgCPUModels); + if (!ret->tcgCPUModels) goto error; } @@ -2167,7 +2192,8 @@ void virQEMUCapsDispose(void *obj) } VIR_FREE(qemuCaps->machineTypes); - virObjectUnref(qemuCaps->cpuDefinitions); + virObjectUnref(qemuCaps->kvmCPUModels); + virObjectUnref(qemuCaps->tcgCPUModels); virBitmapFree(qemuCaps->flags); @@ -2318,17 +2344,30 @@ const char *virQEMUCapsGetPackage(virQEMUCapsPtr qemuCaps) int virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps, + virDomainVirtType type, const char **name, size_t count) { size_t i; + virDomainCapsCPUModelsPtr cpus = NULL; - if (!qemuCaps->cpuDefinitions && - !(qemuCaps->cpuDefinitions = virDomainCapsCPUModelsNew(count))) - return -1; + if (type == VIR_DOMAIN_VIRT_KVM && qemuCaps->kvmCPUModels) + cpus = qemuCaps->kvmCPUModels; + else if (type == VIR_DOMAIN_VIRT_QEMU && qemuCaps->tcgCPUModels) + cpus = qemuCaps->tcgCPUModels; + + if (!cpus) { + if (!(cpus = virDomainCapsCPUModelsNew(count))) + return -1; + + if (type == VIR_DOMAIN_VIRT_KVM) + qemuCaps->kvmCPUModels = cpus; + else + qemuCaps->tcgCPUModels = cpus; + } for (i = 0; i < count; i++) { - if (virDomainCapsCPUModelsAdd(qemuCaps->cpuDefinitions, name[i], -1, + if (virDomainCapsCPUModelsAdd(cpus, name[i], -1, VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; } @@ -2339,31 +2378,38 @@ virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps, int virQEMUCapsGetCPUDefinitions(virQEMUCapsPtr qemuCaps, + virDomainVirtType type, char ***names, size_t *count) { size_t i; char **models = NULL; + virDomainCapsCPUModelsPtr cpus; *count = 0; if (names) *names = NULL; - if (!qemuCaps->cpuDefinitions) + if (type == VIR_DOMAIN_VIRT_KVM) + cpus = qemuCaps->kvmCPUModels; + else + cpus = qemuCaps->tcgCPUModels; + + if (!cpus) return 0; - if (names && VIR_ALLOC_N(models, qemuCaps->cpuDefinitions->nmodels) < 0) + if (names && VIR_ALLOC_N(models, cpus->nmodels) < 0) return -1; - for (i = 0; i < qemuCaps->cpuDefinitions->nmodels; i++) { - virDomainCapsCPUModelPtr cpu = qemuCaps->cpuDefinitions->models + i; + for (i = 0; i < cpus->nmodels; i++) { + virDomainCapsCPUModelPtr cpu = cpus->models + i; if (models && VIR_STRDUP(models[i], cpu->name) < 0) goto error; } if (names) *names = models; - *count = qemuCaps->cpuDefinitions->nmodels; + *count = cpus->nmodels; return 0; error: @@ -2385,6 +2431,8 @@ virQEMUCapsIsCPUModeSupported(virQEMUCapsPtr qemuCaps, virDomainVirtType type, virCPUMode mode) { + virDomainCapsCPUModelsPtr cpus; + switch (mode) { case VIR_CPU_MODE_HOST_PASSTHROUGH: return type == VIR_DOMAIN_VIRT_KVM && @@ -2394,8 +2442,11 @@ virQEMUCapsIsCPUModeSupported(virQEMUCapsPtr qemuCaps, return !!qemuCaps->hostCPUModel; case VIR_CPU_MODE_CUSTOM: - return qemuCaps->cpuDefinitions && - qemuCaps->cpuDefinitions->nmodels > 0; + if (type == VIR_DOMAIN_VIRT_KVM) + cpus = qemuCaps->kvmCPUModels; + else + cpus = qemuCaps->tcgCPUModels; + return cpus && cpus->nmodels > 0; case VIR_CPU_MODE_LAST: break; @@ -2712,8 +2763,10 @@ virQEMUCapsProbeQMPMachineTypes(virQEMUCapsPtr qemuCaps, static int virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps, - qemuMonitorPtr mon) + qemuMonitorPtr mon, + bool tcg) { + virDomainCapsCPUModelsPtr models; qemuMonitorCPUDefInfoPtr *cpus; int ncpus; int ret = -1; @@ -2722,11 +2775,16 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps, if ((ncpus = qemuMonitorGetCPUDefinitions(mon, &cpus)) < 0) return -1; - if (!(qemuCaps->cpuDefinitions = virDomainCapsCPUModelsNew(ncpus))) + if (!(models = virDomainCapsCPUModelsNew(ncpus))) goto cleanup; + if (tcg || !virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) + qemuCaps->tcgCPUModels = models; + else + qemuCaps->kvmCPUModels = models; + for (i = 0; i < ncpus; i++) { - if (virDomainCapsCPUModelsAddSteal(qemuCaps->cpuDefinitions, + if (virDomainCapsCPUModelsAddSteal(models, &cpus[i]->name, VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) goto cleanup; @@ -3004,15 +3062,22 @@ virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps, static int virQEMUCapsLoadCPUModels(virQEMUCapsPtr qemuCaps, - xmlXPathContextPtr ctxt) + xmlXPathContextPtr ctxt, + virDomainVirtType type) { + virDomainCapsCPUModelsPtr cpus = NULL; xmlNodePtr *nodes = NULL; char *str = NULL; size_t i; int n; int ret = -1; - if ((n = virXPathNodeSet("./cpu", ctxt, &nodes)) < 0) { + if (type == VIR_DOMAIN_VIRT_KVM) + n = virXPathNodeSet("./cpu[@type='kvm']", ctxt, &nodes); + else + n = virXPathNodeSet("./cpu[@type='tcg']", ctxt, &nodes); + + if (n < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to parse qemu capabilities cpus")); goto cleanup; @@ -3023,9 +3088,14 @@ virQEMUCapsLoadCPUModels(virQEMUCapsPtr qemuCaps, goto cleanup; } - if (!(qemuCaps->cpuDefinitions = virDomainCapsCPUModelsNew(n))) + if (!(cpus = virDomainCapsCPUModelsNew(n))) goto cleanup; + if (type == VIR_DOMAIN_VIRT_KVM) + qemuCaps->kvmCPUModels = cpus; + else + qemuCaps->tcgCPUModels = cpus; + for (i = 0; i < n; i++) { if (!(str = virXMLPropString(nodes[i], "name"))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -3033,8 +3103,7 @@ virQEMUCapsLoadCPUModels(virQEMUCapsPtr qemuCaps, goto cleanup; } - if (virDomainCapsCPUModelsAddSteal(qemuCaps->cpuDefinitions, - &str, + if (virDomainCapsCPUModelsAddSteal(cpus, &str, VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) goto cleanup; } @@ -3176,7 +3245,8 @@ virQEMUCapsLoadCache(virCapsPtr caps, } VIR_FREE(str); - if (virQEMUCapsLoadCPUModels(qemuCaps, ctxt) < 0) + if (virQEMUCapsLoadCPUModels(qemuCaps, ctxt, VIR_DOMAIN_VIRT_KVM) < 0 || + virQEMUCapsLoadCPUModels(qemuCaps, ctxt, VIR_DOMAIN_VIRT_QEMU) < 0) goto cleanup; if ((n = virXPathNodeSet("./machine", ctxt, &nodes)) < 0) { @@ -3294,15 +3364,27 @@ virQEMUCapsLoadCache(virCapsPtr caps, static void virQEMUCapsFormatCPUModels(virQEMUCapsPtr qemuCaps, - virBufferPtr buf) + virBufferPtr buf, + virDomainVirtType type) { + virDomainCapsCPUModelsPtr cpus; + const char *typeStr; size_t i; - if (qemuCaps->cpuDefinitions) { - for (i = 0; i < qemuCaps->cpuDefinitions->nmodels; i++) { - virDomainCapsCPUModelPtr cpu = qemuCaps->cpuDefinitions->models + i; - virBufferEscapeString(buf, "<cpu name='%s'/>\n", cpu->name); - } + if (type == VIR_DOMAIN_VIRT_KVM) { + typeStr = "kvm"; + cpus = qemuCaps->kvmCPUModels; + } else { + typeStr = "tcg"; + cpus = qemuCaps->tcgCPUModels; + } + + if (!cpus) + return; + + for (i = 0; i < cpus->nmodels; i++) { + virBufferAsprintf(buf, "<cpu type='%s' ", typeStr); + virBufferEscapeString(buf, "name='%s'/>\n", cpus->models[i].name); } } @@ -3349,7 +3431,8 @@ virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps, virBufferAsprintf(&buf, "<arch>%s</arch>\n", virArchToString(qemuCaps->arch)); - virQEMUCapsFormatCPUModels(qemuCaps, &buf); + virQEMUCapsFormatCPUModels(qemuCaps, &buf, VIR_DOMAIN_VIRT_KVM); + virQEMUCapsFormatCPUModels(qemuCaps, &buf, VIR_DOMAIN_VIRT_QEMU); for (i = 0; i < qemuCaps->nmachineTypes; i++) { virBufferEscapeString(&buf, "<machine name='%s'", @@ -3466,8 +3549,10 @@ virQEMUCapsReset(virQEMUCapsPtr qemuCaps) qemuCaps->arch = VIR_ARCH_NONE; qemuCaps->usedQMP = false; - virObjectUnref(qemuCaps->cpuDefinitions); - qemuCaps->cpuDefinitions = NULL; + virObjectUnref(qemuCaps->kvmCPUModels); + qemuCaps->kvmCPUModels = NULL; + virObjectUnref(qemuCaps->tcgCPUModels); + qemuCaps->tcgCPUModels = NULL; for (i = 0; i < qemuCaps->nmachineTypes; i++) { VIR_FREE(qemuCaps->machineTypes[i].name); @@ -4027,7 +4112,7 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps, goto cleanup; if (virQEMUCapsProbeQMPMachineTypes(qemuCaps, mon) < 0) goto cleanup; - if (virQEMUCapsProbeQMPCPUDefinitions(qemuCaps, mon) < 0) + if (virQEMUCapsProbeQMPCPUDefinitions(qemuCaps, mon, false) < 0) goto cleanup; if (virQEMUCapsProbeQMPTPM(qemuCaps, mon) < 0) goto cleanup; @@ -4075,6 +4160,9 @@ virQEMUCapsInitQMPMonitorTCG(virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED, goto cleanup; } + if (virQEMUCapsProbeQMPCPUDefinitions(qemuCaps, mon, true) < 0) + goto cleanup; + ret = 0; cleanup: return ret; @@ -4862,7 +4950,14 @@ virQEMUCapsFillDomainCPUCaps(virCapsPtr caps, char **models = NULL; if (virCPUGetModels(domCaps->arch, &models) >= 0) { - filtered = virDomainCapsCPUModelsFilter(qemuCaps->cpuDefinitions, + virDomainCapsCPUModelsPtr cpus; + + if (domCaps->virttype == VIR_DOMAIN_VIRT_KVM) + cpus = qemuCaps->kvmCPUModels; + else + cpus = qemuCaps->tcgCPUModels; + + filtered = virDomainCapsCPUModelsFilter(cpus, (const char **) models); virStringFreeList(models); } diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index beeed2e..2f24452 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -430,9 +430,11 @@ unsigned int virQEMUCapsGetVersion(virQEMUCapsPtr qemuCaps); const char *virQEMUCapsGetPackage(virQEMUCapsPtr qemuCaps); unsigned int virQEMUCapsGetKVMVersion(virQEMUCapsPtr qemuCaps); int virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps, + virDomainVirtType type, const char **name, size_t count); int virQEMUCapsGetCPUDefinitions(virQEMUCapsPtr qemuCaps, + virDomainVirtType type, char ***names, size_t *count); virCPUDefPtr virQEMUCapsGetHostModel(virQEMUCapsPtr qemuCaps); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 3552a31..8920464 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5085,7 +5085,8 @@ qemuProcessUpdateGuestCPU(virDomainDefPtr def, virQEMUCapsGetHostModel(qemuCaps)) < 0) goto cleanup; - if (virQEMUCapsGetCPUDefinitions(qemuCaps, &models, &nmodels) < 0 || + if (virQEMUCapsGetCPUDefinitions(qemuCaps, def->virtType, + &models, &nmodels) < 0 || virCPUTranslate(def->os.arch, def->cpu, (const char **) models, nmodels) < 0) goto cleanup; diff --git a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml index 4aa475c..67f7ee8 100644 --- a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-x86_64</path> - <domain>kvm</domain> + <domain>qemu</domain> <machine>pc-i440fx-1.7</machine> <arch>x86_64</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='yes'/> + <mode name='host-passthrough' supported='no'/> <mode name='host-model' supported='yes'> <model fallback='allow'>Broadwell</model> </mode> diff --git a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml index 76aee83..a2702f4 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-aarch64</path> - <domain>kvm</domain> + <domain>qemu</domain> <machine>virt-2.6</machine> <arch>aarch64</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='yes'/> + <mode name='host-passthrough' supported='no'/> <mode name='host-model' supported='no'/> <mode name='custom' supported='yes'> <model usable='unknown'>pxa262</model> diff --git a/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml index 104c29f..a2702f4 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-aarch64</path> - <domain>kvm</domain> + <domain>qemu</domain> <machine>virt-2.6</machine> <arch>aarch64</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='yes'/> + <mode name='host-passthrough' supported='no'/> <mode name='host-model' supported='no'/> <mode name='custom' supported='yes'> <model usable='unknown'>pxa262</model> @@ -108,7 +108,7 @@ <features> <gic supported='yes'> <enum name='version'> - <value>3</value> + <value>2</value> </enum> </gic> </features> diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml index ca511f4..d2a2e7b 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-aarch64</path> - <domain>kvm</domain> + <domain>qemu</domain> <machine>integratorcp</machine> <arch>aarch64</arch> <vcpu max='1'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='yes'/> + <mode name='host-passthrough' supported='no'/> <mode name='host-model' supported='no'/> <mode name='custom' supported='yes'> <model usable='unknown'>pxa262</model> diff --git a/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml b/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml index a75764c..f6a98f7 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-ppc64</path> - <domain>kvm</domain> + <domain>qemu</domain> <machine>pseries-2.6</machine> <arch>ppc64le</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='yes'/> + <mode name='host-passthrough' supported='no'/> <mode name='host-model' supported='yes'> <model fallback='allow'>POWER8</model> </mode> diff --git a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml index a8975e8..33c6eda 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-x86_64</path> - <domain>kvm</domain> + <domain>qemu</domain> <machine>pc-i440fx-2.6</machine> <arch>x86_64</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='yes'/> + <mode name='host-passthrough' supported='no'/> <mode name='host-model' supported='yes'> <model fallback='allow'>Broadwell</model> </mode> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index e70fa05..74a16ce 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -413,27 +413,27 @@ mymain(void) DO_TEST_QEMU("1.7.0", "caps_1.7.0", "/usr/bin/qemu-system-x86_64", NULL, - "x86_64", VIR_DOMAIN_VIRT_KVM); + "x86_64", VIR_DOMAIN_VIRT_QEMU); DO_TEST_QEMU("2.6.0", "caps_2.6.0", "/usr/bin/qemu-system-x86_64", NULL, - "x86_64", VIR_DOMAIN_VIRT_KVM); + "x86_64", VIR_DOMAIN_VIRT_QEMU); DO_TEST_QEMU("2.6.0", "caps_2.6.0-gicv2", "/usr/bin/qemu-system-aarch64", NULL, - "aarch64", VIR_DOMAIN_VIRT_KVM); + "aarch64", VIR_DOMAIN_VIRT_QEMU); DO_TEST_QEMU("2.6.0-gicv2", "caps_2.6.0-gicv2", "/usr/bin/qemu-system-aarch64", "virt", - "aarch64", VIR_DOMAIN_VIRT_KVM); + "aarch64", VIR_DOMAIN_VIRT_QEMU); DO_TEST_QEMU("2.6.0-gicv3", "caps_2.6.0-gicv3", "/usr/bin/qemu-system-aarch64", "virt", - "aarch64", VIR_DOMAIN_VIRT_KVM); + "aarch64", VIR_DOMAIN_VIRT_QEMU); DO_TEST_QEMU("2.6.0", "caps_2.6.0", "/usr/bin/qemu-system-ppc64", NULL, - "ppc64le", VIR_DOMAIN_VIRT_KVM); + "ppc64le", VIR_DOMAIN_VIRT_QEMU); #endif /* WITH_QEMU */ diff --git a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml index 0d792be..fd44d33 100644 --- a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml @@ -114,28 +114,28 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='qemu64'/> - <cpu name='phenom'/> - <cpu name='core2duo'/> - <cpu name='kvm64'/> - <cpu name='qemu32'/> - <cpu name='kvm32'/> - <cpu name='coreduo'/> - <cpu name='486'/> - <cpu name='pentium'/> - <cpu name='pentium2'/> - <cpu name='pentium3'/> - <cpu name='athlon'/> - <cpu name='n270'/> - <cpu name='Conroe'/> - <cpu name='Penryn'/> - <cpu name='Nehalem'/> - <cpu name='Westmere'/> - <cpu name='SandyBridge'/> - <cpu name='Opteron_G1'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G4'/> + <cpu type='tcg' name='qemu64'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G4'/> <machine name='pc-1.2' alias='pc' maxCpus='0'/> <machine name='isapc' maxCpus='0'/> <machine name='pc-0.10' maxCpus='0'/> diff --git a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml index 97b9858..4a184c4 100644 --- a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml @@ -132,30 +132,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='qemu64'/> - <cpu name='phenom'/> - <cpu name='core2duo'/> - <cpu name='kvm64'/> - <cpu name='qemu32'/> - <cpu name='kvm32'/> - <cpu name='coreduo'/> - <cpu name='486'/> - <cpu name='pentium'/> - <cpu name='pentium2'/> - <cpu name='pentium3'/> - <cpu name='athlon'/> - <cpu name='n270'/> - <cpu name='Conroe'/> - <cpu name='Penryn'/> - <cpu name='Nehalem'/> - <cpu name='Westmere'/> - <cpu name='SandyBridge'/> - <cpu name='Haswell'/> - <cpu name='Opteron_G1'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G5'/> + <cpu type='tcg' name='qemu64'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G5'/> <machine name='pc-1.3' alias='pc' maxCpus='0'/> <machine name='q35-next' alias='q35' maxCpus='0'/> <machine name='isapc' maxCpus='0'/> diff --git a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml index 60dea6f..14b0a93 100644 --- a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml @@ -133,30 +133,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Haswell'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-1.4' alias='pc' maxCpus='0'/> <machine name='pc-q35-1.4' alias='q35' maxCpus='0'/> <machine name='isapc' maxCpus='0'/> diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml index cc4ffef..5b5a3d1 100644 --- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml @@ -143,30 +143,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Haswell'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-1.5' alias='pc' maxCpus='255'/> <machine name='pc-q35-1.4' maxCpus='255'/> <machine name='pc-q35-1.5' alias='q35' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml index 8e0e697..0c1db8e 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml @@ -148,30 +148,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Haswell'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-1.6' alias='pc' maxCpus='255'/> <machine name='pc-q35-1.4' maxCpus='255'/> <machine name='pc-q35-1.5' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml index 40acf62..a37936f 100644 --- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml @@ -150,30 +150,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Haswell'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-1.7' alias='pc' maxCpus='255'/> <machine name='pc-q35-1.4' maxCpus='255'/> <machine name='pc-q35-1.5' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml index a8a79af..11b5108 100644 --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml @@ -165,31 +165,31 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Broadwell'/> - <cpu name='Haswell'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Broadwell'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-2.1' alias='pc' maxCpus='255'/> <machine name='pc-1.3' maxCpus='255'/> <machine name='pc-0.12' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml index 3162758..e975c30 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml @@ -185,34 +185,34 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Broadwell'/> - <cpu name='Broadwell-noTSX'/> - <cpu name='Haswell'/> - <cpu name='Haswell-noTSX'/> - <cpu name='IvyBridge'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Broadwell'/> + <cpu type='tcg' name='Broadwell-noTSX'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='Haswell-noTSX'/> + <cpu type='tcg' name='IvyBridge'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-2.4' alias='pc' maxCpus='255'/> <machine name='pc-1.3' maxCpus='255'/> <machine name='pc-0.12' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml index bea01c7..4dc2807 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml @@ -191,34 +191,34 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Broadwell'/> - <cpu name='Broadwell-noTSX'/> - <cpu name='Haswell'/> - <cpu name='Haswell-noTSX'/> - <cpu name='IvyBridge'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Broadwell'/> + <cpu type='tcg' name='Broadwell-noTSX'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='Haswell-noTSX'/> + <cpu type='tcg' name='IvyBridge'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-2.5' alias='pc' maxCpus='255'/> <machine name='pc-i440fx-2.4' maxCpus='255'/> <machine name='pc-1.3' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml index b283444..debee6d 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml @@ -166,36 +166,36 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>aarch64</arch> - <cpu name='pxa262'/> - <cpu name='pxa270-a0'/> - <cpu name='arm1136'/> - <cpu name='cortex-a15'/> - <cpu name='pxa260'/> - <cpu name='arm1136-r2'/> - <cpu name='pxa261'/> - <cpu name='pxa255'/> - <cpu name='arm926'/> - <cpu name='arm11mpcore'/> - <cpu name='pxa250'/> - <cpu name='ti925t'/> - <cpu name='cortex-a57'/> - <cpu name='sa1110'/> - <cpu name='arm1176'/> - <cpu name='cortex-a53'/> - <cpu name='sa1100'/> - <cpu name='pxa270-c5'/> - <cpu name='cortex-a9'/> - <cpu name='cortex-a8'/> - <cpu name='pxa270-c0'/> - <cpu name='arm1026'/> - <cpu name='pxa270-b1'/> - <cpu name='cortex-m3'/> - <cpu name='cortex-m4'/> - <cpu name='pxa270-b0'/> - <cpu name='arm946'/> - <cpu name='cortex-r5'/> - <cpu name='pxa270-a1'/> - <cpu name='pxa270'/> + <cpu type='tcg' name='pxa262'/> + <cpu type='tcg' name='pxa270-a0'/> + <cpu type='tcg' name='arm1136'/> + <cpu type='tcg' name='cortex-a15'/> + <cpu type='tcg' name='pxa260'/> + <cpu type='tcg' name='arm1136-r2'/> + <cpu type='tcg' name='pxa261'/> + <cpu type='tcg' name='pxa255'/> + <cpu type='tcg' name='arm926'/> + <cpu type='tcg' name='arm11mpcore'/> + <cpu type='tcg' name='pxa250'/> + <cpu type='tcg' name='ti925t'/> + <cpu type='tcg' name='cortex-a57'/> + <cpu type='tcg' name='sa1110'/> + <cpu type='tcg' name='arm1176'/> + <cpu type='tcg' name='cortex-a53'/> + <cpu type='tcg' name='sa1100'/> + <cpu type='tcg' name='pxa270-c5'/> + <cpu type='tcg' name='cortex-a9'/> + <cpu type='tcg' name='cortex-a8'/> + <cpu type='tcg' name='pxa270-c0'/> + <cpu type='tcg' name='arm1026'/> + <cpu type='tcg' name='pxa270-b1'/> + <cpu type='tcg' name='cortex-m3'/> + <cpu type='tcg' name='cortex-m4'/> + <cpu type='tcg' name='pxa270-b0'/> + <cpu type='tcg' name='arm946'/> + <cpu type='tcg' name='cortex-r5'/> + <cpu type='tcg' name='pxa270-a1'/> + <cpu type='tcg' name='pxa270'/> <machine name='integratorcp' maxCpus='1'/> <machine name='nuri' maxCpus='2'/> <machine name='verdex' maxCpus='1'/> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml index 612a747..d5a4cbb 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml @@ -166,36 +166,36 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>aarch64</arch> - <cpu name='pxa262'/> - <cpu name='pxa270-a0'/> - <cpu name='arm1136'/> - <cpu name='cortex-a15'/> - <cpu name='pxa260'/> - <cpu name='arm1136-r2'/> - <cpu name='pxa261'/> - <cpu name='pxa255'/> - <cpu name='arm926'/> - <cpu name='arm11mpcore'/> - <cpu name='pxa250'/> - <cpu name='ti925t'/> - <cpu name='cortex-a57'/> - <cpu name='sa1110'/> - <cpu name='arm1176'/> - <cpu name='cortex-a53'/> - <cpu name='sa1100'/> - <cpu name='pxa270-c5'/> - <cpu name='cortex-a9'/> - <cpu name='cortex-a8'/> - <cpu name='pxa270-c0'/> - <cpu name='arm1026'/> - <cpu name='pxa270-b1'/> - <cpu name='cortex-m3'/> - <cpu name='cortex-m4'/> - <cpu name='pxa270-b0'/> - <cpu name='arm946'/> - <cpu name='cortex-r5'/> - <cpu name='pxa270-a1'/> - <cpu name='pxa270'/> + <cpu type='tcg' name='pxa262'/> + <cpu type='tcg' name='pxa270-a0'/> + <cpu type='tcg' name='arm1136'/> + <cpu type='tcg' name='cortex-a15'/> + <cpu type='tcg' name='pxa260'/> + <cpu type='tcg' name='arm1136-r2'/> + <cpu type='tcg' name='pxa261'/> + <cpu type='tcg' name='pxa255'/> + <cpu type='tcg' name='arm926'/> + <cpu type='tcg' name='arm11mpcore'/> + <cpu type='tcg' name='pxa250'/> + <cpu type='tcg' name='ti925t'/> + <cpu type='tcg' name='cortex-a57'/> + <cpu type='tcg' name='sa1110'/> + <cpu type='tcg' name='arm1176'/> + <cpu type='tcg' name='cortex-a53'/> + <cpu type='tcg' name='sa1100'/> + <cpu type='tcg' name='pxa270-c5'/> + <cpu type='tcg' name='cortex-a9'/> + <cpu type='tcg' name='cortex-a8'/> + <cpu type='tcg' name='pxa270-c0'/> + <cpu type='tcg' name='arm1026'/> + <cpu type='tcg' name='pxa270-b1'/> + <cpu type='tcg' name='cortex-m3'/> + <cpu type='tcg' name='cortex-m4'/> + <cpu type='tcg' name='pxa270-b0'/> + <cpu type='tcg' name='arm946'/> + <cpu type='tcg' name='cortex-r5'/> + <cpu type='tcg' name='pxa270-a1'/> + <cpu type='tcg' name='pxa270'/> <machine name='integratorcp' maxCpus='1'/> <machine name='nuri' maxCpus='2'/> <machine name='verdex' maxCpus='1'/> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml index 5f22ed5..b53a613 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml @@ -163,436 +163,436 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>ppc64</arch> - <cpu name='default'/> - <cpu name='ppc'/> - <cpu name='ppc32'/> - <cpu name='ppc64'/> - <cpu name='970mp'/> - <cpu name='970fx'/> - <cpu name='970'/> - <cpu name='POWER8NVL'/> - <cpu name='POWER8'/> - <cpu name='POWER8E'/> - <cpu name='POWER7+'/> - <cpu name='POWER7'/> - <cpu name='POWER5gs'/> - <cpu name='POWER5+'/> - <cpu name='Apollo7PM'/> - <cpu name='7457A'/> - <cpu name='7447A'/> - <cpu name='Apollo7'/> - <cpu name='7457'/> - <cpu name='Apollo6'/> - <cpu name='7455'/> - <cpu name='7445'/> - <cpu name='7451'/> - <cpu name='7441'/> - <cpu name='Vger'/> - <cpu name='7450'/> - <cpu name='7448'/> - <cpu name='Nitro'/> - <cpu name='7410'/> - <cpu name='G4'/> - <cpu name='Max'/> - <cpu name='7400'/> - <cpu name='Goldfinger'/> - <cpu name='755'/> - <cpu name='745'/> - <cpu name='LoneStar'/> - <cpu name='750l'/> - <cpu name='750gx'/> - <cpu name='750fx'/> - <cpu name='750cxe'/> - <cpu name='750cx'/> - <cpu name='750cl'/> - <cpu name='Conan/Doyle'/> - <cpu name='G3'/> - <cpu name='Typhoon'/> - <cpu name='750'/> - <cpu name='Arthur'/> - <cpu name='740'/> - <cpu name='Mach5'/> - <cpu name='Sirocco'/> - <cpu name='604e'/> - <cpu name='Goldeneye'/> - <cpu name='603r'/> - <cpu name='Vaillant'/> - <cpu name='Stretch'/> - <cpu name='603e'/> - <cpu name='Vanilla'/> - <cpu name='601v'/> - <cpu name='601'/> - <cpu name='MPC8560'/> - <cpu name='MPC8555E'/> - <cpu name='MPC8555'/> - <cpu name='MPC8548E'/> - <cpu name='MPC8548'/> - <cpu name='MPC8547E'/> - <cpu name='MPC8545E'/> - <cpu name='MPC8545'/> - <cpu name='MPC8544E'/> - <cpu name='MPC8544'/> - <cpu name='MPC8543E'/> - <cpu name='MPC8543'/> - <cpu name='MPC8541E'/> - <cpu name='MPC8541'/> - <cpu name='MPC8540'/> - <cpu name='MPC8533E'/> - <cpu name='MPC8533'/> - <cpu name='e500v2'/> - <cpu name='e500v1'/> - <cpu name='e500'/> - <cpu name='MPC8347EA'/> - <cpu name='MPC8347E'/> - <cpu name='MPC8347A'/> - <cpu name='MPC8347'/> - <cpu name='e300'/> - <cpu name='e200'/> - <cpu name='MPC8280'/> - <cpu name='MPC8275'/> - <cpu name='MPC8272'/> - <cpu name='MPC8271'/> - <cpu name='MPC8270'/> - <cpu name='MPC8266_HiP4'/> - <cpu name='MPC8266_HiP3'/> - <cpu name='MPC8266'/> - <cpu name='MPC8265_HiP4'/> - <cpu name='MPC8265_HiP3'/> - <cpu name='MPC8265'/> - <cpu name='MPC8264_HiP4'/> - <cpu name='MPC8264_HiP3'/> - <cpu name='MPC8264'/> - <cpu name='MPC8260_HiP4'/> - <cpu name='MPC8260_HiP3'/> - <cpu name='MPC8260'/> - <cpu name='MPC8255_HiP4'/> - <cpu name='MPC8255_HiP3'/> - <cpu name='MPC8255'/> - <cpu name='MPC8250_HiP4'/> - <cpu name='MPC8250_HiP3'/> - <cpu name='MPC8250'/> - <cpu name='MPC8248'/> - <cpu name='MPC8247'/> - <cpu name='MPC8245'/> - <cpu name='MPC8241'/> - <cpu name='PowerQUICC-II'/> - <cpu name='MPC82xx'/> - <cpu name='MPC5200B'/> - <cpu name='MPC5200'/> - <cpu name='MPC52xx'/> - <cpu name='MPC8240'/> - <cpu name='440EP'/> - <cpu name='x2vp50'/> - <cpu name='x2vp7'/> - <cpu name='405GPe'/> - <cpu name='405GP'/> - <cpu name='405CR'/> - <cpu name='405'/> - <cpu name='403'/> - <cpu name='750cl_v1.0'/> - <cpu name='750cxe_v2.1'/> - <cpu name='7457A_v1.2'/> - <cpu name='755_v2.7'/> - <cpu name='MPC8347ET'/> - <cpu name='MPC8545E_v20'/> - <cpu name='750_v2.1'/> - <cpu name='755_v2.2'/> - <cpu name='745_v2.0'/> - <cpu name='7455_v1.0'/> - <cpu name='MPC8547E_v21'/> - <cpu name='STB25'/> - <cpu name='POWER8_v2.0'/> - <cpu name='401G2'/> - <cpu name='MPC8349A'/> - <cpu name='750e'/> - <cpu name='MPC8545_v21'/> - <cpu name='MPC8548_v11'/> - <cpu name='970fx_v2.0'/> - <cpu name='750fx_v2.0'/> - <cpu name='POWER8E_v2.1'/> - <cpu name='Cobra'/> - <cpu name='603p'/> - <cpu name='7400_v2.7'/> - <cpu name='MPC8378E'/> - <cpu name='e500v2_v10'/> - <cpu name='e500mc'/> - <cpu name='603e7v1'/> - <cpu name='970mp_v1.0'/> - <cpu name='MPC8555E_v11'/> - <cpu name='440-Xilinx-w-dfpu'/> - <cpu name='740e'/> - <cpu name='405CRc'/> - <cpu name='7447A_v1.1'/> - <cpu name='MPC8543_v11'/> - <cpu name='MPC8533E_v10'/> - <cpu name='MPC8540_v21'/> - <cpu name='e500v2_v21'/> - <cpu name='e300c1'/> - <cpu name='7400_v2.2'/> - <cpu name='970fx_v1.0'/> - <cpu name='750gx_v1.2'/> - <cpu name='750fx_v1.0'/> - <cpu name='MPC8641'/> - <cpu name='MPC8544E_v10'/> - <cpu name='405D4'/> - <cpu name='7457_v1.1'/> - <cpu name='970fx_v3.0'/> - <cpu name='604e_v2.2'/> - <cpu name='755_v2.6'/> - <cpu name='7410_v1.4'/> - <cpu name='Npe4GS3'/> - <cpu name='745_v2.4'/> - <cpu name='750_v2.0'/> - <cpu name='7445_v3.2'/> - <cpu name='750l_v3.2'/> - <cpu name='MPC8540_v10'/> - <cpu name='750_v1.0'/> - <cpu name='MPC8343A'/> - <cpu name='MPC8378'/> - <cpu name='G2HiP3'/> - <cpu name='750cxe_v3.0'/> - <cpu name='e500_v10'/> - <cpu name='STB03'/> - <cpu name='MPC8567'/> - <cpu name='MPC8545_v20'/> - <cpu name='MPC8548_v10'/> - <cpu name='755_v1.1'/> - <cpu name='603e7v'/> - <cpu name='Npe405H2'/> - <cpu name='750_v3.0'/> - <cpu name='Npe405H'/> - <cpu name='7400_v2.6'/> - <cpu name='405GPa'/> - <cpu name='MPC8548_v21'/> - <cpu name='MPC8541E_v10'/> - <cpu name='750l_v2.2'/> - <cpu name='MPC8555E_v10'/> - <cpu name='7457A_v1.1'/> - <cpu name='e200z6'/> - <cpu name='MPC8379E'/> - <cpu name='e500v2_v20'/> - <cpu name='MPC8347AP'/> - <cpu name='401B2'/> - <cpu name='MPC8349E'/> - <cpu name='755_v2.1'/> - <cpu name='MPC8543_v21'/> - <cpu name='MPC8547E_v20'/> - <cpu name='745_v2.8'/> - <cpu name='7455_v3.4'/> - <cpu name='7448_v1.1'/> - <cpu name='740_v2.2'/> - <cpu name='7400_v1.1'/> - <cpu name='MPC8567E'/> - <cpu name='7441_v2.10'/> - <cpu name='603e_v1.4'/> - <cpu name='G2leGP1'/> - <cpu name='7451_v2.10'/> - <cpu name='MPC8343E'/> - <cpu name='750cx_v2.2'/> - <cpu name='Npe405L'/> - <cpu name='603e7'/> - <cpu name='401A1'/> - <cpu name='MPC8377'/> - <cpu name='7448_v2.1'/> - <cpu name='7441_v2.3'/> - <cpu name='7400_v2.1'/> - <cpu name='405CRb'/> - <cpu name='604'/> - <cpu name='MPC8540_v20'/> - <cpu name='MPC8543_v10'/> - <cpu name='7447A_v1.0'/> - <cpu name='7445_v2.1'/> - <cpu name='e500_v20'/> - <cpu name='750gx_v1.1'/> - <cpu name='MPC8543E_v11'/> - <cpu name='750cxe_v2.4'/> - <cpu name='MPC8548_v20'/> - <cpu name='MPC8347AT'/> - <cpu name='POWER8NVL_v1.0'/> - <cpu name='7457A_v1.0'/> - <cpu name='7457_v1.0'/> - <cpu name='7450_v1.2'/> - <cpu name='MPC8572'/> - <cpu name='755_v2.5'/> - <cpu name='7410_v1.3'/> - <cpu name='745_v2.3'/> - <cpu name='750l_v2.1'/> - <cpu name='405GPR'/> - <cpu name='755_v2.0'/> - <cpu name='MPC8541_v11'/> - <cpu name='401C2'/> - <cpu name='e500v2_v30'/> - <cpu name='7455_v3.3'/> - <cpu name='405EZ'/> - <cpu name='MPC8568E'/> - <cpu name='755_v1.0'/> - <cpu name='603e_v1.3'/> - <cpu name='MPC8560_v10'/> - <cpu name='MPC8560_v21'/> - <cpu name='G2H4'/> - <cpu name='MPC8533_v11'/> - <cpu name='740_v3.1'/> - <cpu name='e200z5'/> - <cpu name='MPC8349'/> - <cpu name='7400_v2.0'/> - <cpu name='405CRa'/> - <cpu name='MPC8543E_v10'/> - <cpu name='MPC8543E_v21'/> - <cpu name='750cxe_v2.3'/> - <cpu name='MPC8543_v20'/> - <cpu name='745_v2.7'/> - <cpu name='403GC'/> - <cpu name='e5500'/> - <cpu name='7448_v1.0'/> - <cpu name='MPC5200_v12'/> - <cpu name='740_v2.1'/> - <cpu name='745_v2.2'/> - <cpu name='7400_v1.0'/> - <cpu name='7410_v1.2'/> - <cpu name='x2vp4'/> - <cpu name='MPC8555_v11'/> - <cpu name='MPC8541_v10'/> - <cpu name='405LP'/> - <cpu name='750fx_v2.3'/> - <cpu name='405EP'/> - <cpu name='601_v2'/> - <cpu name='MPC8544_v11'/> - <cpu name='401D2'/> - <cpu name='MPC8572E'/> - <cpu name='604e_v1.0'/> - <cpu name='750cx_v2.1'/> - <cpu name='MPC5200B_v21'/> - <cpu name='750l_v3.0'/> - <cpu name='e300c4'/> - <cpu name='7448_v2.0'/> - <cpu name='7450_v2.1'/> - <cpu name='G2leGP'/> - <cpu name='750cxe_v3.1b'/> - <cpu name='7400_v2.9'/> - <cpu name='G2GP'/> - <cpu name='603'/> - <cpu name='405GPd'/> - <cpu name='MPC8548E_v11'/> - <cpu name='603e7t'/> - <cpu name='IOP480'/> - <cpu name='750gx_v1.0'/> - <cpu name='MPC8560_v20'/> - <cpu name='405D2'/> - <cpu name='750fl'/> - <cpu name='750l_v2.0'/> - <cpu name='x2vp20'/> - <cpu name='e600'/> - <cpu name='7450_v1.1'/> - <cpu name='755_v2.4'/> - <cpu name='7445_v1.0'/> - <cpu name='G2LS'/> - <cpu name='MPC8543E_v20'/> - <cpu name='7447_v1.1'/> - <cpu name='603e_v2.2'/> - <cpu name='603e_v4'/> - <cpu name='7455_v3.2'/> - <cpu name='740_v2.0'/> - <cpu name='MPC8347P'/> - <cpu name='440EPb'/> - <cpu name='MPC603'/> - <cpu name='603e_v1.2'/> - <cpu name='750fx_v2.2'/> - <cpu name='740_v1.0'/> - <cpu name='MPC8544_v10'/> - <cpu name='601_v1'/> - <cpu name='745_v1.1'/> - <cpu name='POWER7+_v2.1'/> - <cpu name='750cx_v2.0'/> - <cpu name='MPC8347EAP'/> - <cpu name='401E2'/> - <cpu name='MPC8641D'/> - <cpu name='e300c3'/> - <cpu name='MPC8533_v10'/> - <cpu name='7441_v2.1'/> - <cpu name='740_v3.0'/> - <cpu name='POWER5+_v2.1'/> - <cpu name='602'/> - <cpu name='MPC8548E_v10'/> - <cpu name='G2leLS'/> - <cpu name='MPC8343'/> - <cpu name='750cx_v1.0'/> - <cpu name='750cxe_v2.2'/> - <cpu name='604e_v2.4'/> - <cpu name='755_v2.8'/> - <cpu name='MPC8548E_v21'/> - <cpu name='745_v2.6'/> - <cpu name='G2le'/> - <cpu name='403GB'/> - <cpu name='MPC8545E_v21'/> - <cpu name='POWER7_v2.3'/> - <cpu name='750_v2.2'/> - <cpu name='7450_v1.0'/> - <cpu name='MPC5200_v11'/> - <cpu name='755_v2.3'/> - <cpu name='MPC8347EP'/> - <cpu name='7410_v1.1'/> - <cpu name='750gl'/> - <cpu name='403GCX'/> - <cpu name='750p'/> - <cpu name='745_v2.1'/> - <cpu name='7445_v3.4'/> - <cpu name='G2'/> - <cpu name='MPC8555_v10'/> - <cpu name='MPC8347T'/> - <cpu name='603e_v3'/> - <cpu name='970_v2.2'/> - <cpu name='440-Xilinx'/> - <cpu name='740p'/> - <cpu name='MPC5200B_v20'/> - <cpu name='440EPX'/> - <cpu name='603e_v1.1'/> - <cpu name='7451_v2.3'/> - <cpu name='7450_v2.0'/> - <cpu name='7400_v2.8'/> - <cpu name='7455_v2.1'/> - <cpu name='405GPc'/> - <cpu name='MPC8347EAT'/> - <cpu name='970mp_v1.1'/> - <cpu name='603e7v2'/> - <cpu name='604r'/> - <cpu name='7447A_v1.2'/> - <cpu name='MPC8533E_v11'/> - <cpu name='e500v2_v22'/> - <cpu name='401F2'/> - <cpu name='MPC8343EA'/> - <cpu name='7457_v1.2'/> - <cpu name='970fx_v3.1'/> - <cpu name='7447_v1.0'/> - <cpu name='745_v2.5'/> - <cpu name='MPC8548E_v20'/> - <cpu name='MPC8610'/> - <cpu name='403GA'/> - <cpu name='750cxe_v2.4b'/> - <cpu name='MPC5200_v10'/> - <cpu name='7410_v1.0'/> - <cpu name='G2leGP3'/> - <cpu name='603e_v4.1'/> - <cpu name='7445_v3.3'/> - <cpu name='440EPa'/> - <cpu name='970fx_v2.1'/> - <cpu name='MPC8377E'/> - <cpu name='750fx_v2.1'/> - <cpu name='601_v0'/> - <cpu name='STB04'/> - <cpu name='745_v1.0'/> - <cpu name='G2HiP4'/> - <cpu name='750cl_v2.0'/> - <cpu name='750cxr'/> - <cpu name='MPC8349EA'/> - <cpu name='750cxe_v3.1'/> - <cpu name='401'/> - <cpu name='MPC8379'/> - <cpu name='MPC8568'/> - <cpu name='e300c2'/> - <cpu name='750_v3.1'/> - <cpu name='MPC8544E_v11'/> - <cpu name='405GPb'/> - <cpu name='MPC8541E_v11'/> + <cpu type='tcg' name='default'/> + <cpu type='tcg' name='ppc'/> + <cpu type='tcg' name='ppc32'/> + <cpu type='tcg' name='ppc64'/> + <cpu type='tcg' name='970mp'/> + <cpu type='tcg' name='970fx'/> + <cpu type='tcg' name='970'/> + <cpu type='tcg' name='POWER8NVL'/> + <cpu type='tcg' name='POWER8'/> + <cpu type='tcg' name='POWER8E'/> + <cpu type='tcg' name='POWER7+'/> + <cpu type='tcg' name='POWER7'/> + <cpu type='tcg' name='POWER5gs'/> + <cpu type='tcg' name='POWER5+'/> + <cpu type='tcg' name='Apollo7PM'/> + <cpu type='tcg' name='7457A'/> + <cpu type='tcg' name='7447A'/> + <cpu type='tcg' name='Apollo7'/> + <cpu type='tcg' name='7457'/> + <cpu type='tcg' name='Apollo6'/> + <cpu type='tcg' name='7455'/> + <cpu type='tcg' name='7445'/> + <cpu type='tcg' name='7451'/> + <cpu type='tcg' name='7441'/> + <cpu type='tcg' name='Vger'/> + <cpu type='tcg' name='7450'/> + <cpu type='tcg' name='7448'/> + <cpu type='tcg' name='Nitro'/> + <cpu type='tcg' name='7410'/> + <cpu type='tcg' name='G4'/> + <cpu type='tcg' name='Max'/> + <cpu type='tcg' name='7400'/> + <cpu type='tcg' name='Goldfinger'/> + <cpu type='tcg' name='755'/> + <cpu type='tcg' name='745'/> + <cpu type='tcg' name='LoneStar'/> + <cpu type='tcg' name='750l'/> + <cpu type='tcg' name='750gx'/> + <cpu type='tcg' name='750fx'/> + <cpu type='tcg' name='750cxe'/> + <cpu type='tcg' name='750cx'/> + <cpu type='tcg' name='750cl'/> + <cpu type='tcg' name='Conan/Doyle'/> + <cpu type='tcg' name='G3'/> + <cpu type='tcg' name='Typhoon'/> + <cpu type='tcg' name='750'/> + <cpu type='tcg' name='Arthur'/> + <cpu type='tcg' name='740'/> + <cpu type='tcg' name='Mach5'/> + <cpu type='tcg' name='Sirocco'/> + <cpu type='tcg' name='604e'/> + <cpu type='tcg' name='Goldeneye'/> + <cpu type='tcg' name='603r'/> + <cpu type='tcg' name='Vaillant'/> + <cpu type='tcg' name='Stretch'/> + <cpu type='tcg' name='603e'/> + <cpu type='tcg' name='Vanilla'/> + <cpu type='tcg' name='601v'/> + <cpu type='tcg' name='601'/> + <cpu type='tcg' name='MPC8560'/> + <cpu type='tcg' name='MPC8555E'/> + <cpu type='tcg' name='MPC8555'/> + <cpu type='tcg' name='MPC8548E'/> + <cpu type='tcg' name='MPC8548'/> + <cpu type='tcg' name='MPC8547E'/> + <cpu type='tcg' name='MPC8545E'/> + <cpu type='tcg' name='MPC8545'/> + <cpu type='tcg' name='MPC8544E'/> + <cpu type='tcg' name='MPC8544'/> + <cpu type='tcg' name='MPC8543E'/> + <cpu type='tcg' name='MPC8543'/> + <cpu type='tcg' name='MPC8541E'/> + <cpu type='tcg' name='MPC8541'/> + <cpu type='tcg' name='MPC8540'/> + <cpu type='tcg' name='MPC8533E'/> + <cpu type='tcg' name='MPC8533'/> + <cpu type='tcg' name='e500v2'/> + <cpu type='tcg' name='e500v1'/> + <cpu type='tcg' name='e500'/> + <cpu type='tcg' name='MPC8347EA'/> + <cpu type='tcg' name='MPC8347E'/> + <cpu type='tcg' name='MPC8347A'/> + <cpu type='tcg' name='MPC8347'/> + <cpu type='tcg' name='e300'/> + <cpu type='tcg' name='e200'/> + <cpu type='tcg' name='MPC8280'/> + <cpu type='tcg' name='MPC8275'/> + <cpu type='tcg' name='MPC8272'/> + <cpu type='tcg' name='MPC8271'/> + <cpu type='tcg' name='MPC8270'/> + <cpu type='tcg' name='MPC8266_HiP4'/> + <cpu type='tcg' name='MPC8266_HiP3'/> + <cpu type='tcg' name='MPC8266'/> + <cpu type='tcg' name='MPC8265_HiP4'/> + <cpu type='tcg' name='MPC8265_HiP3'/> + <cpu type='tcg' name='MPC8265'/> + <cpu type='tcg' name='MPC8264_HiP4'/> + <cpu type='tcg' name='MPC8264_HiP3'/> + <cpu type='tcg' name='MPC8264'/> + <cpu type='tcg' name='MPC8260_HiP4'/> + <cpu type='tcg' name='MPC8260_HiP3'/> + <cpu type='tcg' name='MPC8260'/> + <cpu type='tcg' name='MPC8255_HiP4'/> + <cpu type='tcg' name='MPC8255_HiP3'/> + <cpu type='tcg' name='MPC8255'/> + <cpu type='tcg' name='MPC8250_HiP4'/> + <cpu type='tcg' name='MPC8250_HiP3'/> + <cpu type='tcg' name='MPC8250'/> + <cpu type='tcg' name='MPC8248'/> + <cpu type='tcg' name='MPC8247'/> + <cpu type='tcg' name='MPC8245'/> + <cpu type='tcg' name='MPC8241'/> + <cpu type='tcg' name='PowerQUICC-II'/> + <cpu type='tcg' name='MPC82xx'/> + <cpu type='tcg' name='MPC5200B'/> + <cpu type='tcg' name='MPC5200'/> + <cpu type='tcg' name='MPC52xx'/> + <cpu type='tcg' name='MPC8240'/> + <cpu type='tcg' name='440EP'/> + <cpu type='tcg' name='x2vp50'/> + <cpu type='tcg' name='x2vp7'/> + <cpu type='tcg' name='405GPe'/> + <cpu type='tcg' name='405GP'/> + <cpu type='tcg' name='405CR'/> + <cpu type='tcg' name='405'/> + <cpu type='tcg' name='403'/> + <cpu type='tcg' name='750cl_v1.0'/> + <cpu type='tcg' name='750cxe_v2.1'/> + <cpu type='tcg' name='7457A_v1.2'/> + <cpu type='tcg' name='755_v2.7'/> + <cpu type='tcg' name='MPC8347ET'/> + <cpu type='tcg' name='MPC8545E_v20'/> + <cpu type='tcg' name='750_v2.1'/> + <cpu type='tcg' name='755_v2.2'/> + <cpu type='tcg' name='745_v2.0'/> + <cpu type='tcg' name='7455_v1.0'/> + <cpu type='tcg' name='MPC8547E_v21'/> + <cpu type='tcg' name='STB25'/> + <cpu type='tcg' name='POWER8_v2.0'/> + <cpu type='tcg' name='401G2'/> + <cpu type='tcg' name='MPC8349A'/> + <cpu type='tcg' name='750e'/> + <cpu type='tcg' name='MPC8545_v21'/> + <cpu type='tcg' name='MPC8548_v11'/> + <cpu type='tcg' name='970fx_v2.0'/> + <cpu type='tcg' name='750fx_v2.0'/> + <cpu type='tcg' name='POWER8E_v2.1'/> + <cpu type='tcg' name='Cobra'/> + <cpu type='tcg' name='603p'/> + <cpu type='tcg' name='7400_v2.7'/> + <cpu type='tcg' name='MPC8378E'/> + <cpu type='tcg' name='e500v2_v10'/> + <cpu type='tcg' name='e500mc'/> + <cpu type='tcg' name='603e7v1'/> + <cpu type='tcg' name='970mp_v1.0'/> + <cpu type='tcg' name='MPC8555E_v11'/> + <cpu type='tcg' name='440-Xilinx-w-dfpu'/> + <cpu type='tcg' name='740e'/> + <cpu type='tcg' name='405CRc'/> + <cpu type='tcg' name='7447A_v1.1'/> + <cpu type='tcg' name='MPC8543_v11'/> + <cpu type='tcg' name='MPC8533E_v10'/> + <cpu type='tcg' name='MPC8540_v21'/> + <cpu type='tcg' name='e500v2_v21'/> + <cpu type='tcg' name='e300c1'/> + <cpu type='tcg' name='7400_v2.2'/> + <cpu type='tcg' name='970fx_v1.0'/> + <cpu type='tcg' name='750gx_v1.2'/> + <cpu type='tcg' name='750fx_v1.0'/> + <cpu type='tcg' name='MPC8641'/> + <cpu type='tcg' name='MPC8544E_v10'/> + <cpu type='tcg' name='405D4'/> + <cpu type='tcg' name='7457_v1.1'/> + <cpu type='tcg' name='970fx_v3.0'/> + <cpu type='tcg' name='604e_v2.2'/> + <cpu type='tcg' name='755_v2.6'/> + <cpu type='tcg' name='7410_v1.4'/> + <cpu type='tcg' name='Npe4GS3'/> + <cpu type='tcg' name='745_v2.4'/> + <cpu type='tcg' name='750_v2.0'/> + <cpu type='tcg' name='7445_v3.2'/> + <cpu type='tcg' name='750l_v3.2'/> + <cpu type='tcg' name='MPC8540_v10'/> + <cpu type='tcg' name='750_v1.0'/> + <cpu type='tcg' name='MPC8343A'/> + <cpu type='tcg' name='MPC8378'/> + <cpu type='tcg' name='G2HiP3'/> + <cpu type='tcg' name='750cxe_v3.0'/> + <cpu type='tcg' name='e500_v10'/> + <cpu type='tcg' name='STB03'/> + <cpu type='tcg' name='MPC8567'/> + <cpu type='tcg' name='MPC8545_v20'/> + <cpu type='tcg' name='MPC8548_v10'/> + <cpu type='tcg' name='755_v1.1'/> + <cpu type='tcg' name='603e7v'/> + <cpu type='tcg' name='Npe405H2'/> + <cpu type='tcg' name='750_v3.0'/> + <cpu type='tcg' name='Npe405H'/> + <cpu type='tcg' name='7400_v2.6'/> + <cpu type='tcg' name='405GPa'/> + <cpu type='tcg' name='MPC8548_v21'/> + <cpu type='tcg' name='MPC8541E_v10'/> + <cpu type='tcg' name='750l_v2.2'/> + <cpu type='tcg' name='MPC8555E_v10'/> + <cpu type='tcg' name='7457A_v1.1'/> + <cpu type='tcg' name='e200z6'/> + <cpu type='tcg' name='MPC8379E'/> + <cpu type='tcg' name='e500v2_v20'/> + <cpu type='tcg' name='MPC8347AP'/> + <cpu type='tcg' name='401B2'/> + <cpu type='tcg' name='MPC8349E'/> + <cpu type='tcg' name='755_v2.1'/> + <cpu type='tcg' name='MPC8543_v21'/> + <cpu type='tcg' name='MPC8547E_v20'/> + <cpu type='tcg' name='745_v2.8'/> + <cpu type='tcg' name='7455_v3.4'/> + <cpu type='tcg' name='7448_v1.1'/> + <cpu type='tcg' name='740_v2.2'/> + <cpu type='tcg' name='7400_v1.1'/> + <cpu type='tcg' name='MPC8567E'/> + <cpu type='tcg' name='7441_v2.10'/> + <cpu type='tcg' name='603e_v1.4'/> + <cpu type='tcg' name='G2leGP1'/> + <cpu type='tcg' name='7451_v2.10'/> + <cpu type='tcg' name='MPC8343E'/> + <cpu type='tcg' name='750cx_v2.2'/> + <cpu type='tcg' name='Npe405L'/> + <cpu type='tcg' name='603e7'/> + <cpu type='tcg' name='401A1'/> + <cpu type='tcg' name='MPC8377'/> + <cpu type='tcg' name='7448_v2.1'/> + <cpu type='tcg' name='7441_v2.3'/> + <cpu type='tcg' name='7400_v2.1'/> + <cpu type='tcg' name='405CRb'/> + <cpu type='tcg' name='604'/> + <cpu type='tcg' name='MPC8540_v20'/> + <cpu type='tcg' name='MPC8543_v10'/> + <cpu type='tcg' name='7447A_v1.0'/> + <cpu type='tcg' name='7445_v2.1'/> + <cpu type='tcg' name='e500_v20'/> + <cpu type='tcg' name='750gx_v1.1'/> + <cpu type='tcg' name='MPC8543E_v11'/> + <cpu type='tcg' name='750cxe_v2.4'/> + <cpu type='tcg' name='MPC8548_v20'/> + <cpu type='tcg' name='MPC8347AT'/> + <cpu type='tcg' name='POWER8NVL_v1.0'/> + <cpu type='tcg' name='7457A_v1.0'/> + <cpu type='tcg' name='7457_v1.0'/> + <cpu type='tcg' name='7450_v1.2'/> + <cpu type='tcg' name='MPC8572'/> + <cpu type='tcg' name='755_v2.5'/> + <cpu type='tcg' name='7410_v1.3'/> + <cpu type='tcg' name='745_v2.3'/> + <cpu type='tcg' name='750l_v2.1'/> + <cpu type='tcg' name='405GPR'/> + <cpu type='tcg' name='755_v2.0'/> + <cpu type='tcg' name='MPC8541_v11'/> + <cpu type='tcg' name='401C2'/> + <cpu type='tcg' name='e500v2_v30'/> + <cpu type='tcg' name='7455_v3.3'/> + <cpu type='tcg' name='405EZ'/> + <cpu type='tcg' name='MPC8568E'/> + <cpu type='tcg' name='755_v1.0'/> + <cpu type='tcg' name='603e_v1.3'/> + <cpu type='tcg' name='MPC8560_v10'/> + <cpu type='tcg' name='MPC8560_v21'/> + <cpu type='tcg' name='G2H4'/> + <cpu type='tcg' name='MPC8533_v11'/> + <cpu type='tcg' name='740_v3.1'/> + <cpu type='tcg' name='e200z5'/> + <cpu type='tcg' name='MPC8349'/> + <cpu type='tcg' name='7400_v2.0'/> + <cpu type='tcg' name='405CRa'/> + <cpu type='tcg' name='MPC8543E_v10'/> + <cpu type='tcg' name='MPC8543E_v21'/> + <cpu type='tcg' name='750cxe_v2.3'/> + <cpu type='tcg' name='MPC8543_v20'/> + <cpu type='tcg' name='745_v2.7'/> + <cpu type='tcg' name='403GC'/> + <cpu type='tcg' name='e5500'/> + <cpu type='tcg' name='7448_v1.0'/> + <cpu type='tcg' name='MPC5200_v12'/> + <cpu type='tcg' name='740_v2.1'/> + <cpu type='tcg' name='745_v2.2'/> + <cpu type='tcg' name='7400_v1.0'/> + <cpu type='tcg' name='7410_v1.2'/> + <cpu type='tcg' name='x2vp4'/> + <cpu type='tcg' name='MPC8555_v11'/> + <cpu type='tcg' name='MPC8541_v10'/> + <cpu type='tcg' name='405LP'/> + <cpu type='tcg' name='750fx_v2.3'/> + <cpu type='tcg' name='405EP'/> + <cpu type='tcg' name='601_v2'/> + <cpu type='tcg' name='MPC8544_v11'/> + <cpu type='tcg' name='401D2'/> + <cpu type='tcg' name='MPC8572E'/> + <cpu type='tcg' name='604e_v1.0'/> + <cpu type='tcg' name='750cx_v2.1'/> + <cpu type='tcg' name='MPC5200B_v21'/> + <cpu type='tcg' name='750l_v3.0'/> + <cpu type='tcg' name='e300c4'/> + <cpu type='tcg' name='7448_v2.0'/> + <cpu type='tcg' name='7450_v2.1'/> + <cpu type='tcg' name='G2leGP'/> + <cpu type='tcg' name='750cxe_v3.1b'/> + <cpu type='tcg' name='7400_v2.9'/> + <cpu type='tcg' name='G2GP'/> + <cpu type='tcg' name='603'/> + <cpu type='tcg' name='405GPd'/> + <cpu type='tcg' name='MPC8548E_v11'/> + <cpu type='tcg' name='603e7t'/> + <cpu type='tcg' name='IOP480'/> + <cpu type='tcg' name='750gx_v1.0'/> + <cpu type='tcg' name='MPC8560_v20'/> + <cpu type='tcg' name='405D2'/> + <cpu type='tcg' name='750fl'/> + <cpu type='tcg' name='750l_v2.0'/> + <cpu type='tcg' name='x2vp20'/> + <cpu type='tcg' name='e600'/> + <cpu type='tcg' name='7450_v1.1'/> + <cpu type='tcg' name='755_v2.4'/> + <cpu type='tcg' name='7445_v1.0'/> + <cpu type='tcg' name='G2LS'/> + <cpu type='tcg' name='MPC8543E_v20'/> + <cpu type='tcg' name='7447_v1.1'/> + <cpu type='tcg' name='603e_v2.2'/> + <cpu type='tcg' name='603e_v4'/> + <cpu type='tcg' name='7455_v3.2'/> + <cpu type='tcg' name='740_v2.0'/> + <cpu type='tcg' name='MPC8347P'/> + <cpu type='tcg' name='440EPb'/> + <cpu type='tcg' name='MPC603'/> + <cpu type='tcg' name='603e_v1.2'/> + <cpu type='tcg' name='750fx_v2.2'/> + <cpu type='tcg' name='740_v1.0'/> + <cpu type='tcg' name='MPC8544_v10'/> + <cpu type='tcg' name='601_v1'/> + <cpu type='tcg' name='745_v1.1'/> + <cpu type='tcg' name='POWER7+_v2.1'/> + <cpu type='tcg' name='750cx_v2.0'/> + <cpu type='tcg' name='MPC8347EAP'/> + <cpu type='tcg' name='401E2'/> + <cpu type='tcg' name='MPC8641D'/> + <cpu type='tcg' name='e300c3'/> + <cpu type='tcg' name='MPC8533_v10'/> + <cpu type='tcg' name='7441_v2.1'/> + <cpu type='tcg' name='740_v3.0'/> + <cpu type='tcg' name='POWER5+_v2.1'/> + <cpu type='tcg' name='602'/> + <cpu type='tcg' name='MPC8548E_v10'/> + <cpu type='tcg' name='G2leLS'/> + <cpu type='tcg' name='MPC8343'/> + <cpu type='tcg' name='750cx_v1.0'/> + <cpu type='tcg' name='750cxe_v2.2'/> + <cpu type='tcg' name='604e_v2.4'/> + <cpu type='tcg' name='755_v2.8'/> + <cpu type='tcg' name='MPC8548E_v21'/> + <cpu type='tcg' name='745_v2.6'/> + <cpu type='tcg' name='G2le'/> + <cpu type='tcg' name='403GB'/> + <cpu type='tcg' name='MPC8545E_v21'/> + <cpu type='tcg' name='POWER7_v2.3'/> + <cpu type='tcg' name='750_v2.2'/> + <cpu type='tcg' name='7450_v1.0'/> + <cpu type='tcg' name='MPC5200_v11'/> + <cpu type='tcg' name='755_v2.3'/> + <cpu type='tcg' name='MPC8347EP'/> + <cpu type='tcg' name='7410_v1.1'/> + <cpu type='tcg' name='750gl'/> + <cpu type='tcg' name='403GCX'/> + <cpu type='tcg' name='750p'/> + <cpu type='tcg' name='745_v2.1'/> + <cpu type='tcg' name='7445_v3.4'/> + <cpu type='tcg' name='G2'/> + <cpu type='tcg' name='MPC8555_v10'/> + <cpu type='tcg' name='MPC8347T'/> + <cpu type='tcg' name='603e_v3'/> + <cpu type='tcg' name='970_v2.2'/> + <cpu type='tcg' name='440-Xilinx'/> + <cpu type='tcg' name='740p'/> + <cpu type='tcg' name='MPC5200B_v20'/> + <cpu type='tcg' name='440EPX'/> + <cpu type='tcg' name='603e_v1.1'/> + <cpu type='tcg' name='7451_v2.3'/> + <cpu type='tcg' name='7450_v2.0'/> + <cpu type='tcg' name='7400_v2.8'/> + <cpu type='tcg' name='7455_v2.1'/> + <cpu type='tcg' name='405GPc'/> + <cpu type='tcg' name='MPC8347EAT'/> + <cpu type='tcg' name='970mp_v1.1'/> + <cpu type='tcg' name='603e7v2'/> + <cpu type='tcg' name='604r'/> + <cpu type='tcg' name='7447A_v1.2'/> + <cpu type='tcg' name='MPC8533E_v11'/> + <cpu type='tcg' name='e500v2_v22'/> + <cpu type='tcg' name='401F2'/> + <cpu type='tcg' name='MPC8343EA'/> + <cpu type='tcg' name='7457_v1.2'/> + <cpu type='tcg' name='970fx_v3.1'/> + <cpu type='tcg' name='7447_v1.0'/> + <cpu type='tcg' name='745_v2.5'/> + <cpu type='tcg' name='MPC8548E_v20'/> + <cpu type='tcg' name='MPC8610'/> + <cpu type='tcg' name='403GA'/> + <cpu type='tcg' name='750cxe_v2.4b'/> + <cpu type='tcg' name='MPC5200_v10'/> + <cpu type='tcg' name='7410_v1.0'/> + <cpu type='tcg' name='G2leGP3'/> + <cpu type='tcg' name='603e_v4.1'/> + <cpu type='tcg' name='7445_v3.3'/> + <cpu type='tcg' name='440EPa'/> + <cpu type='tcg' name='970fx_v2.1'/> + <cpu type='tcg' name='MPC8377E'/> + <cpu type='tcg' name='750fx_v2.1'/> + <cpu type='tcg' name='601_v0'/> + <cpu type='tcg' name='STB04'/> + <cpu type='tcg' name='745_v1.0'/> + <cpu type='tcg' name='G2HiP4'/> + <cpu type='tcg' name='750cl_v2.0'/> + <cpu type='tcg' name='750cxr'/> + <cpu type='tcg' name='MPC8349EA'/> + <cpu type='tcg' name='750cxe_v3.1'/> + <cpu type='tcg' name='401'/> + <cpu type='tcg' name='MPC8379'/> + <cpu type='tcg' name='MPC8568'/> + <cpu type='tcg' name='e300c2'/> + <cpu type='tcg' name='750_v3.1'/> + <cpu type='tcg' name='MPC8544E_v11'/> + <cpu type='tcg' name='405GPb'/> + <cpu type='tcg' name='MPC8541E_v11'/> <machine name='pseries-2.6' alias='pseries' maxCpus='255'/> <machine name='ref405ep' maxCpus='1'/> <machine name='virtex-ml507' maxCpus='1'/> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml index e9bd5bb..db11db1 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml @@ -200,34 +200,34 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Broadwell'/> - <cpu name='Broadwell-noTSX'/> - <cpu name='Haswell'/> - <cpu name='Haswell-noTSX'/> - <cpu name='IvyBridge'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Broadwell'/> + <cpu type='tcg' name='Broadwell-noTSX'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='Haswell-noTSX'/> + <cpu type='tcg' name='IvyBridge'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-2.6' alias='pc' maxCpus='255'/> <machine name='pc-0.12' maxCpus='255'/> <machine name='pc-i440fx-2.4' maxCpus='255'/> diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml index b6e34b0..e9ec323 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml @@ -202,35 +202,35 @@ <kvmVersion>0</kvmVersion> <package> (v2.7.0)</package> <arch>x86_64</arch> - <cpu name='Opteron_G5'/> - <cpu name='Opteron_G4'/> - <cpu name='Opteron_G3'/> - <cpu name='Opteron_G2'/> - <cpu name='Opteron_G1'/> - <cpu name='Skylake-Client'/> - <cpu name='Broadwell'/> - <cpu name='Broadwell-noTSX'/> - <cpu name='Haswell'/> - <cpu name='Haswell-noTSX'/> - <cpu name='IvyBridge'/> - <cpu name='SandyBridge'/> - <cpu name='Westmere'/> - <cpu name='Nehalem'/> - <cpu name='Penryn'/> - <cpu name='Conroe'/> - <cpu name='n270'/> - <cpu name='athlon'/> - <cpu name='pentium3'/> - <cpu name='pentium2'/> - <cpu name='pentium'/> - <cpu name='486'/> - <cpu name='coreduo'/> - <cpu name='kvm32'/> - <cpu name='qemu32'/> - <cpu name='kvm64'/> - <cpu name='core2duo'/> - <cpu name='phenom'/> - <cpu name='qemu64'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Skylake-Client'/> + <cpu type='tcg' name='Broadwell'/> + <cpu type='tcg' name='Broadwell-noTSX'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='Haswell-noTSX'/> + <cpu type='tcg' name='IvyBridge'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='486'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='qemu64'/> <machine name='pc-i440fx-2.7' 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'/> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 985f45d..e44912d 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -302,20 +302,31 @@ testAddCPUModels(virQEMUCapsPtr caps, bool skipLegacy) }; if (ARCH_IS_X86(arch)) { - if (virQEMUCapsAddCPUDefinitions(caps, x86Models, + if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, x86Models, + ARRAY_CARDINALITY(x86Models)) < 0 || + virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, x86Models, ARRAY_CARDINALITY(x86Models)) < 0) return -1; - if (!skipLegacy && - virQEMUCapsAddCPUDefinitions(caps, x86LegacyModels, - ARRAY_CARDINALITY(x86LegacyModels)) < 0) - return -1; + if (!skipLegacy) { + if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, + x86LegacyModels, + ARRAY_CARDINALITY(x86LegacyModels)) < 0 || + virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, + x86LegacyModels, + ARRAY_CARDINALITY(x86LegacyModels)) < 0) + return -1; + } } else if (ARCH_IS_ARM(arch)) { - if (virQEMUCapsAddCPUDefinitions(caps, armModels, + if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, armModels, + ARRAY_CARDINALITY(armModels)) < 0 || + virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, armModels, ARRAY_CARDINALITY(armModels)) < 0) return -1; } else if (ARCH_IS_PPC64(arch)) { - if (virQEMUCapsAddCPUDefinitions(caps, ppc64Models, + if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, ppc64Models, + ARRAY_CARDINALITY(ppc64Models)) < 0 || + virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, ppc64Models, ARRAY_CARDINALITY(ppc64Models)) < 0) return -1; } -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:09AM +0100, Jiri Denemark wrote:
CPU models (and especially some additional details which we will start probing for later) differ depending on the accelerator. Thus we need to call query-cpu-definitions in both KVM and TCG mode to get all data we want.
Tests in tests/domaincapstest.c are temporarily switched to TCG to avoid having to squash even more stuff into this single patch. They will all be switched back later in separate commits.
That could be avoided by moving this patch after patch "tests: Update capabilities for QEMU 2.7.0". Code from this patch is required to use qemucapsprobe to generate updated *.replies, but I think that the updated replies can be pushed before this patch is introduced. This is just a suggestion, so you don't have to do it, but it would probably made the patches cleaner. ACK Pavel

On Thu, Nov 24, 2016 at 19:10:18 +0100, Pavel Hrdina wrote:
On Mon, Nov 21, 2016 at 12:21:09AM +0100, Jiri Denemark wrote:
CPU models (and especially some additional details which we will start probing for later) differ depending on the accelerator. Thus we need to call query-cpu-definitions in both KVM and TCG mode to get all data we want.
Tests in tests/domaincapstest.c are temporarily switched to TCG to avoid having to squash even more stuff into this single patch. They will all be switched back later in separate commits.
That could be avoided by moving this patch after patch "tests: Update capabilities for QEMU 2.7.0". Code from this patch is required to use qemucapsprobe to generate updated *.replies, but I think that the updated replies can be pushed before this patch is introduced.
This is just a suggestion, so you don't have to do it, but it would probably made the patches cleaner.
Well, the updated replies could be theoretically moved before this patch, although it would be a bit weired since this patch needs to be applied to generate them. And what's even worse, all the associated changes in test XML files from patches 14 to 28 would need to be squashed in this patch. That said, I think the approach I chose is a smaller mess :-) Jirka

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.2.2.x86_64.replies | 80 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml | 24 ++++++- 2 files changed, 102 insertions(+), 2 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.replies index c05e110..62c3177 100644 --- a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.replies @@ -279,7 +279,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-6" @@ -1854,3 +1854,81 @@ ], "id": "libvirt-45" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "qemu64" + }, + { + "name": "phenom" + }, + { + "name": "core2duo" + }, + { + "name": "kvm64" + }, + { + "name": "qemu32" + }, + { + "name": "kvm32" + }, + { + "name": "coreduo" + }, + { + "name": "486" + }, + { + "name": "pentium" + }, + { + "name": "pentium2" + }, + { + "name": "pentium3" + }, + { + "name": "athlon" + }, + { + "name": "n270" + }, + { + "name": "Conroe" + }, + { + "name": "Penryn" + }, + { + "name": "Nehalem" + }, + { + "name": "Westmere" + }, + { + "name": "SandyBridge" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G4" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml index fd44d33..6ea39c6 100644 --- a/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -114,6 +114,28 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='qemu64'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G4'/> <cpu type='tcg' name='qemu64'/> <cpu type='tcg' name='phenom'/> <cpu type='tcg' name='core2duo'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:10AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.2.2.x86_64.replies | 80 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.2.2.x86_64.xml | 24 ++++++- 2 files changed, 102 insertions(+), 2 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.3.1.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml | 26 ++++++- 2 files changed, 111 insertions(+), 3 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.replies index 6801a76..a572974 100644 --- a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.replies @@ -301,7 +301,7 @@ { "return": { - "fd": 11, + "fd": 13, "fdset-id": 0 }, "id": "libvirt-5" @@ -317,7 +317,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -2087,3 +2087,87 @@ ], "id": "libvirt-46" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "qemu64" + }, + { + "name": "phenom" + }, + { + "name": "core2duo" + }, + { + "name": "kvm64" + }, + { + "name": "qemu32" + }, + { + "name": "kvm32" + }, + { + "name": "coreduo" + }, + { + "name": "486" + }, + { + "name": "pentium" + }, + { + "name": "pentium2" + }, + { + "name": "pentium3" + }, + { + "name": "athlon" + }, + { + "name": "n270" + }, + { + "name": "Conroe" + }, + { + "name": "Penryn" + }, + { + "name": "Nehalem" + }, + { + "name": "Westmere" + }, + { + "name": "SandyBridge" + }, + { + "name": "Haswell" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G5" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml index 4a184c4..aeb5cef 100644 --- a/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -132,6 +132,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='qemu64'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G5'/> <cpu type='tcg' name='qemu64'/> <cpu type='tcg' name='phenom'/> <cpu type='tcg' name='core2duo'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:11AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.3.1.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.3.1.x86_64.xml | 26 ++++++- 2 files changed, 111 insertions(+), 3 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.4.2.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml | 26 ++++++- 2 files changed, 111 insertions(+), 3 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.replies index f9eff8e..01c75f0 100644 --- a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.replies @@ -313,7 +313,7 @@ { "return": { - "fd": 12, + "fd": 14, "fdset-id": 0 }, "id": "libvirt-5" @@ -329,7 +329,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -2137,3 +2137,87 @@ ], "id": "libvirt-46" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Haswell" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml index 14b0a93..5b41244 100644 --- a/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -133,6 +133,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:12AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.4.2.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.4.2.x86_64.xml | 26 ++++++- 2 files changed, 111 insertions(+), 3 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.5.3.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 26 ++++++- 2 files changed, 111 insertions(+), 3 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.replies index 8a0ae5f..e8d76cf 100644 --- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.replies @@ -328,7 +328,7 @@ { "return": { - "fd": 11, + "fd": 13, "fdset-id": 0 }, "id": "libvirt-5" @@ -344,7 +344,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -2949,3 +2949,87 @@ ], "id": "libvirt-46" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Haswell" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml index 5b5a3d1..42a18fd 100644 --- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -143,6 +143,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:13AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.5.3.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 26 ++++++- 2 files changed, 111 insertions(+), 3 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.6.0.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 26 ++++++- 2 files changed, 111 insertions(+), 3 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.replies index 820eaf9..eef8d30 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.replies @@ -334,7 +334,7 @@ { "return": { - "fd": 11, + "fd": 13, "fdset-id": 0 }, "id": "libvirt-5" @@ -350,7 +350,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -2916,3 +2916,87 @@ ], "id": "libvirt-46" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Haswell" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml index 0c1db8e..25cb2d2 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -148,6 +148,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:14AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_1.6.0.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 26 ++++++- 2 files changed, 111 insertions(+), 3 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 4 +- tests/domaincapstest.c | 2 +- .../qemucapabilitiesdata/caps_1.7.0.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 26 ++++++- 4 files changed, 114 insertions(+), 6 deletions(-) diff --git a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml index 67f7ee8..4aa475c 100644 --- a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-x86_64</path> - <domain>qemu</domain> + <domain>kvm</domain> <machine>pc-i440fx-1.7</machine> <arch>x86_64</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='no'/> + <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='yes'> <model fallback='allow'>Broadwell</model> </mode> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 74a16ce..2ff489c 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -413,7 +413,7 @@ mymain(void) DO_TEST_QEMU("1.7.0", "caps_1.7.0", "/usr/bin/qemu-system-x86_64", NULL, - "x86_64", VIR_DOMAIN_VIRT_QEMU); + "x86_64", VIR_DOMAIN_VIRT_KVM); DO_TEST_QEMU("2.6.0", "caps_2.6.0", "/usr/bin/qemu-system-x86_64", NULL, diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies index 4df07eb..416ece1 100644 --- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies @@ -343,7 +343,7 @@ { "return": { - "fd": 11, + "fd": 13, "fdset-id": 0 }, "id": "libvirt-5" @@ -359,7 +359,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -3131,3 +3131,87 @@ ], "id": "libvirt-46" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Haswell" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml index a37936f..73e65b3 100644 --- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -150,6 +150,30 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:15AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 4 +- tests/domaincapstest.c | 2 +- .../qemucapabilitiesdata/caps_1.7.0.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 26 ++++++- 4 files changed, 114 insertions(+), 6 deletions(-)
ACK Pavel

On Mon, Nov 21, 2016 at 12:21:15AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 4 +- tests/domaincapstest.c | 2 +- .../qemucapabilitiesdata/caps_1.7.0.x86_64.replies | 88 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 26 ++++++- 4 files changed, 114 insertions(+), 6 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.1.1.x86_64.replies | 91 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 27 ++++++- 2 files changed, 115 insertions(+), 3 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies index f7daf61..52546ad 100644 --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.replies @@ -376,7 +376,7 @@ { "return": { - "fd": 11, + "fd": 13, "fdset-id": 0 }, "id": "libvirt-5" @@ -392,7 +392,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -3636,3 +3636,90 @@ ], "id": "libvirt-46" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Broadwell" + }, + { + "name": "Haswell" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml index 11b5108..f512afe 100644 --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -165,6 +165,31 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Broadwell'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:16AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.1.1.x86_64.replies | 91 +++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 27 ++++++- 2 files changed, 115 insertions(+), 3 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.4.0.x86_64.replies | 100 ++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 30 ++++++- 2 files changed, 127 insertions(+), 3 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies index 9f3135f..6822181 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.replies @@ -424,7 +424,7 @@ { "return": { - "fd": 11, + "fd": 13, "fdset-id": 0 }, "id": "libvirt-5" @@ -440,7 +440,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -4390,3 +4390,99 @@ ], "id": "libvirt-46" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Broadwell" + }, + { + "name": "Broadwell-noTSX" + }, + { + "name": "Haswell" + }, + { + "name": "Haswell-noTSX" + }, + { + "name": "IvyBridge" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml index e975c30..042470f 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -185,6 +185,34 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Broadwell'/> + <cpu type='kvm' name='Broadwell-noTSX'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='Haswell-noTSX'/> + <cpu type='kvm' name='IvyBridge'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:17AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.4.0.x86_64.replies | 100 ++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 30 ++++++- 2 files changed, 127 insertions(+), 3 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.5.0.x86_64.replies | 100 ++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 30 ++++++- 2 files changed, 127 insertions(+), 3 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies index 1ed8805..2eeed7d 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies @@ -451,7 +451,7 @@ { "return": { - "fd": 14, + "fd": 16, "fdset-id": 0 }, "id": "libvirt-5" @@ -467,7 +467,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -12147,3 +12147,99 @@ ], "id": "libvirt-47" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Broadwell" + }, + { + "name": "Broadwell-noTSX" + }, + { + "name": "Haswell" + }, + { + "name": "Haswell-noTSX" + }, + { + "name": "IvyBridge" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml index 4dc2807..8cc3163 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -191,6 +191,34 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Broadwell'/> + <cpu type='kvm' name='Broadwell-noTSX'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='Haswell-noTSX'/> + <cpu type='kvm' name='IvyBridge'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:18AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.5.0.x86_64.replies | 100 ++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 30 ++++++- 2 files changed, 127 insertions(+), 3 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml | 4 +- tests/domaincapstest.c | 2 +- .../qemucapabilitiesdata/caps_2.6.0.x86_64.replies | 100 ++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 30 ++++++- 4 files changed, 130 insertions(+), 6 deletions(-) diff --git a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml index 33c6eda..a8975e8 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-x86_64</path> - <domain>qemu</domain> + <domain>kvm</domain> <machine>pc-i440fx-2.6</machine> <arch>x86_64</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='no'/> + <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='yes'> <model fallback='allow'>Broadwell</model> </mode> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 2ff489c..9a55d55 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -417,7 +417,7 @@ mymain(void) DO_TEST_QEMU("2.6.0", "caps_2.6.0", "/usr/bin/qemu-system-x86_64", NULL, - "x86_64", VIR_DOMAIN_VIRT_QEMU); + "x86_64", VIR_DOMAIN_VIRT_KVM); DO_TEST_QEMU("2.6.0", "caps_2.6.0-gicv2", "/usr/bin/qemu-system-aarch64", NULL, diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies index 89a8707..0c285cd 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies @@ -457,7 +457,7 @@ { "return": { - "fd": 14, + "fd": 15, "fdset-id": 0 }, "id": "libvirt-5" @@ -473,7 +473,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -12714,3 +12714,99 @@ ], "id": "libvirt-47" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Broadwell" + }, + { + "name": "Broadwell-noTSX" + }, + { + "name": "Haswell" + }, + { + "name": "Haswell-noTSX" + }, + { + "name": "IvyBridge" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml index db11db1..6fba3a6 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -200,6 +200,34 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Broadwell'/> + <cpu type='kvm' name='Broadwell-noTSX'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='Haswell-noTSX'/> + <cpu type='kvm' name='IvyBridge'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:19AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml | 4 +- tests/domaincapstest.c | 2 +- .../qemucapabilitiesdata/caps_2.6.0.x86_64.replies | 100 ++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 30 ++++++- 4 files changed, 130 insertions(+), 6 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemu_2.6.0-gicv2-virt.aarch64.xml | 5 +- tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 5 +- tests/domaincapstest.c | 4 +- .../caps_2.6.0-gicv2.aarch64.replies | 112 ++++++++++++++++++++- .../caps_2.6.0-gicv2.aarch64.xml | 33 +++++- 5 files changed, 150 insertions(+), 9 deletions(-) diff --git a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml index a2702f4..0b5a437 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-aarch64</path> - <domain>qemu</domain> + <domain>kvm</domain> <machine>virt-2.6</machine> <arch>aarch64</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='no'/> + <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='no'/> <mode name='custom' supported='yes'> <model usable='unknown'>pxa262</model> @@ -38,6 +38,7 @@ <model usable='unknown'>sa1110</model> <model usable='unknown'>arm1176</model> <model usable='unknown'>cortex-a53</model> + <model usable='unknown'>host</model> <model usable='unknown'>sa1100</model> <model usable='unknown'>pxa270-c5</model> <model usable='unknown'>cortex-a9</model> diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml index d2a2e7b..201f9e0 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-aarch64</path> - <domain>qemu</domain> + <domain>kvm</domain> <machine>integratorcp</machine> <arch>aarch64</arch> <vcpu max='1'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='no'/> + <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='no'/> <mode name='custom' supported='yes'> <model usable='unknown'>pxa262</model> @@ -38,6 +38,7 @@ <model usable='unknown'>sa1110</model> <model usable='unknown'>arm1176</model> <model usable='unknown'>cortex-a53</model> + <model usable='unknown'>host</model> <model usable='unknown'>sa1100</model> <model usable='unknown'>pxa270-c5</model> <model usable='unknown'>cortex-a9</model> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 9a55d55..34bbb29 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -421,11 +421,11 @@ mymain(void) DO_TEST_QEMU("2.6.0", "caps_2.6.0-gicv2", "/usr/bin/qemu-system-aarch64", NULL, - "aarch64", VIR_DOMAIN_VIRT_QEMU); + "aarch64", VIR_DOMAIN_VIRT_KVM); DO_TEST_QEMU("2.6.0-gicv2", "caps_2.6.0-gicv2", "/usr/bin/qemu-system-aarch64", "virt", - "aarch64", VIR_DOMAIN_VIRT_QEMU); + "aarch64", VIR_DOMAIN_VIRT_KVM); DO_TEST_QEMU("2.6.0-gicv3", "caps_2.6.0-gicv3", "/usr/bin/qemu-system-aarch64", "virt", diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.replies index 66977ba..219616a 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.replies @@ -454,7 +454,7 @@ { "return": { - "fd": 15, + "fd": 17, "fdset-id": 0 }, "id": "libvirt-5" @@ -470,7 +470,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -1526,6 +1526,9 @@ "name": "digic-uart" }, { + "name": "host-arm-cpu" + }, + { "name": "i82557c" }, { @@ -3882,6 +3885,9 @@ "name": "cortex-a53" }, { + "name": "host" + }, + { "name": "sa1100" }, { @@ -12965,3 +12971,105 @@ ], "id": "libvirt-48" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "pxa262" + }, + { + "name": "pxa270-a0" + }, + { + "name": "arm1136" + }, + { + "name": "cortex-a15" + }, + { + "name": "pxa260" + }, + { + "name": "arm1136-r2" + }, + { + "name": "pxa261" + }, + { + "name": "pxa255" + }, + { + "name": "arm926" + }, + { + "name": "arm11mpcore" + }, + { + "name": "pxa250" + }, + { + "name": "ti925t" + }, + { + "name": "cortex-a57" + }, + { + "name": "sa1110" + }, + { + "name": "arm1176" + }, + { + "name": "cortex-a53" + }, + { + "name": "sa1100" + }, + { + "name": "pxa270-c5" + }, + { + "name": "cortex-a9" + }, + { + "name": "cortex-a8" + }, + { + "name": "pxa270-c0" + }, + { + "name": "arm1026" + }, + { + "name": "pxa270-b1" + }, + { + "name": "cortex-m3" + }, + { + "name": "cortex-m4" + }, + { + "name": "pxa270-b0" + }, + { + "name": "arm946" + }, + { + "name": "cortex-r5" + }, + { + "name": "pxa270-a1" + }, + { + "name": "pxa270" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml index debee6d..e858dc6 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv2.aarch64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -166,6 +166,37 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>aarch64</arch> + <cpu type='kvm' name='pxa262'/> + <cpu type='kvm' name='pxa270-a0'/> + <cpu type='kvm' name='arm1136'/> + <cpu type='kvm' name='cortex-a15'/> + <cpu type='kvm' name='pxa260'/> + <cpu type='kvm' name='arm1136-r2'/> + <cpu type='kvm' name='pxa261'/> + <cpu type='kvm' name='pxa255'/> + <cpu type='kvm' name='arm926'/> + <cpu type='kvm' name='arm11mpcore'/> + <cpu type='kvm' name='pxa250'/> + <cpu type='kvm' name='ti925t'/> + <cpu type='kvm' name='cortex-a57'/> + <cpu type='kvm' name='sa1110'/> + <cpu type='kvm' name='arm1176'/> + <cpu type='kvm' name='cortex-a53'/> + <cpu type='kvm' name='host'/> + <cpu type='kvm' name='sa1100'/> + <cpu type='kvm' name='pxa270-c5'/> + <cpu type='kvm' name='cortex-a9'/> + <cpu type='kvm' name='cortex-a8'/> + <cpu type='kvm' name='pxa270-c0'/> + <cpu type='kvm' name='arm1026'/> + <cpu type='kvm' name='pxa270-b1'/> + <cpu type='kvm' name='cortex-m3'/> + <cpu type='kvm' name='cortex-m4'/> + <cpu type='kvm' name='pxa270-b0'/> + <cpu type='kvm' name='arm946'/> + <cpu type='kvm' name='cortex-r5'/> + <cpu type='kvm' name='pxa270-a1'/> + <cpu type='kvm' name='pxa270'/> <cpu type='tcg' name='pxa262'/> <cpu type='tcg' name='pxa270-a0'/> <cpu type='tcg' name='arm1136'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:20AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemu_2.6.0-gicv2-virt.aarch64.xml | 5 +- tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 5 +- tests/domaincapstest.c | 4 +- .../caps_2.6.0-gicv2.aarch64.replies | 112 ++++++++++++++++++++- .../caps_2.6.0-gicv2.aarch64.xml | 33 +++++- 5 files changed, 150 insertions(+), 9 deletions(-)
ACK Pavel

"host" CPU model is supported by a special host-passthrough CPU mode and users is not allowed to specify this model directly with custom mode. Thus we should not advertise "host" CPU model in domain capabilities. This worked well on architectures for which libvirt provides a list of supported CPU models in cpu_map.xml (since "host" is not in the list). But we need to explicitly filter "host" model out for all other architectures. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/conf/domain_capabilities.c | 6 +++++- src/conf/domain_capabilities.h | 3 ++- src/qemu/qemu_capabilities.c | 4 +++- tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml | 1 - tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 1 - 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index beedd70..5a45068 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -176,7 +176,8 @@ virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr old) virDomainCapsCPUModelsPtr virDomainCapsCPUModelsFilter(virDomainCapsCPUModelsPtr old, - const char **models) + const char **models, + const char **blacklist) { virDomainCapsCPUModelsPtr cpuModels; size_t i; @@ -188,6 +189,9 @@ virDomainCapsCPUModelsFilter(virDomainCapsCPUModelsPtr old, if (models && !virStringArrayHasString(models, old->models[i].name)) continue; + if (blacklist && virStringArrayHasString(blacklist, old->models[i].name)) + continue; + if (virDomainCapsCPUModelsAdd(cpuModels, old->models[i].name, -1, old->models[i].usable) < 0) diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index 13a65e3..82183c4 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -167,7 +167,8 @@ virDomainCapsPtr virDomainCapsNew(const char *path, virDomainCapsCPUModelsPtr virDomainCapsCPUModelsNew(size_t nmodels); virDomainCapsCPUModelsPtr virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr old); virDomainCapsCPUModelsPtr virDomainCapsCPUModelsFilter(virDomainCapsCPUModelsPtr old, - const char **models); + const char **models, + const char **blacklist); int virDomainCapsCPUModelsAddSteal(virDomainCapsCPUModelsPtr cpuModels, char **name, virDomainCapsCPUUsable usable); diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 422e50c..54253cb 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4948,6 +4948,7 @@ virQEMUCapsFillDomainCPUCaps(virCapsPtr caps, VIR_CPU_MODE_CUSTOM)) { virDomainCapsCPUModelsPtr filtered = NULL; char **models = NULL; + const char *blacklist[] = { "host", NULL }; if (virCPUGetModels(domCaps->arch, &models) >= 0) { virDomainCapsCPUModelsPtr cpus; @@ -4958,7 +4959,8 @@ virQEMUCapsFillDomainCPUCaps(virCapsPtr caps, cpus = qemuCaps->tcgCPUModels; filtered = virDomainCapsCPUModelsFilter(cpus, - (const char **) models); + (const char **) models, + blacklist); virStringFreeList(models); } domCaps->cpu.custom = filtered; diff --git a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml index 0b5a437..76aee83 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml @@ -38,7 +38,6 @@ <model usable='unknown'>sa1110</model> <model usable='unknown'>arm1176</model> <model usable='unknown'>cortex-a53</model> - <model usable='unknown'>host</model> <model usable='unknown'>sa1100</model> <model usable='unknown'>pxa270-c5</model> <model usable='unknown'>cortex-a9</model> diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml index 201f9e0..ca511f4 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml @@ -38,7 +38,6 @@ <model usable='unknown'>sa1110</model> <model usable='unknown'>arm1176</model> <model usable='unknown'>cortex-a53</model> - <model usable='unknown'>host</model> <model usable='unknown'>sa1100</model> <model usable='unknown'>pxa270-c5</model> <model usable='unknown'>cortex-a9</model> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:21AM +0100, Jiri Denemark wrote:
"host" CPU model is supported by a special host-passthrough CPU mode and users is not allowed to specify this model directly with custom mode. Thus we should not advertise "host" CPU model in domain capabilities. This worked well on architectures for which libvirt provides a list of supported CPU models in cpu_map.xml (since "host" is not in the list). But we need to explicitly filter "host" model out for all other architectures.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/conf/domain_capabilities.c | 6 +++++- src/conf/domain_capabilities.h | 3 ++- src/qemu/qemu_capabilities.c | 4 +++- tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml | 1 - tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 1 - 5 files changed, 10 insertions(+), 5 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemu_2.6.0-gicv3-virt.aarch64.xml | 6 +- tests/domaincapstest.c | 2 +- .../caps_2.6.0-gicv3.aarch64.replies | 125 +++++++++++++++++++-- .../caps_2.6.0-gicv3.aarch64.xml | 35 +++++- 4 files changed, 151 insertions(+), 17 deletions(-) diff --git a/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml index a2702f4..104c29f 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0-gicv3-virt.aarch64.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-aarch64</path> - <domain>qemu</domain> + <domain>kvm</domain> <machine>virt-2.6</machine> <arch>aarch64</arch> <vcpu max='255'/> @@ -19,7 +19,7 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='no'/> + <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='no'/> <mode name='custom' supported='yes'> <model usable='unknown'>pxa262</model> @@ -108,7 +108,7 @@ <features> <gic supported='yes'> <enum name='version'> - <value>2</value> + <value>3</value> </enum> </gic> </features> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 34bbb29..84cc1ff 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -429,7 +429,7 @@ mymain(void) DO_TEST_QEMU("2.6.0-gicv3", "caps_2.6.0-gicv3", "/usr/bin/qemu-system-aarch64", "virt", - "aarch64", VIR_DOMAIN_VIRT_QEMU); + "aarch64", VIR_DOMAIN_VIRT_KVM); DO_TEST_QEMU("2.6.0", "caps_2.6.0", "/usr/bin/qemu-system-ppc64", NULL, diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.replies index f1c2eab..7723c40 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.replies @@ -2,8 +2,8 @@ "QMP": { "version": { "qemu": { - "micro": 94, - "minor": 5, + "micro": 0, + "minor": 6, "major": 2 }, "package": "" @@ -22,8 +22,8 @@ { "return": { "qemu": { - "micro": 94, - "minor": 5, + "micro": 0, + "minor": 6, "major": 2 }, "package": "" @@ -454,7 +454,7 @@ { "return": { - "fd": 15, + "fd": 17, "fdset-id": 0 }, "id": "libvirt-5" @@ -470,7 +470,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -1526,6 +1526,9 @@ "name": "digic-uart" }, { + "name": "host-arm-cpu" + }, + { "name": "i82557c" }, { @@ -3424,11 +3427,6 @@ "type": "bool" }, { - "name": "stats", - "description": "on/off", - "type": "bool" - }, - { "name": "max_outputs", "type": "uint32" } @@ -3887,6 +3885,9 @@ "name": "cortex-a53" }, { + "name": "host" + }, + { "name": "sa1100" }, { @@ -12970,3 +12971,105 @@ ], "id": "libvirt-48" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "pxa262" + }, + { + "name": "pxa270-a0" + }, + { + "name": "arm1136" + }, + { + "name": "cortex-a15" + }, + { + "name": "pxa260" + }, + { + "name": "arm1136-r2" + }, + { + "name": "pxa261" + }, + { + "name": "pxa255" + }, + { + "name": "arm926" + }, + { + "name": "arm11mpcore" + }, + { + "name": "pxa250" + }, + { + "name": "ti925t" + }, + { + "name": "cortex-a57" + }, + { + "name": "sa1110" + }, + { + "name": "arm1176" + }, + { + "name": "cortex-a53" + }, + { + "name": "sa1100" + }, + { + "name": "pxa270-c5" + }, + { + "name": "cortex-a9" + }, + { + "name": "cortex-a8" + }, + { + "name": "pxa270-c0" + }, + { + "name": "arm1026" + }, + { + "name": "pxa270-b1" + }, + { + "name": "cortex-m3" + }, + { + "name": "cortex-m4" + }, + { + "name": "pxa270-b0" + }, + { + "name": "arm946" + }, + { + "name": "cortex-r5" + }, + { + "name": "pxa270-a1" + }, + { + "name": "pxa270" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml index d5a4cbb..625c354 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0-gicv3.aarch64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -162,10 +162,41 @@ <flag name='ivshmem-plain'/> <flag name='ivshmem-doorbell'/> <flag name='query-qmp-schema'/> - <version>2005094</version> + <version>2006000</version> <kvmVersion>0</kvmVersion> <package></package> <arch>aarch64</arch> + <cpu type='kvm' name='pxa262'/> + <cpu type='kvm' name='pxa270-a0'/> + <cpu type='kvm' name='arm1136'/> + <cpu type='kvm' name='cortex-a15'/> + <cpu type='kvm' name='pxa260'/> + <cpu type='kvm' name='arm1136-r2'/> + <cpu type='kvm' name='pxa261'/> + <cpu type='kvm' name='pxa255'/> + <cpu type='kvm' name='arm926'/> + <cpu type='kvm' name='arm11mpcore'/> + <cpu type='kvm' name='pxa250'/> + <cpu type='kvm' name='ti925t'/> + <cpu type='kvm' name='cortex-a57'/> + <cpu type='kvm' name='sa1110'/> + <cpu type='kvm' name='arm1176'/> + <cpu type='kvm' name='cortex-a53'/> + <cpu type='kvm' name='host'/> + <cpu type='kvm' name='sa1100'/> + <cpu type='kvm' name='pxa270-c5'/> + <cpu type='kvm' name='cortex-a9'/> + <cpu type='kvm' name='cortex-a8'/> + <cpu type='kvm' name='pxa270-c0'/> + <cpu type='kvm' name='arm1026'/> + <cpu type='kvm' name='pxa270-b1'/> + <cpu type='kvm' name='cortex-m3'/> + <cpu type='kvm' name='cortex-m4'/> + <cpu type='kvm' name='pxa270-b0'/> + <cpu type='kvm' name='arm946'/> + <cpu type='kvm' name='cortex-r5'/> + <cpu type='kvm' name='pxa270-a1'/> + <cpu type='kvm' name='pxa270'/> <cpu type='tcg' name='pxa262'/> <cpu type='tcg' name='pxa270-a0'/> <cpu type='tcg' name='arm1136'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:22AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemu_2.6.0-gicv3-virt.aarch64.xml | 6 +- tests/domaincapstest.c | 2 +- .../caps_2.6.0-gicv3.aarch64.replies | 125 +++++++++++++++++++-- .../caps_2.6.0-gicv3.aarch64.xml | 35 +++++- 4 files changed, 151 insertions(+), 17 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml | 5 +- tests/domaincapstest.c | 2 +- .../caps_2.6.0.ppc64le.replies | 1324 +++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 436 ++++++- 4 files changed, 1753 insertions(+), 14 deletions(-) diff --git a/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml b/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml index f6a98f7..b3d2d2a 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml @@ -1,6 +1,6 @@ <domainCapabilities> <path>/usr/bin/qemu-system-ppc64</path> - <domain>qemu</domain> + <domain>kvm</domain> <machine>pseries-2.6</machine> <arch>ppc64le</arch> <vcpu max='255'/> @@ -19,13 +19,14 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='no'/> + <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='yes'> <model fallback='allow'>POWER8</model> </mode> <mode name='custom' supported='yes'> <model usable='unknown'>POWER8</model> <model usable='unknown'>POWER7</model> + <model usable='unknown'>POWER8</model> </mode> </cpu> <devices> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 84cc1ff..e70fa05 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -433,7 +433,7 @@ mymain(void) DO_TEST_QEMU("2.6.0", "caps_2.6.0", "/usr/bin/qemu-system-ppc64", NULL, - "ppc64le", VIR_DOMAIN_VIRT_QEMU); + "ppc64le", VIR_DOMAIN_VIRT_KVM); #endif /* WITH_QEMU */ diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.replies b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.replies index 5e4ccac..6350269 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.replies +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.replies @@ -451,7 +451,7 @@ { "return": { - "fd": 14, + "fd": 15, "fdset-id": 0 }, "id": "libvirt-5" @@ -467,7 +467,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -794,9 +794,6 @@ "name": "401F2-powerpc64-cpu" }, { - "name": "ccid-card-emulated" - }, - { "name": "pseries-2.1-machine" }, { @@ -1220,6 +1217,9 @@ "name": "VGA" }, { + "name": "POWER8-powerpc64-cpu" + }, + { "name": "i8257" }, { @@ -1394,9 +1394,6 @@ "name": "PCIE" }, { - "name": "ccid-card-passthru" - }, - { "name": "750cx_v2.1-powerpc64-cpu" }, { @@ -1583,6 +1580,9 @@ "name": "smbus-eeprom" }, { + "name": "host-powerpc64-cpu" + }, + { "name": "i82801" }, { @@ -4679,6 +4679,9 @@ "name": "MPC8560_v10" }, { + "name": "host" + }, + { "name": "MPC8560_v21" }, { @@ -4874,6 +4877,9 @@ "name": "MPC8347P" }, { + "name": "POWER8" + }, + { "name": "440EPb" }, { @@ -14194,3 +14200,1305 @@ ], "id": "libvirt-47" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "default" + }, + { + "name": "ppc" + }, + { + "name": "ppc32" + }, + { + "name": "ppc64" + }, + { + "name": "970mp" + }, + { + "name": "970fx" + }, + { + "name": "970" + }, + { + "name": "POWER8NVL" + }, + { + "name": "POWER8" + }, + { + "name": "POWER8E" + }, + { + "name": "POWER7+" + }, + { + "name": "POWER7" + }, + { + "name": "POWER5gs" + }, + { + "name": "POWER5+" + }, + { + "name": "Apollo7PM" + }, + { + "name": "7457A" + }, + { + "name": "7447A" + }, + { + "name": "Apollo7" + }, + { + "name": "7457" + }, + { + "name": "Apollo6" + }, + { + "name": "7455" + }, + { + "name": "7445" + }, + { + "name": "7451" + }, + { + "name": "7441" + }, + { + "name": "Vger" + }, + { + "name": "7450" + }, + { + "name": "7448" + }, + { + "name": "Nitro" + }, + { + "name": "7410" + }, + { + "name": "G4" + }, + { + "name": "Max" + }, + { + "name": "7400" + }, + { + "name": "Goldfinger" + }, + { + "name": "755" + }, + { + "name": "745" + }, + { + "name": "LoneStar" + }, + { + "name": "750l" + }, + { + "name": "750gx" + }, + { + "name": "750fx" + }, + { + "name": "750cxe" + }, + { + "name": "750cx" + }, + { + "name": "750cl" + }, + { + "name": "Conan/Doyle" + }, + { + "name": "G3" + }, + { + "name": "Typhoon" + }, + { + "name": "750" + }, + { + "name": "Arthur" + }, + { + "name": "740" + }, + { + "name": "Mach5" + }, + { + "name": "Sirocco" + }, + { + "name": "604e" + }, + { + "name": "Goldeneye" + }, + { + "name": "603r" + }, + { + "name": "Vaillant" + }, + { + "name": "Stretch" + }, + { + "name": "603e" + }, + { + "name": "Vanilla" + }, + { + "name": "601v" + }, + { + "name": "601" + }, + { + "name": "MPC8560" + }, + { + "name": "MPC8555E" + }, + { + "name": "MPC8555" + }, + { + "name": "MPC8548E" + }, + { + "name": "MPC8548" + }, + { + "name": "MPC8547E" + }, + { + "name": "MPC8545E" + }, + { + "name": "MPC8545" + }, + { + "name": "MPC8544E" + }, + { + "name": "MPC8544" + }, + { + "name": "MPC8543E" + }, + { + "name": "MPC8543" + }, + { + "name": "MPC8541E" + }, + { + "name": "MPC8541" + }, + { + "name": "MPC8540" + }, + { + "name": "MPC8533E" + }, + { + "name": "MPC8533" + }, + { + "name": "e500v2" + }, + { + "name": "e500v1" + }, + { + "name": "e500" + }, + { + "name": "MPC8347EA" + }, + { + "name": "MPC8347E" + }, + { + "name": "MPC8347A" + }, + { + "name": "MPC8347" + }, + { + "name": "e300" + }, + { + "name": "e200" + }, + { + "name": "MPC8280" + }, + { + "name": "MPC8275" + }, + { + "name": "MPC8272" + }, + { + "name": "MPC8271" + }, + { + "name": "MPC8270" + }, + { + "name": "MPC8266_HiP4" + }, + { + "name": "MPC8266_HiP3" + }, + { + "name": "MPC8266" + }, + { + "name": "MPC8265_HiP4" + }, + { + "name": "MPC8265_HiP3" + }, + { + "name": "MPC8265" + }, + { + "name": "MPC8264_HiP4" + }, + { + "name": "MPC8264_HiP3" + }, + { + "name": "MPC8264" + }, + { + "name": "MPC8260_HiP4" + }, + { + "name": "MPC8260_HiP3" + }, + { + "name": "MPC8260" + }, + { + "name": "MPC8255_HiP4" + }, + { + "name": "MPC8255_HiP3" + }, + { + "name": "MPC8255" + }, + { + "name": "MPC8250_HiP4" + }, + { + "name": "MPC8250_HiP3" + }, + { + "name": "MPC8250" + }, + { + "name": "MPC8248" + }, + { + "name": "MPC8247" + }, + { + "name": "MPC8245" + }, + { + "name": "MPC8241" + }, + { + "name": "PowerQUICC-II" + }, + { + "name": "MPC82xx" + }, + { + "name": "MPC5200B" + }, + { + "name": "MPC5200" + }, + { + "name": "MPC52xx" + }, + { + "name": "MPC8240" + }, + { + "name": "440EP" + }, + { + "name": "x2vp50" + }, + { + "name": "x2vp7" + }, + { + "name": "405GPe" + }, + { + "name": "405GP" + }, + { + "name": "405CR" + }, + { + "name": "405" + }, + { + "name": "403" + }, + { + "name": "750cl_v1.0" + }, + { + "name": "750cxe_v2.1" + }, + { + "name": "7457A_v1.2" + }, + { + "name": "755_v2.7" + }, + { + "name": "MPC8347ET" + }, + { + "name": "MPC8545E_v20" + }, + { + "name": "750_v2.1" + }, + { + "name": "755_v2.2" + }, + { + "name": "745_v2.0" + }, + { + "name": "7455_v1.0" + }, + { + "name": "MPC8547E_v21" + }, + { + "name": "STB25" + }, + { + "name": "POWER8_v2.0" + }, + { + "name": "401G2" + }, + { + "name": "MPC8349A" + }, + { + "name": "750e" + }, + { + "name": "MPC8545_v21" + }, + { + "name": "MPC8548_v11" + }, + { + "name": "970fx_v2.0" + }, + { + "name": "750fx_v2.0" + }, + { + "name": "POWER8E_v2.1" + }, + { + "name": "Cobra" + }, + { + "name": "603p" + }, + { + "name": "7400_v2.7" + }, + { + "name": "MPC8378E" + }, + { + "name": "e500v2_v10" + }, + { + "name": "e500mc" + }, + { + "name": "603e7v1" + }, + { + "name": "970mp_v1.0" + }, + { + "name": "MPC8555E_v11" + }, + { + "name": "440-Xilinx-w-dfpu" + }, + { + "name": "740e" + }, + { + "name": "405CRc" + }, + { + "name": "7447A_v1.1" + }, + { + "name": "MPC8543_v11" + }, + { + "name": "MPC8533E_v10" + }, + { + "name": "MPC8540_v21" + }, + { + "name": "e500v2_v21" + }, + { + "name": "e300c1" + }, + { + "name": "7400_v2.2" + }, + { + "name": "970fx_v1.0" + }, + { + "name": "750gx_v1.2" + }, + { + "name": "750fx_v1.0" + }, + { + "name": "MPC8641" + }, + { + "name": "MPC8544E_v10" + }, + { + "name": "405D4" + }, + { + "name": "7457_v1.1" + }, + { + "name": "970fx_v3.0" + }, + { + "name": "604e_v2.2" + }, + { + "name": "755_v2.6" + }, + { + "name": "7410_v1.4" + }, + { + "name": "Npe4GS3" + }, + { + "name": "745_v2.4" + }, + { + "name": "750_v2.0" + }, + { + "name": "7445_v3.2" + }, + { + "name": "750l_v3.2" + }, + { + "name": "MPC8540_v10" + }, + { + "name": "750_v1.0" + }, + { + "name": "MPC8343A" + }, + { + "name": "MPC8378" + }, + { + "name": "G2HiP3" + }, + { + "name": "750cxe_v3.0" + }, + { + "name": "e500_v10" + }, + { + "name": "STB03" + }, + { + "name": "MPC8567" + }, + { + "name": "MPC8545_v20" + }, + { + "name": "MPC8548_v10" + }, + { + "name": "755_v1.1" + }, + { + "name": "603e7v" + }, + { + "name": "Npe405H2" + }, + { + "name": "750_v3.0" + }, + { + "name": "Npe405H" + }, + { + "name": "7400_v2.6" + }, + { + "name": "405GPa" + }, + { + "name": "MPC8548_v21" + }, + { + "name": "MPC8541E_v10" + }, + { + "name": "750l_v2.2" + }, + { + "name": "MPC8555E_v10" + }, + { + "name": "7457A_v1.1" + }, + { + "name": "e200z6" + }, + { + "name": "MPC8379E" + }, + { + "name": "e500v2_v20" + }, + { + "name": "MPC8347AP" + }, + { + "name": "401B2" + }, + { + "name": "MPC8349E" + }, + { + "name": "755_v2.1" + }, + { + "name": "MPC8543_v21" + }, + { + "name": "MPC8547E_v20" + }, + { + "name": "745_v2.8" + }, + { + "name": "7455_v3.4" + }, + { + "name": "7448_v1.1" + }, + { + "name": "740_v2.2" + }, + { + "name": "7400_v1.1" + }, + { + "name": "MPC8567E" + }, + { + "name": "7441_v2.10" + }, + { + "name": "603e_v1.4" + }, + { + "name": "G2leGP1" + }, + { + "name": "7451_v2.10" + }, + { + "name": "MPC8343E" + }, + { + "name": "750cx_v2.2" + }, + { + "name": "Npe405L" + }, + { + "name": "603e7" + }, + { + "name": "401A1" + }, + { + "name": "MPC8377" + }, + { + "name": "7448_v2.1" + }, + { + "name": "7441_v2.3" + }, + { + "name": "7400_v2.1" + }, + { + "name": "405CRb" + }, + { + "name": "604" + }, + { + "name": "MPC8540_v20" + }, + { + "name": "MPC8543_v10" + }, + { + "name": "7447A_v1.0" + }, + { + "name": "7445_v2.1" + }, + { + "name": "e500_v20" + }, + { + "name": "750gx_v1.1" + }, + { + "name": "MPC8543E_v11" + }, + { + "name": "750cxe_v2.4" + }, + { + "name": "MPC8548_v20" + }, + { + "name": "MPC8347AT" + }, + { + "name": "POWER8NVL_v1.0" + }, + { + "name": "7457A_v1.0" + }, + { + "name": "7457_v1.0" + }, + { + "name": "7450_v1.2" + }, + { + "name": "MPC8572" + }, + { + "name": "755_v2.5" + }, + { + "name": "7410_v1.3" + }, + { + "name": "745_v2.3" + }, + { + "name": "750l_v2.1" + }, + { + "name": "405GPR" + }, + { + "name": "755_v2.0" + }, + { + "name": "MPC8541_v11" + }, + { + "name": "401C2" + }, + { + "name": "e500v2_v30" + }, + { + "name": "7455_v3.3" + }, + { + "name": "405EZ" + }, + { + "name": "MPC8568E" + }, + { + "name": "755_v1.0" + }, + { + "name": "603e_v1.3" + }, + { + "name": "MPC8560_v10" + }, + { + "name": "MPC8560_v21" + }, + { + "name": "G2H4" + }, + { + "name": "MPC8533_v11" + }, + { + "name": "740_v3.1" + }, + { + "name": "e200z5" + }, + { + "name": "MPC8349" + }, + { + "name": "7400_v2.0" + }, + { + "name": "405CRa" + }, + { + "name": "MPC8543E_v10" + }, + { + "name": "MPC8543E_v21" + }, + { + "name": "750cxe_v2.3" + }, + { + "name": "MPC8543_v20" + }, + { + "name": "745_v2.7" + }, + { + "name": "403GC" + }, + { + "name": "e5500" + }, + { + "name": "7448_v1.0" + }, + { + "name": "MPC5200_v12" + }, + { + "name": "740_v2.1" + }, + { + "name": "745_v2.2" + }, + { + "name": "7400_v1.0" + }, + { + "name": "7410_v1.2" + }, + { + "name": "x2vp4" + }, + { + "name": "MPC8555_v11" + }, + { + "name": "MPC8541_v10" + }, + { + "name": "405LP" + }, + { + "name": "750fx_v2.3" + }, + { + "name": "405EP" + }, + { + "name": "601_v2" + }, + { + "name": "MPC8544_v11" + }, + { + "name": "401D2" + }, + { + "name": "MPC8572E" + }, + { + "name": "604e_v1.0" + }, + { + "name": "750cx_v2.1" + }, + { + "name": "MPC5200B_v21" + }, + { + "name": "750l_v3.0" + }, + { + "name": "e300c4" + }, + { + "name": "7448_v2.0" + }, + { + "name": "7450_v2.1" + }, + { + "name": "G2leGP" + }, + { + "name": "750cxe_v3.1b" + }, + { + "name": "7400_v2.9" + }, + { + "name": "G2GP" + }, + { + "name": "603" + }, + { + "name": "405GPd" + }, + { + "name": "MPC8548E_v11" + }, + { + "name": "603e7t" + }, + { + "name": "IOP480" + }, + { + "name": "750gx_v1.0" + }, + { + "name": "MPC8560_v20" + }, + { + "name": "405D2" + }, + { + "name": "750fl" + }, + { + "name": "750l_v2.0" + }, + { + "name": "x2vp20" + }, + { + "name": "e600" + }, + { + "name": "7450_v1.1" + }, + { + "name": "755_v2.4" + }, + { + "name": "7445_v1.0" + }, + { + "name": "G2LS" + }, + { + "name": "MPC8543E_v20" + }, + { + "name": "7447_v1.1" + }, + { + "name": "603e_v2.2" + }, + { + "name": "603e_v4" + }, + { + "name": "7455_v3.2" + }, + { + "name": "740_v2.0" + }, + { + "name": "MPC8347P" + }, + { + "name": "440EPb" + }, + { + "name": "MPC603" + }, + { + "name": "603e_v1.2" + }, + { + "name": "750fx_v2.2" + }, + { + "name": "740_v1.0" + }, + { + "name": "MPC8544_v10" + }, + { + "name": "601_v1" + }, + { + "name": "745_v1.1" + }, + { + "name": "POWER7+_v2.1" + }, + { + "name": "750cx_v2.0" + }, + { + "name": "MPC8347EAP" + }, + { + "name": "401E2" + }, + { + "name": "MPC8641D" + }, + { + "name": "e300c3" + }, + { + "name": "MPC8533_v10" + }, + { + "name": "7441_v2.1" + }, + { + "name": "740_v3.0" + }, + { + "name": "POWER5+_v2.1" + }, + { + "name": "602" + }, + { + "name": "MPC8548E_v10" + }, + { + "name": "G2leLS" + }, + { + "name": "MPC8343" + }, + { + "name": "750cx_v1.0" + }, + { + "name": "750cxe_v2.2" + }, + { + "name": "604e_v2.4" + }, + { + "name": "755_v2.8" + }, + { + "name": "MPC8548E_v21" + }, + { + "name": "745_v2.6" + }, + { + "name": "G2le" + }, + { + "name": "403GB" + }, + { + "name": "MPC8545E_v21" + }, + { + "name": "POWER7_v2.3" + }, + { + "name": "750_v2.2" + }, + { + "name": "7450_v1.0" + }, + { + "name": "MPC5200_v11" + }, + { + "name": "755_v2.3" + }, + { + "name": "MPC8347EP" + }, + { + "name": "7410_v1.1" + }, + { + "name": "750gl" + }, + { + "name": "403GCX" + }, + { + "name": "750p" + }, + { + "name": "745_v2.1" + }, + { + "name": "7445_v3.4" + }, + { + "name": "G2" + }, + { + "name": "MPC8555_v10" + }, + { + "name": "MPC8347T" + }, + { + "name": "603e_v3" + }, + { + "name": "970_v2.2" + }, + { + "name": "440-Xilinx" + }, + { + "name": "740p" + }, + { + "name": "MPC5200B_v20" + }, + { + "name": "440EPX" + }, + { + "name": "603e_v1.1" + }, + { + "name": "7451_v2.3" + }, + { + "name": "7450_v2.0" + }, + { + "name": "7400_v2.8" + }, + { + "name": "7455_v2.1" + }, + { + "name": "405GPc" + }, + { + "name": "MPC8347EAT" + }, + { + "name": "970mp_v1.1" + }, + { + "name": "603e7v2" + }, + { + "name": "604r" + }, + { + "name": "7447A_v1.2" + }, + { + "name": "MPC8533E_v11" + }, + { + "name": "e500v2_v22" + }, + { + "name": "401F2" + }, + { + "name": "MPC8343EA" + }, + { + "name": "7457_v1.2" + }, + { + "name": "970fx_v3.1" + }, + { + "name": "7447_v1.0" + }, + { + "name": "745_v2.5" + }, + { + "name": "MPC8548E_v20" + }, + { + "name": "MPC8610" + }, + { + "name": "403GA" + }, + { + "name": "750cxe_v2.4b" + }, + { + "name": "MPC5200_v10" + }, + { + "name": "7410_v1.0" + }, + { + "name": "G2leGP3" + }, + { + "name": "603e_v4.1" + }, + { + "name": "7445_v3.3" + }, + { + "name": "440EPa" + }, + { + "name": "970fx_v2.1" + }, + { + "name": "MPC8377E" + }, + { + "name": "750fx_v2.1" + }, + { + "name": "601_v0" + }, + { + "name": "STB04" + }, + { + "name": "745_v1.0" + }, + { + "name": "G2HiP4" + }, + { + "name": "750cl_v2.0" + }, + { + "name": "750cxr" + }, + { + "name": "MPC8349EA" + }, + { + "name": "750cxe_v3.1" + }, + { + "name": "401" + }, + { + "name": "MPC8379" + }, + { + "name": "MPC8568" + }, + { + "name": "e300c2" + }, + { + "name": "750_v3.1" + }, + { + "name": "MPC8544E_v11" + }, + { + "name": "405GPb" + }, + { + "name": "MPC8541E_v11" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml index b53a613..e1cc01b 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -21,8 +21,6 @@ <flag name='boot-index'/> <flag name='hda-duplex'/> <flag name='drive-aio'/> - <flag name='ccid-emulated'/> - <flag name='ccid-passthru'/> <flag name='chardev-spicevmc'/> <flag name='virtio-tx-alg'/> <flag name='pci-multifunction'/> @@ -163,6 +161,438 @@ <kvmVersion>0</kvmVersion> <package></package> <arch>ppc64</arch> + <cpu type='kvm' name='default'/> + <cpu type='kvm' name='ppc'/> + <cpu type='kvm' name='ppc32'/> + <cpu type='kvm' name='ppc64'/> + <cpu type='kvm' name='970mp'/> + <cpu type='kvm' name='970fx'/> + <cpu type='kvm' name='970'/> + <cpu type='kvm' name='POWER8NVL'/> + <cpu type='kvm' name='POWER8'/> + <cpu type='kvm' name='POWER8E'/> + <cpu type='kvm' name='POWER7+'/> + <cpu type='kvm' name='POWER7'/> + <cpu type='kvm' name='POWER5gs'/> + <cpu type='kvm' name='POWER5+'/> + <cpu type='kvm' name='Apollo7PM'/> + <cpu type='kvm' name='7457A'/> + <cpu type='kvm' name='7447A'/> + <cpu type='kvm' name='Apollo7'/> + <cpu type='kvm' name='7457'/> + <cpu type='kvm' name='Apollo6'/> + <cpu type='kvm' name='7455'/> + <cpu type='kvm' name='7445'/> + <cpu type='kvm' name='7451'/> + <cpu type='kvm' name='7441'/> + <cpu type='kvm' name='Vger'/> + <cpu type='kvm' name='7450'/> + <cpu type='kvm' name='7448'/> + <cpu type='kvm' name='Nitro'/> + <cpu type='kvm' name='7410'/> + <cpu type='kvm' name='G4'/> + <cpu type='kvm' name='Max'/> + <cpu type='kvm' name='7400'/> + <cpu type='kvm' name='Goldfinger'/> + <cpu type='kvm' name='755'/> + <cpu type='kvm' name='745'/> + <cpu type='kvm' name='LoneStar'/> + <cpu type='kvm' name='750l'/> + <cpu type='kvm' name='750gx'/> + <cpu type='kvm' name='750fx'/> + <cpu type='kvm' name='750cxe'/> + <cpu type='kvm' name='750cx'/> + <cpu type='kvm' name='750cl'/> + <cpu type='kvm' name='Conan/Doyle'/> + <cpu type='kvm' name='G3'/> + <cpu type='kvm' name='Typhoon'/> + <cpu type='kvm' name='750'/> + <cpu type='kvm' name='Arthur'/> + <cpu type='kvm' name='740'/> + <cpu type='kvm' name='Mach5'/> + <cpu type='kvm' name='Sirocco'/> + <cpu type='kvm' name='604e'/> + <cpu type='kvm' name='Goldeneye'/> + <cpu type='kvm' name='603r'/> + <cpu type='kvm' name='Vaillant'/> + <cpu type='kvm' name='Stretch'/> + <cpu type='kvm' name='603e'/> + <cpu type='kvm' name='Vanilla'/> + <cpu type='kvm' name='601v'/> + <cpu type='kvm' name='601'/> + <cpu type='kvm' name='MPC8560'/> + <cpu type='kvm' name='MPC8555E'/> + <cpu type='kvm' name='MPC8555'/> + <cpu type='kvm' name='MPC8548E'/> + <cpu type='kvm' name='MPC8548'/> + <cpu type='kvm' name='MPC8547E'/> + <cpu type='kvm' name='MPC8545E'/> + <cpu type='kvm' name='MPC8545'/> + <cpu type='kvm' name='MPC8544E'/> + <cpu type='kvm' name='MPC8544'/> + <cpu type='kvm' name='MPC8543E'/> + <cpu type='kvm' name='MPC8543'/> + <cpu type='kvm' name='MPC8541E'/> + <cpu type='kvm' name='MPC8541'/> + <cpu type='kvm' name='MPC8540'/> + <cpu type='kvm' name='MPC8533E'/> + <cpu type='kvm' name='MPC8533'/> + <cpu type='kvm' name='e500v2'/> + <cpu type='kvm' name='e500v1'/> + <cpu type='kvm' name='e500'/> + <cpu type='kvm' name='MPC8347EA'/> + <cpu type='kvm' name='MPC8347E'/> + <cpu type='kvm' name='MPC8347A'/> + <cpu type='kvm' name='MPC8347'/> + <cpu type='kvm' name='e300'/> + <cpu type='kvm' name='e200'/> + <cpu type='kvm' name='MPC8280'/> + <cpu type='kvm' name='MPC8275'/> + <cpu type='kvm' name='MPC8272'/> + <cpu type='kvm' name='MPC8271'/> + <cpu type='kvm' name='MPC8270'/> + <cpu type='kvm' name='MPC8266_HiP4'/> + <cpu type='kvm' name='MPC8266_HiP3'/> + <cpu type='kvm' name='MPC8266'/> + <cpu type='kvm' name='MPC8265_HiP4'/> + <cpu type='kvm' name='MPC8265_HiP3'/> + <cpu type='kvm' name='MPC8265'/> + <cpu type='kvm' name='MPC8264_HiP4'/> + <cpu type='kvm' name='MPC8264_HiP3'/> + <cpu type='kvm' name='MPC8264'/> + <cpu type='kvm' name='MPC8260_HiP4'/> + <cpu type='kvm' name='MPC8260_HiP3'/> + <cpu type='kvm' name='MPC8260'/> + <cpu type='kvm' name='MPC8255_HiP4'/> + <cpu type='kvm' name='MPC8255_HiP3'/> + <cpu type='kvm' name='MPC8255'/> + <cpu type='kvm' name='MPC8250_HiP4'/> + <cpu type='kvm' name='MPC8250_HiP3'/> + <cpu type='kvm' name='MPC8250'/> + <cpu type='kvm' name='MPC8248'/> + <cpu type='kvm' name='MPC8247'/> + <cpu type='kvm' name='MPC8245'/> + <cpu type='kvm' name='MPC8241'/> + <cpu type='kvm' name='PowerQUICC-II'/> + <cpu type='kvm' name='MPC82xx'/> + <cpu type='kvm' name='MPC5200B'/> + <cpu type='kvm' name='MPC5200'/> + <cpu type='kvm' name='MPC52xx'/> + <cpu type='kvm' name='MPC8240'/> + <cpu type='kvm' name='440EP'/> + <cpu type='kvm' name='x2vp50'/> + <cpu type='kvm' name='x2vp7'/> + <cpu type='kvm' name='405GPe'/> + <cpu type='kvm' name='405GP'/> + <cpu type='kvm' name='405CR'/> + <cpu type='kvm' name='405'/> + <cpu type='kvm' name='403'/> + <cpu type='kvm' name='750cl_v1.0'/> + <cpu type='kvm' name='750cxe_v2.1'/> + <cpu type='kvm' name='7457A_v1.2'/> + <cpu type='kvm' name='755_v2.7'/> + <cpu type='kvm' name='MPC8347ET'/> + <cpu type='kvm' name='MPC8545E_v20'/> + <cpu type='kvm' name='750_v2.1'/> + <cpu type='kvm' name='755_v2.2'/> + <cpu type='kvm' name='745_v2.0'/> + <cpu type='kvm' name='7455_v1.0'/> + <cpu type='kvm' name='MPC8547E_v21'/> + <cpu type='kvm' name='STB25'/> + <cpu type='kvm' name='POWER8_v2.0'/> + <cpu type='kvm' name='401G2'/> + <cpu type='kvm' name='MPC8349A'/> + <cpu type='kvm' name='750e'/> + <cpu type='kvm' name='MPC8545_v21'/> + <cpu type='kvm' name='MPC8548_v11'/> + <cpu type='kvm' name='970fx_v2.0'/> + <cpu type='kvm' name='750fx_v2.0'/> + <cpu type='kvm' name='POWER8E_v2.1'/> + <cpu type='kvm' name='Cobra'/> + <cpu type='kvm' name='603p'/> + <cpu type='kvm' name='7400_v2.7'/> + <cpu type='kvm' name='MPC8378E'/> + <cpu type='kvm' name='e500v2_v10'/> + <cpu type='kvm' name='e500mc'/> + <cpu type='kvm' name='603e7v1'/> + <cpu type='kvm' name='970mp_v1.0'/> + <cpu type='kvm' name='MPC8555E_v11'/> + <cpu type='kvm' name='440-Xilinx-w-dfpu'/> + <cpu type='kvm' name='740e'/> + <cpu type='kvm' name='405CRc'/> + <cpu type='kvm' name='7447A_v1.1'/> + <cpu type='kvm' name='MPC8543_v11'/> + <cpu type='kvm' name='MPC8533E_v10'/> + <cpu type='kvm' name='MPC8540_v21'/> + <cpu type='kvm' name='e500v2_v21'/> + <cpu type='kvm' name='e300c1'/> + <cpu type='kvm' name='7400_v2.2'/> + <cpu type='kvm' name='970fx_v1.0'/> + <cpu type='kvm' name='750gx_v1.2'/> + <cpu type='kvm' name='750fx_v1.0'/> + <cpu type='kvm' name='MPC8641'/> + <cpu type='kvm' name='MPC8544E_v10'/> + <cpu type='kvm' name='405D4'/> + <cpu type='kvm' name='7457_v1.1'/> + <cpu type='kvm' name='970fx_v3.0'/> + <cpu type='kvm' name='604e_v2.2'/> + <cpu type='kvm' name='755_v2.6'/> + <cpu type='kvm' name='7410_v1.4'/> + <cpu type='kvm' name='Npe4GS3'/> + <cpu type='kvm' name='745_v2.4'/> + <cpu type='kvm' name='750_v2.0'/> + <cpu type='kvm' name='7445_v3.2'/> + <cpu type='kvm' name='750l_v3.2'/> + <cpu type='kvm' name='MPC8540_v10'/> + <cpu type='kvm' name='750_v1.0'/> + <cpu type='kvm' name='MPC8343A'/> + <cpu type='kvm' name='MPC8378'/> + <cpu type='kvm' name='G2HiP3'/> + <cpu type='kvm' name='750cxe_v3.0'/> + <cpu type='kvm' name='e500_v10'/> + <cpu type='kvm' name='STB03'/> + <cpu type='kvm' name='MPC8567'/> + <cpu type='kvm' name='MPC8545_v20'/> + <cpu type='kvm' name='MPC8548_v10'/> + <cpu type='kvm' name='755_v1.1'/> + <cpu type='kvm' name='603e7v'/> + <cpu type='kvm' name='Npe405H2'/> + <cpu type='kvm' name='750_v3.0'/> + <cpu type='kvm' name='Npe405H'/> + <cpu type='kvm' name='7400_v2.6'/> + <cpu type='kvm' name='405GPa'/> + <cpu type='kvm' name='MPC8548_v21'/> + <cpu type='kvm' name='MPC8541E_v10'/> + <cpu type='kvm' name='750l_v2.2'/> + <cpu type='kvm' name='MPC8555E_v10'/> + <cpu type='kvm' name='7457A_v1.1'/> + <cpu type='kvm' name='e200z6'/> + <cpu type='kvm' name='MPC8379E'/> + <cpu type='kvm' name='e500v2_v20'/> + <cpu type='kvm' name='MPC8347AP'/> + <cpu type='kvm' name='401B2'/> + <cpu type='kvm' name='MPC8349E'/> + <cpu type='kvm' name='755_v2.1'/> + <cpu type='kvm' name='MPC8543_v21'/> + <cpu type='kvm' name='MPC8547E_v20'/> + <cpu type='kvm' name='745_v2.8'/> + <cpu type='kvm' name='7455_v3.4'/> + <cpu type='kvm' name='7448_v1.1'/> + <cpu type='kvm' name='740_v2.2'/> + <cpu type='kvm' name='7400_v1.1'/> + <cpu type='kvm' name='MPC8567E'/> + <cpu type='kvm' name='7441_v2.10'/> + <cpu type='kvm' name='603e_v1.4'/> + <cpu type='kvm' name='G2leGP1'/> + <cpu type='kvm' name='7451_v2.10'/> + <cpu type='kvm' name='MPC8343E'/> + <cpu type='kvm' name='750cx_v2.2'/> + <cpu type='kvm' name='Npe405L'/> + <cpu type='kvm' name='603e7'/> + <cpu type='kvm' name='401A1'/> + <cpu type='kvm' name='MPC8377'/> + <cpu type='kvm' name='7448_v2.1'/> + <cpu type='kvm' name='7441_v2.3'/> + <cpu type='kvm' name='7400_v2.1'/> + <cpu type='kvm' name='405CRb'/> + <cpu type='kvm' name='604'/> + <cpu type='kvm' name='MPC8540_v20'/> + <cpu type='kvm' name='MPC8543_v10'/> + <cpu type='kvm' name='7447A_v1.0'/> + <cpu type='kvm' name='7445_v2.1'/> + <cpu type='kvm' name='e500_v20'/> + <cpu type='kvm' name='750gx_v1.1'/> + <cpu type='kvm' name='MPC8543E_v11'/> + <cpu type='kvm' name='750cxe_v2.4'/> + <cpu type='kvm' name='MPC8548_v20'/> + <cpu type='kvm' name='MPC8347AT'/> + <cpu type='kvm' name='POWER8NVL_v1.0'/> + <cpu type='kvm' name='7457A_v1.0'/> + <cpu type='kvm' name='7457_v1.0'/> + <cpu type='kvm' name='7450_v1.2'/> + <cpu type='kvm' name='MPC8572'/> + <cpu type='kvm' name='755_v2.5'/> + <cpu type='kvm' name='7410_v1.3'/> + <cpu type='kvm' name='745_v2.3'/> + <cpu type='kvm' name='750l_v2.1'/> + <cpu type='kvm' name='405GPR'/> + <cpu type='kvm' name='755_v2.0'/> + <cpu type='kvm' name='MPC8541_v11'/> + <cpu type='kvm' name='401C2'/> + <cpu type='kvm' name='e500v2_v30'/> + <cpu type='kvm' name='7455_v3.3'/> + <cpu type='kvm' name='405EZ'/> + <cpu type='kvm' name='MPC8568E'/> + <cpu type='kvm' name='755_v1.0'/> + <cpu type='kvm' name='603e_v1.3'/> + <cpu type='kvm' name='MPC8560_v10'/> + <cpu type='kvm' name='host'/> + <cpu type='kvm' name='MPC8560_v21'/> + <cpu type='kvm' name='G2H4'/> + <cpu type='kvm' name='MPC8533_v11'/> + <cpu type='kvm' name='740_v3.1'/> + <cpu type='kvm' name='e200z5'/> + <cpu type='kvm' name='MPC8349'/> + <cpu type='kvm' name='7400_v2.0'/> + <cpu type='kvm' name='405CRa'/> + <cpu type='kvm' name='MPC8543E_v10'/> + <cpu type='kvm' name='MPC8543E_v21'/> + <cpu type='kvm' name='750cxe_v2.3'/> + <cpu type='kvm' name='MPC8543_v20'/> + <cpu type='kvm' name='745_v2.7'/> + <cpu type='kvm' name='403GC'/> + <cpu type='kvm' name='e5500'/> + <cpu type='kvm' name='7448_v1.0'/> + <cpu type='kvm' name='MPC5200_v12'/> + <cpu type='kvm' name='740_v2.1'/> + <cpu type='kvm' name='745_v2.2'/> + <cpu type='kvm' name='7400_v1.0'/> + <cpu type='kvm' name='7410_v1.2'/> + <cpu type='kvm' name='x2vp4'/> + <cpu type='kvm' name='MPC8555_v11'/> + <cpu type='kvm' name='MPC8541_v10'/> + <cpu type='kvm' name='405LP'/> + <cpu type='kvm' name='750fx_v2.3'/> + <cpu type='kvm' name='405EP'/> + <cpu type='kvm' name='601_v2'/> + <cpu type='kvm' name='MPC8544_v11'/> + <cpu type='kvm' name='401D2'/> + <cpu type='kvm' name='MPC8572E'/> + <cpu type='kvm' name='604e_v1.0'/> + <cpu type='kvm' name='750cx_v2.1'/> + <cpu type='kvm' name='MPC5200B_v21'/> + <cpu type='kvm' name='750l_v3.0'/> + <cpu type='kvm' name='e300c4'/> + <cpu type='kvm' name='7448_v2.0'/> + <cpu type='kvm' name='7450_v2.1'/> + <cpu type='kvm' name='G2leGP'/> + <cpu type='kvm' name='750cxe_v3.1b'/> + <cpu type='kvm' name='7400_v2.9'/> + <cpu type='kvm' name='G2GP'/> + <cpu type='kvm' name='603'/> + <cpu type='kvm' name='405GPd'/> + <cpu type='kvm' name='MPC8548E_v11'/> + <cpu type='kvm' name='603e7t'/> + <cpu type='kvm' name='IOP480'/> + <cpu type='kvm' name='750gx_v1.0'/> + <cpu type='kvm' name='MPC8560_v20'/> + <cpu type='kvm' name='405D2'/> + <cpu type='kvm' name='750fl'/> + <cpu type='kvm' name='750l_v2.0'/> + <cpu type='kvm' name='x2vp20'/> + <cpu type='kvm' name='e600'/> + <cpu type='kvm' name='7450_v1.1'/> + <cpu type='kvm' name='755_v2.4'/> + <cpu type='kvm' name='7445_v1.0'/> + <cpu type='kvm' name='G2LS'/> + <cpu type='kvm' name='MPC8543E_v20'/> + <cpu type='kvm' name='7447_v1.1'/> + <cpu type='kvm' name='603e_v2.2'/> + <cpu type='kvm' name='603e_v4'/> + <cpu type='kvm' name='7455_v3.2'/> + <cpu type='kvm' name='740_v2.0'/> + <cpu type='kvm' name='MPC8347P'/> + <cpu type='kvm' name='POWER8'/> + <cpu type='kvm' name='440EPb'/> + <cpu type='kvm' name='MPC603'/> + <cpu type='kvm' name='603e_v1.2'/> + <cpu type='kvm' name='750fx_v2.2'/> + <cpu type='kvm' name='740_v1.0'/> + <cpu type='kvm' name='MPC8544_v10'/> + <cpu type='kvm' name='601_v1'/> + <cpu type='kvm' name='745_v1.1'/> + <cpu type='kvm' name='POWER7+_v2.1'/> + <cpu type='kvm' name='750cx_v2.0'/> + <cpu type='kvm' name='MPC8347EAP'/> + <cpu type='kvm' name='401E2'/> + <cpu type='kvm' name='MPC8641D'/> + <cpu type='kvm' name='e300c3'/> + <cpu type='kvm' name='MPC8533_v10'/> + <cpu type='kvm' name='7441_v2.1'/> + <cpu type='kvm' name='740_v3.0'/> + <cpu type='kvm' name='POWER5+_v2.1'/> + <cpu type='kvm' name='602'/> + <cpu type='kvm' name='MPC8548E_v10'/> + <cpu type='kvm' name='G2leLS'/> + <cpu type='kvm' name='MPC8343'/> + <cpu type='kvm' name='750cx_v1.0'/> + <cpu type='kvm' name='750cxe_v2.2'/> + <cpu type='kvm' name='604e_v2.4'/> + <cpu type='kvm' name='755_v2.8'/> + <cpu type='kvm' name='MPC8548E_v21'/> + <cpu type='kvm' name='745_v2.6'/> + <cpu type='kvm' name='G2le'/> + <cpu type='kvm' name='403GB'/> + <cpu type='kvm' name='MPC8545E_v21'/> + <cpu type='kvm' name='POWER7_v2.3'/> + <cpu type='kvm' name='750_v2.2'/> + <cpu type='kvm' name='7450_v1.0'/> + <cpu type='kvm' name='MPC5200_v11'/> + <cpu type='kvm' name='755_v2.3'/> + <cpu type='kvm' name='MPC8347EP'/> + <cpu type='kvm' name='7410_v1.1'/> + <cpu type='kvm' name='750gl'/> + <cpu type='kvm' name='403GCX'/> + <cpu type='kvm' name='750p'/> + <cpu type='kvm' name='745_v2.1'/> + <cpu type='kvm' name='7445_v3.4'/> + <cpu type='kvm' name='G2'/> + <cpu type='kvm' name='MPC8555_v10'/> + <cpu type='kvm' name='MPC8347T'/> + <cpu type='kvm' name='603e_v3'/> + <cpu type='kvm' name='970_v2.2'/> + <cpu type='kvm' name='440-Xilinx'/> + <cpu type='kvm' name='740p'/> + <cpu type='kvm' name='MPC5200B_v20'/> + <cpu type='kvm' name='440EPX'/> + <cpu type='kvm' name='603e_v1.1'/> + <cpu type='kvm' name='7451_v2.3'/> + <cpu type='kvm' name='7450_v2.0'/> + <cpu type='kvm' name='7400_v2.8'/> + <cpu type='kvm' name='7455_v2.1'/> + <cpu type='kvm' name='405GPc'/> + <cpu type='kvm' name='MPC8347EAT'/> + <cpu type='kvm' name='970mp_v1.1'/> + <cpu type='kvm' name='603e7v2'/> + <cpu type='kvm' name='604r'/> + <cpu type='kvm' name='7447A_v1.2'/> + <cpu type='kvm' name='MPC8533E_v11'/> + <cpu type='kvm' name='e500v2_v22'/> + <cpu type='kvm' name='401F2'/> + <cpu type='kvm' name='MPC8343EA'/> + <cpu type='kvm' name='7457_v1.2'/> + <cpu type='kvm' name='970fx_v3.1'/> + <cpu type='kvm' name='7447_v1.0'/> + <cpu type='kvm' name='745_v2.5'/> + <cpu type='kvm' name='MPC8548E_v20'/> + <cpu type='kvm' name='MPC8610'/> + <cpu type='kvm' name='403GA'/> + <cpu type='kvm' name='750cxe_v2.4b'/> + <cpu type='kvm' name='MPC5200_v10'/> + <cpu type='kvm' name='7410_v1.0'/> + <cpu type='kvm' name='G2leGP3'/> + <cpu type='kvm' name='603e_v4.1'/> + <cpu type='kvm' name='7445_v3.3'/> + <cpu type='kvm' name='440EPa'/> + <cpu type='kvm' name='970fx_v2.1'/> + <cpu type='kvm' name='MPC8377E'/> + <cpu type='kvm' name='750fx_v2.1'/> + <cpu type='kvm' name='601_v0'/> + <cpu type='kvm' name='STB04'/> + <cpu type='kvm' name='745_v1.0'/> + <cpu type='kvm' name='G2HiP4'/> + <cpu type='kvm' name='750cl_v2.0'/> + <cpu type='kvm' name='750cxr'/> + <cpu type='kvm' name='MPC8349EA'/> + <cpu type='kvm' name='750cxe_v3.1'/> + <cpu type='kvm' name='401'/> + <cpu type='kvm' name='MPC8379'/> + <cpu type='kvm' name='MPC8568'/> + <cpu type='kvm' name='e300c2'/> + <cpu type='kvm' name='750_v3.1'/> + <cpu type='kvm' name='MPC8544E_v11'/> + <cpu type='kvm' name='405GPb'/> + <cpu type='kvm' name='MPC8541E_v11'/> <cpu type='tcg' name='default'/> <cpu type='tcg' name='ppc'/> <cpu type='tcg' name='ppc32'/> -- 2.10.2

On Mon, Nov 21, 2016 at 00:21:23 +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml | 5 +- tests/domaincapstest.c | 2 +- .../caps_2.6.0.ppc64le.replies | 1324 +++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 436 ++++++- 4 files changed, 1753 insertions(+), 14 deletions(-)
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml b/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml index f6a98f7..b3d2d2a 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml @@ -19,13 +19,14 @@ </loader> </os> <cpu> - <mode name='host-passthrough' supported='no'/> + <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='yes'> <model fallback='allow'>POWER8</model> </mode> <mode name='custom' supported='yes'> <model usable='unknown'>POWER8</model> <model usable='unknown'>POWER7</model> + <model usable='unknown'>POWER8</model>
Oh, I forgot to mention that the two POWER8 models here really come from QEMU. The bug is already reported: https://bugzilla.redhat.com/show_bug.cgi?id=1396536 Jirka

On Mon, Nov 21, 2016 at 12:21:23AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml | 5 +- tests/domaincapstest.c | 2 +- .../caps_2.6.0.ppc64le.replies | 1324 +++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 436 ++++++- 4 files changed, 1753 insertions(+), 14 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.7.0.x86_64.replies | 103 ++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 31 ++++++- 2 files changed, 131 insertions(+), 3 deletions(-) diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies index 7b22dcc..4a87237 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies @@ -466,7 +466,7 @@ { "return": { - "fd": 13, + "fd": 15, "fdset-id": 0 }, "id": "libvirt-5" @@ -482,7 +482,7 @@ { "return": { - "enabled": false, + "enabled": true, "present": true }, "id": "libvirt-7" @@ -13299,3 +13299,102 @@ ], "id": "libvirt-47" } + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "Opteron_G5" + }, + { + "name": "Opteron_G4" + }, + { + "name": "Opteron_G3" + }, + { + "name": "Opteron_G2" + }, + { + "name": "Opteron_G1" + }, + { + "name": "Skylake-Client" + }, + { + "name": "Broadwell" + }, + { + "name": "Broadwell-noTSX" + }, + { + "name": "Haswell" + }, + { + "name": "Haswell-noTSX" + }, + { + "name": "IvyBridge" + }, + { + "name": "SandyBridge" + }, + { + "name": "Westmere" + }, + { + "name": "Nehalem" + }, + { + "name": "Penryn" + }, + { + "name": "Conroe" + }, + { + "name": "n270" + }, + { + "name": "athlon" + }, + { + "name": "pentium3" + }, + { + "name": "pentium2" + }, + { + "name": "pentium" + }, + { + "name": "486" + }, + { + "name": "coreduo" + }, + { + "name": "kvm32" + }, + { + "name": "qemu32" + }, + { + "name": "kvm64" + }, + { + "name": "core2duo" + }, + { + "name": "phenom" + }, + { + "name": "qemu64" + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml index e9ec323..38927d2 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml @@ -3,10 +3,10 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <usedQMP/> + <flag name='kvm'/> <flag name='mem-path'/> <flag name='drive-serial'/> <flag name='chardev'/> - <flag name='enable-kvm'/> <flag name='monitor-json'/> <flag name='sdl'/> <flag name='netdev'/> @@ -202,6 +202,35 @@ <kvmVersion>0</kvmVersion> <package> (v2.7.0)</package> <arch>x86_64</arch> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Skylake-Client'/> + <cpu type='kvm' name='Broadwell'/> + <cpu type='kvm' name='Broadwell-noTSX'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='Haswell-noTSX'/> + <cpu type='kvm' name='IvyBridge'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='486'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='qemu64'/> <cpu type='tcg' name='Opteron_G5'/> <cpu type='tcg' name='Opteron_G4'/> <cpu type='tcg' name='Opteron_G3'/> -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:24AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.7.0.x86_64.replies | 103 ++++++++++++++++++++- tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 31 ++++++- 2 files changed, 131 insertions(+), 3 deletions(-)
ACK Pavel

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.8.0.x86_64.replies | 14246 +++++++++++++++++++ tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 293 + tests/qemucapabilitiestest.c | 1 + 3 files changed, 14540 insertions(+) create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies new file mode 100644 index 0000000..7c50262 --- /dev/null +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies @@ -0,0 +1,14246 @@ +{ + "QMP": { + "version": { + "qemu": { + "micro": 90, + "minor": 7, + "major": 2 + }, + "package": " (v2.8.0-rc0-dirty)" + }, + "capabilities": [ + ] + } +} + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": { + "qemu": { + "micro": 90, + "minor": 7, + "major": 2 + }, + "package": " (v2.8.0-rc0-dirty)" + }, + "id": "libvirt-2" +} + +{ + "return": { + "arch": "x86_64" + }, + "id": "libvirt-3" +} + +{ + "return": [ + { + "name": "xen-set-global-dirty-log" + }, + { + "name": "xen-save-devices-state" + }, + { + "name": "xen-load-devices-state" + }, + { + "name": "x-colo-lost-heartbeat" + }, + { + "name": "x-blockdev-remove-medium" + }, + { + "name": "x-blockdev-insert-medium" + }, + { + "name": "x-blockdev-del" + }, + { + "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-vnc-servers" + }, + { + "name": "query-vnc" + }, + { + "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-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-remove" + }, + { + "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-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" + }, + { + "name": "netdev_add" + }, + { + "name": "device_add" + }, + { + "name": "query-qmp-schema" + } + ], + "id": "libvirt-4" +} + +{ + "return": { + "fd": 16, + "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" + }, + { + "name": "virtio-tablet-pci" + }, + { + "name": "pc-0.13-machine" + }, + { + "name": "generic-sdhci" + }, + { + "name": "i82551" + }, + { + "name": "i82550" + }, + { + "name": "Westmere-x86_64-cpu" + }, + { + "name": "pci-serial-4x" + }, + { + "name": "cryptodev-backend" + }, + { + "name": "Penryn-x86_64-cpu" + }, + { + "name": "Haswell-x86_64-cpu" + }, + { + "name": "iothread" + }, + { + "name": "cfi.pflash01" + }, + { + "name": "Skylake-Client-x86_64-cpu" + }, + { + "name": "virtio-gpu-device" + }, + { + "name": "Opteron_G3-x86_64-cpu" + }, + { + "name": "e1000e" + }, + { + "name": "Broadwell-x86_64-cpu" + }, + { + "name": "piix3-ide" + }, + { + "name": "floppy-bus" + }, + { + "name": "isa-parallel" + }, + { + "name": "megasas" + }, + { + "name": "i2c-bus" + }, + { + "name": "pc-q35-2.4-machine" + }, + { + "name": "vhost-vsock-device" + }, + { + "name": "usb-braille" + }, + { + "name": "mptsas1068" + }, + { + "name": "vmware-svga" + }, + { + "name": "PIIX3-xen" + }, + { + "name": "ccid-bus" + }, + { + "name": "scsi-cd" + }, + { + "name": "pc-i440fx-2.0-machine" + }, + { + "name": "isa-serial" + }, + { + "name": "usb-ehci" + }, + { + "name": "user-creatable" + }, + { + "name": "container" + }, + { + "name": "host-x86_64-cpu" + }, + { + "name": "pci-serial-2x" + }, + { + "name": "scsi-generic" + }, + { + "name": "piix4-ide" + }, + { + "name": "pc-1.0-machine" + }, + { + "name": "virtio-net-pci" + }, + { + "name": "hyperv-testdev" + }, + { + "name": "pc-dimm" + }, + { + "name": "pc-q35-2.8-machine" + }, + { + "name": "Haswell-noTSX-x86_64-cpu" + }, + { + "name": "pc-i440fx-2.1-machine" + }, + { + "name": "virtio-mouse-device" + }, + { + "name": "virtio-mouse-pci" + }, + { + "name": "isa-debugcon" + }, + { + "name": "AMDVI-PCI" + }, + { + "name": "ide-hd" + }, + { + "name": "virtio-vga" + }, + { + "name": "qemu64-x86_64-cpu" + }, + { + "name": "isa-ipmi-bt" + }, + { + "name": "rng-egd" + }, + { + "name": "isa-pcspk" + }, + { + "name": "isa-pit" + }, + { + "name": "pc-1.1-machine" + }, + { + "name": "filter-buffer" + }, + { + "name": "ich9-usb-ehci1" + }, + { + "name": "ich9-usb-ehci2" + }, + { + "name": "pxb-host" + }, + { + "name": "intel-iommu" + }, + { + "name": "irq" + }, + { + "name": "ipmi-bmc-sim" + }, + { + "name": "cirrus-vga" + }, + { + "name": "virtconsole" + }, + { + "name": "virtio-rng-pci" + }, + { + "name": "PCIE" + }, + { + "name": "vfio-amd-xgbe" + }, + { + "name": "pentium3-x86_64-cpu" + }, + { + "name": "qxl-vga" + }, + { + "name": "ioapic" + }, + { + "name": "kvm-pit" + }, + { + "name": "pc-i440fx-2.5-machine" + }, + { + "name": "filter-rewriter" + }, + { + "name": "qio-channel-buffer" + }, + { + "name": "vhost-scsi-pci" + }, + { + "name": "usb-kbd" + }, + { + "name": "xen-apic" + }, + { + "name": "usb-host" + }, + { + "name": "usb-bus" + }, + { + "name": "pc-i440fx-1.4-machine" + }, + { + "name": "PIIX3" + }, + { + "name": "486-x86_64-cpu" + }, + { + "name": "ES1370" + }, + { + "name": "gus" + }, + { + "name": "kvm-pci-assign" + }, + { + "name": "isa-applesmc" + }, + { + "name": "pc-i440fx-2.6-machine" + }, + { + "name": "xen-pci-passthrough" + }, + { + "name": "i82559er" + }, + { + "name": "q35-pcihost" + }, + { + "name": "usb-bt-dongle" + }, + { + "name": "e1000-82545em" + }, + { + "name": "e1000-82544gc" + }, + { + "name": "ipmi-interface" + }, + { + "name": "pc-i440fx-1.5-machine" + }, + { + "name": "or-irq" + }, + { + "name": "pc-0.14-machine" + }, + { + "name": "i6300esb" + }, + { + "name": "mc146818rtc" + }, + { + "name": "AC97" + }, + { + "name": "filter-redirector" + }, + { + "name": "PIIX4_PM" + }, + { + "name": "piix4-usb-uhci" + }, + { + "name": "sysbus-ahci" + }, + { + "name": "virtio-tablet-device" + }, + { + "name": "kvm-ioapic" + }, + { + "name": "pvpanic" + }, + { + "name": "core2duo-x86_64-cpu" + }, + { + "name": "tls-creds-x509" + }, + { + "name": "virtio-9p-pci" + }, + { + "name": "scsi-disk" + }, + { + "name": "acpi-device-interface" + }, + { + "name": "vfio-pci-igd-lpc-bridge" + }, + { + "name": "sb16" + }, + { + "name": "qemu-console" + }, + { + "name": "pc-0.15-machine" + }, + { + "name": "usb-mouse" + }, + { + "name": "xenfv-machine" + }, + { + "name": "filter-dump" + }, + { + "name": "virtio-blk-pci" + }, + { + "name": "piix3-usb-uhci" + }, + { + "name": "vfio-calxeda-xgmac" + }, + { + "name": "virtio-scsi-device" + }, + { + "name": "tpci200" + }, + { + "name": "virtio-9p-device" + }, + { + "name": "pc-q35-2.5-machine" + }, + { + "name": "SUNW,fdtwo" + }, + { + "name": "hda-output" + }, + { + "name": "i8257" + }, + { + "name": "Opteron_G4-x86_64-cpu" + }, + { + "name": "filter-mirror" + }, + { + "name": "virtio-mmio" + }, + { + "name": "intctrl" + }, + { + "name": "isa-i8259" + }, + { + "name": "System" + }, + { + "name": "pvscsi" + }, + { + "name": "amd-iommu" + }, + { + "name": "virtio-net-device" + }, + { + "name": "colo-compare" + }, + { + "name": "sd-bus" + }, + { + "name": "qio-channel-file" + }, + { + "name": "usb-hub" + }, + { + "name": "IvyBridge-x86_64-cpu" + }, + { + "name": "hda-duplex" + }, + { + "name": "igd-passthrough-i440FX" + }, + { + "name": "virtio-keyboard-pci" + }, + { + "name": "igd-passthrough-isa-bridge" + }, + { + "name": "rocker" + }, + { + "name": "nec-usb-xhci" + }, + { + "name": "input-linux" + }, + { + "name": "megasas-gen2" + }, + { + "name": "pci-ohci" + }, + { + "name": "ib700" + }, + { + "name": "xio3130-downstream" + }, + { + "name": "isapc-machine" + }, + { + "name": "ipoctal232" + }, + { + "name": "ide-cd" + }, + { + "name": "tls-creds-anon" + }, + { + "name": "pc-i440fx-2.2-machine" + }, + { + "name": "isabus-bridge" + }, + { + "name": "isa-ipmi-kcs" + }, + { + "name": "memory-backend-file" + }, + { + "name": "isa-ide" + }, + { + "name": "virtio-keyboard-device" + }, + { + "name": "virtio-crypto-pci" + }, + { + "name": "isa-vga" + }, + { + "name": "qemu:memory-region" + }, + { + "name": "ipmi-bmc-extern" + }, + { + "name": "rng-random" + }, + { + "name": "hotplug-handler" + }, + { + "name": "kvm-i8259" + }, + { + "name": "i440FX-pcihost" + }, + { + "name": "qemu32-x86_64-cpu" + }, + { + "name": "tpm-tis" + }, + { + "name": "tpm-passthrough" + }, + { + "name": "pc-1.2-machine" + }, + { + "name": "isa-debug-exit" + }, + { + "name": "Opteron_G1-x86_64-cpu" + }, + { + "name": "pc-testdev" + }, + { + "name": "pc-0.10-machine" + }, + { + "name": "pc-i440fx-2.3-machine" + }, + { + "name": "xen-pvdevice" + }, + { + "name": "sga" + }, + { + "name": "pcnet" + }, + { + "name": "apic" + }, + { + "name": "ivshmem" + }, + { + "name": "hpet" + }, + { + "name": "adlib" + }, + { + "name": "qio-channel-command" + }, + { + "name": "lsi53c895a" + }, + { + "name": "secret" + }, + { + "name": "pxb-bus" + }, + { + "name": "usb-audio" + }, + { + "name": "usb-wacom-tablet" + }, + { + "name": "virtio-mmio-bus" + }, + { + "name": "pc-0.11-machine" + }, + { + "name": "kvm-apic" + }, + { + "name": "phenom-x86_64-cpu" + }, + { + "name": "xensysdev" + }, + { + "name": "fw_cfg_io" + }, + { + "name": "usb-net" + }, + { + "name": "ioh3420" + }, + { + "name": "virtio-crypto-device" + }, + { + "name": "cs4231a" + }, + { + "name": "dc390" + }, + { + "name": "nvme" + }, + { + "name": "i82801b11-bridge" + }, + { + "name": "kvmvapic" + }, + { + "name": "usb-tablet" + }, + { + "name": "fw-path-provider" + }, + { + "name": "usb-ccid" + }, + { + "name": "sdhci-bus" + }, + { + "name": "pci-bridge-seat" + }, + { + "name": "mch" + }, + { + "name": "pc-i440fx-2.7-machine" + }, + { + "name": "vhost-scsi" + }, + { + "name": "isa-dma" + }, + { + "name": "tcg-accel" + }, + { + "name": "ich9-usb-uhci2" + }, + { + "name": "isa-cirrus-vga" + }, + { + "name": "usb-bot" + }, + { + "name": "ICH9-LPC" + }, + { + "name": "edu" + }, + { + "name": "accel" + }, + { + "name": "pxb-pcie-bus" + }, + { + "name": "pc-i440fx-1.6-machine" + }, + { + "name": "lsi53c810" + }, + { + "name": "kvmclock" + }, + { + "name": "loader" + }, + { + "name": "pc-i440fx-2.8-machine" + }, + { + "name": "ich9-usb-uhci4" + }, + { + "name": "virtio-serial-bus" + }, + { + "name": "nvdimm" + }, + { + "name": "virtio-balloon-pci" + }, + { + "name": "SandyBridge-x86_64-cpu" + }, + { + "name": "esp" + }, + { + "name": "virtio-balloon-device" + }, + { + "name": "x3130-upstream" + }, + { + "name": "ich9-usb-uhci5" + }, + { + "name": "qxl" + }, + { + "name": "intel-hda" + }, + { + "name": "ich9-usb-uhci6" + }, + { + "name": "pc-i440fx-1.7-machine" + }, + { + "name": "virtio-serial-device" + }, + { + "name": "ich9-usb-uhci3" + }, + { + "name": "ICH9 SMB" + }, + { + "name": "pxb-pcie" + }, + { + "name": "piix3-ide-xen" + }, + { + "name": "xen-accel" + }, + { + "name": "virtio-input-host-device" + }, + { + "name": "vmxnet3" + }, + { + "name": "IDE" + }, + { + "name": "VGA" + }, + { + "name": "pci-testdev" + }, + { + "name": "ich9-usb-uhci1" + }, + { + "name": "xenpv-machine" + }, + { + "name": "pci-bridge" + }, + { + "name": "SCSI" + }, + { + "name": "none-machine" + }, + { + "name": "sysbus-fdc" + }, + { + "name": "allwinner-ahci" + }, + { + "name": "n270-x86_64-cpu" + }, + { + "name": "pci-serial" + }, + { + "name": "pc-q35-2.6-machine" + }, + { + "name": "athlon-x86_64-cpu" + }, + { + "name": "virtio-rng-device" + }, + { + "name": "am53c974" + }, + { + "name": "ISA" + }, + { + "name": "i8042" + }, + { + "name": "kvm-accel" + }, + { + "name": "i82559c" + }, + { + "name": "floppy" + }, + { + "name": "i82559b" + }, + { + "name": "i82559a" + }, + { + "name": "scsi-hd" + }, + { + "name": "qtest-accel" + }, + { + "name": "virtio-scsi-pci" + }, + { + "name": "hda-micro" + }, + { + "name": "scsi-block" + }, + { + "name": "ich9-intel-hda" + }, + { + "name": "rtl8139" + }, + { + "name": "vmmouse" + }, + { + "name": "pc-q35-2.7-machine" + }, + { + "name": "usb-mtp" + }, + { + "name": "ide-drive" + }, + { + "name": "qio-channel-websock" + }, + { + "name": "fw_cfg_mem" + }, + { + "name": "PCI" + }, + { + "name": "Opteron_G5-x86_64-cpu" + }, + { + "name": "vmport" + }, + { + "name": "coreduo-x86_64-cpu" + }, + { + "name": "virtio-serial-pci" + }, + { + "name": "xen-platform" + }, + { + "name": "virtio-input-host-pci" + }, + { + "name": "pentium2-x86_64-cpu" + }, + { + "name": "i82558b" + }, + { + "name": "nmi" + }, + { + "name": "cryptodev-backend-builtin" + }, + { + "name": "i82558a" + }, + { + "name": "qemu,register" + }, + { + "name": "ne2k_isa" + }, + { + "name": "sdhci-pci" + }, + { + "name": "virtio-pci-bus" + }, + { + "name": "pxb" + }, + { + "name": "port92" + }, + { + "name": "e1000" + }, + { + "name": "Conroe-x86_64-cpu" + }, + { + "name": "kvm64-x86_64-cpu" + }, + { + "name": "qio-channel-tls" + }, + { + "name": "vt82c686b-usb-uhci" + }, + { + "name": "HDA" + }, + { + "name": "usb-storage" + }, + { + "name": "pc-1.3-machine" + }, + { + "name": "usb-serial" + }, + { + "name": "usb-redir" + }, + { + "name": "sysbus-ohci" + }, + { + "name": "i82801" + }, + { + "name": "pc-i440fx-2.4-machine" + }, + { + "name": "i82557b" + }, + { + "name": "usb-uas" + }, + { + "name": "Broadwell-noTSX-x86_64-cpu" + }, + { + "name": "i82557c" + }, + { + "name": "Nehalem-x86_64-cpu" + }, + { + "name": "memory-backend-ram" + }, + { + "name": "i82557a" + }, + { + "name": "virtserialport" + }, + { + "name": "i440FX" + }, + { + "name": "ne2k_pci" + }, + { + "name": "smbus-eeprom" + }, + { + "name": "i82562" + }, + { + "name": "ich9-ahci" + }, + { + "name": "isa-fdc" + }, + { + "name": "sd-card" + }, + { + "name": "pc-0.12-machine" + }, + { + "name": "kvm32-x86_64-cpu" + }, + { + "name": "Opteron_G2-x86_64-cpu" + }, + { + "name": "vfio-pci" + }, + { + "name": "IndustryPack" + }, + { + "name": "virtio-gpu-pci" + }, + { + "name": "ivshmem-plain" + }, + { + "name": "secondary-vga" + }, + { + "name": "ivshmem-doorbell" + }, + { + "name": "qio-channel-socket" + }, + { + "name": "pentium-x86_64-cpu" + }, + { + "name": "virtio-blk-device" + } + ], + "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": "werror", + "description": "Error handling policy, report/ignore/enospc/stop/auto", + "type": "BlockdevOnError" + }, + { + "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-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "class", + "type": "uint32" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or 06", + "type": "int32" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "vectors", + "type": "uint32" + }, + { + "name": "physical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "virtio-backend", + "type": "child<virtio-blk-device>" + }, + { + "name": "config-wce", + "description": "on/off", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "num-queues", + "type": "uint16" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "write-cache", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "opt_io_size", + "type": "uint32" + }, + { + "name": "romfile", + "type": "str" + } + ], + "id": "libvirt-10" +} + +{ + "return": [ + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-txtimer", + "type": "uint32" + }, + { + "name": "guest_ufo", + "description": "on/off", + "type": "bool" + }, + { + "name": "mq", + "description": "on/off", + "type": "bool" + }, + { + "name": "status", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_ecn", + "description": "on/off", + "type": "bool" + }, + { + "name": "ioeventfd", + "description": "on/off", + "type": "bool" + }, + { + "name": "tx", + "type": "str" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "ctrl_rx_extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "mac", + "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56", + "type": "str" + }, + { + "name": "rx_queue_size", + "type": "uint16" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_tso6", + "description": "on/off", + "type": "bool" + }, + { + "name": "gso", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_ecn", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_rx", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_tso4", + "description": "on/off", + "type": "bool" + }, + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "guest_csum", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_announce", + "description": "on/off", + "type": "bool" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-txburst", + "type": "int32" + }, + { + "name": "ctrl_vlan", + "description": "on/off", + "type": "bool" + }, + { + "name": "csum", + "description": "on/off", + "type": "bool" + }, + { + "name": "mrg_rxbuf", + "description": "on/off", + "type": "bool" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_guest_offloads", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_tso6", + "description": "on/off", + "type": "bool" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "ctrl_mac_addr", + "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": "vlan", + "description": "Integer VLAN id to connect to", + "type": "int32" + }, + { + "name": "host_tso4", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_ufo", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-backend", + "type": "child<virtio-net-device>" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "netdev", + "description": "ID of a netdev to use as a backend", + "type": "str" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + } + ], + "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": "disable-modern", + "type": "bool" + }, + { + "name": "cmd_per_lun", + "type": "uint32" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "num_queues", + "type": "uint32" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "hotplug", + "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": "virtio-backend", + "type": "child<virtio-scsi-device>" + }, + { + "name": "notify_on_empty", + "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": "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": "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": "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": "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": "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": "int" + }, + { + "name": "pci-hole-end", + "type": "int" + }, + { + "name": "pci-hole-start", + "type": "int" + }, + { + "name": "pci-hole64-start", + "type": "int" + }, + { + "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": "int" + }, + { + "name": "io-mem", + "type": "link<qemu:memory-region>" + }, + { + "name": "pci-hole64-end", + "type": "int" + }, + { + "name": "pci-hole-end", + "type": "int" + }, + { + "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": "int" + }, + { + "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": "int" + } + ], + "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": "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": "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": "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": "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": "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": "cmdlog", + "type": "uint32" + } + ], + "id": "libvirt-33" +} + +{ + "return": [ + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "ioeventfd", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "stats", + "description": "on/off", + "type": "bool" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "virgl", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "virtio-backend", + "type": "child<virtio-gpu-device>" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "vectors", + "type": "uint32" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or 06", + "type": "int32" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "max_outputs", + "type": "uint32" + }, + { + "name": "rombar", + "type": "uint32" + } + ], + "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": "stats", + "description": "on/off", + "type": "bool" + }, + { + "name": "max_outputs", + "type": "uint32" + }, + { + "name": "virgl", + "description": "on/off", + "type": "bool" + } + ], + "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": "disable_s4", + "type": "uint8" + }, + { + "name": "acpi_disable_cmd", + "type": "uint8" + }, + { + "name": "cpu-hotplug-legacy", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "disable_s3", + "type": "uint8" + }, + { + "name": "s4_val", + "type": "uint8" + }, + { + "name": "acpi_enable_cmd", + "type": "uint8" + }, + { + "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": "gpe0_blk", + "type": "uint32" + } + ], + "id": "libvirt-36" +} + +{ + "return": [ + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "class", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest-stats", + "type": "guest statistics" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "virtio-backend", + "type": "child<virtio-balloon-device>" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest-stats-polling-interval", + "type": "int" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or 06", + "type": "int32" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "deflate-on-oom", + "description": "on/off", + "type": "bool" + } + ], + "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": "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": "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": [ + { + "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", + "is-default": true, + "cpu-max": 255, + "alias": "pc" + }, + { + "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-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-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, + "alias": "q35" + }, + { + "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-0.13", + "cpu-max": 255 + } + ], + "id": "libvirt-41" +} + +{ + "return": [ + { + "name": "host", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "qemu64", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "qemu32", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "phenom", + "unavailable-features": [ + "mmxext", + "fxsr-opt", + "3dnowext", + "3dnow", + "sse4a", + "npt" + ], + "static": false + }, + { + "name": "pentium3", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "pentium2", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "pentium", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "n270", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "kvm64", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "kvm32", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "coreduo", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "core2duo", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "athlon", + "unavailable-features": [ + "mmxext", + "3dnowext", + "3dnow" + ], + "static": false + }, + { + "name": "Westmere", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Skylake-Client", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "SandyBridge", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Penryn", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Opteron_G5", + "unavailable-features": [ + "sse4a", + "misalignsse", + "xop", + "fma4", + "tbm" + ], + "static": false + }, + { + "name": "Opteron_G4", + "unavailable-features": [ + "sse4a", + "misalignsse", + "xop", + "fma4" + ], + "static": false + }, + { + "name": "Opteron_G3", + "unavailable-features": [ + "sse4a", + "misalignsse" + ], + "static": false + }, + { + "name": "Opteron_G2", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Opteron_G1", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Nehalem", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "IvyBridge", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Haswell", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Haswell-noTSX", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Conroe", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Broadwell", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Broadwell-noTSX", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "486", + "unavailable-features": [ + ], + "static": false + } + ], + "id": "libvirt-42" +} + +{ + "return": [ + "tpm-tis" + ], + "id": "libvirt-43" +} + +{ + "return": [ + "passthrough" + ], + "id": "libvirt-44" +} + +{ + "return": [ + { + "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": "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": "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": "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": "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": "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": "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": "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": "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": "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-45" +} + +{ + "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" + } + ], + "id": "libvirt-46" +} + +{ + "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": "17" + }, + { + "name": "RESUME", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "RTC_CHANGE", + "meta-type": "event", + "arg-type": "20" + }, + { + "name": "SHUTDOWN", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "SPICE_CONNECTED", + "meta-type": "event", + "arg-type": "21" + }, + { + "name": "SPICE_DISCONNECTED", + "meta-type": "event", + "arg-type": "22" + }, + { + "name": "SPICE_INITIALIZED", + "meta-type": "event", + "arg-type": "23" + }, + { + "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": "24" + }, + { + "name": "VNC_DISCONNECTED", + "meta-type": "event", + "arg-type": "25" + }, + { + "name": "VNC_INITIALIZED", + "meta-type": "event", + "arg-type": "26" + }, + { + "name": "VSERPORT_CHANGE", + "meta-type": "event", + "arg-type": "27" + }, + { + "name": "WAKEUP", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "WATCHDOG", + "meta-type": "event", + "arg-type": "28" + }, + { + "name": "add-fd", + "ret-type": "30", + "meta-type": "command", + "arg-type": "29" + }, + { + "name": "add_client", + "ret-type": "17", + "meta-type": "command", + "arg-type": "31" + }, + { + "name": "balloon", + "ret-type": "17", + "meta-type": "command", + "arg-type": "32" + }, + { + "name": "block-commit", + "ret-type": "17", + "meta-type": "command", + "arg-type": "33" + }, + { + "name": "block-dirty-bitmap-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "34" + }, + { + "name": "block-dirty-bitmap-clear", + "ret-type": "17", + "meta-type": "command", + "arg-type": "35" + }, + { + "name": "block-dirty-bitmap-remove", + "ret-type": "17", + "meta-type": "command", + "arg-type": "35" + }, + { + "name": "block-job-cancel", + "ret-type": "17", + "meta-type": "command", + "arg-type": "36" + }, + { + "name": "block-job-complete", + "ret-type": "17", + "meta-type": "command", + "arg-type": "37" + }, + { + "name": "block-job-pause", + "ret-type": "17", + "meta-type": "command", + "arg-type": "38" + }, + { + "name": "block-job-resume", + "ret-type": "17", + "meta-type": "command", + "arg-type": "39" + }, + { + "name": "block-job-set-speed", + "ret-type": "17", + "meta-type": "command", + "arg-type": "40" + }, + { + "name": "block-set-write-threshold", + "ret-type": "17", + "meta-type": "command", + "arg-type": "41" + }, + { + "name": "block-stream", + "ret-type": "17", + "meta-type": "command", + "arg-type": "42" + }, + { + "name": "block_passwd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "43" + }, + { + "name": "block_resize", + "ret-type": "17", + "meta-type": "command", + "arg-type": "44" + }, + { + "name": "block_set_io_throttle", + "ret-type": "17", + "meta-type": "command", + "arg-type": "45" + }, + { + "name": "blockdev-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "46" + }, + { + "name": "blockdev-backup", + "ret-type": "17", + "meta-type": "command", + "arg-type": "47" + }, + { + "name": "blockdev-change-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "48" + }, + { + "name": "blockdev-close-tray", + "ret-type": "17", + "meta-type": "command", + "arg-type": "49" + }, + { + "name": "blockdev-mirror", + "ret-type": "17", + "meta-type": "command", + "arg-type": "50" + }, + { + "name": "blockdev-open-tray", + "ret-type": "17", + "meta-type": "command", + "arg-type": "51" + }, + { + "name": "blockdev-snapshot", + "ret-type": "17", + "meta-type": "command", + "arg-type": "52" + }, + { + "name": "blockdev-snapshot-delete-internal-sync", + "ret-type": "54", + "meta-type": "command", + "arg-type": "53" + }, + { + "name": "blockdev-snapshot-internal-sync", + "ret-type": "17", + "meta-type": "command", + "arg-type": "55" + }, + { + "name": "blockdev-snapshot-sync", + "ret-type": "17", + "meta-type": "command", + "arg-type": "56" + }, + { + "name": "change", + "ret-type": "17", + "meta-type": "command", + "arg-type": "57" + }, + { + "name": "change-backing-file", + "ret-type": "17", + "meta-type": "command", + "arg-type": "58" + }, + { + "name": "change-vnc-password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "59" + }, + { + "name": "chardev-add", + "ret-type": "61", + "meta-type": "command", + "arg-type": "60" + }, + { + "name": "chardev-remove", + "ret-type": "17", + "meta-type": "command", + "arg-type": "62" + }, + { + "name": "client_migrate_info", + "ret-type": "17", + "meta-type": "command", + "arg-type": "63" + }, + { + "name": "closefd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "64" + }, + { + "name": "cont", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "cpu", + "ret-type": "17", + "meta-type": "command", + "arg-type": "65" + }, + { + "name": "cpu-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "66" + }, + { + "name": "device-list-properties", + "ret-type": "[68]", + "meta-type": "command", + "arg-type": "67" + }, + { + "name": "device_add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "69" + }, + { + "name": "device_del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "70" + }, + { + "name": "drive-backup", + "ret-type": "17", + "meta-type": "command", + "arg-type": "71" + }, + { + "name": "drive-mirror", + "ret-type": "17", + "meta-type": "command", + "arg-type": "72" + }, + { + "name": "dump-guest-memory", + "ret-type": "17", + "meta-type": "command", + "arg-type": "73" + }, + { + "name": "dump-skeys", + "ret-type": "17", + "meta-type": "command", + "arg-type": "74" + }, + { + "name": "eject", + "ret-type": "17", + "meta-type": "command", + "arg-type": "75" + }, + { + "name": "expire_password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "76" + }, + { + "name": "getfd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "77" + }, + { + "name": "human-monitor-command", + "ret-type": "str", + "meta-type": "command", + "arg-type": "78" + }, + { + "name": "inject-nmi", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "input-send-event", + "ret-type": "17", + "meta-type": "command", + "arg-type": "79" + }, + { + "name": "memsave", + "ret-type": "17", + "meta-type": "command", + "arg-type": "80" + }, + { + "name": "migrate", + "ret-type": "17", + "meta-type": "command", + "arg-type": "81" + }, + { + "name": "migrate-incoming", + "ret-type": "17", + "meta-type": "command", + "arg-type": "82" + }, + { + "name": "migrate-set-cache-size", + "ret-type": "17", + "meta-type": "command", + "arg-type": "83" + }, + { + "name": "migrate-set-capabilities", + "ret-type": "17", + "meta-type": "command", + "arg-type": "84" + }, + { + "name": "migrate-set-parameters", + "ret-type": "17", + "meta-type": "command", + "arg-type": "85" + }, + { + "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": "86" + }, + { + "name": "migrate_set_speed", + "ret-type": "17", + "meta-type": "command", + "arg-type": "87" + }, + { + "name": "nbd-server-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "88" + }, + { + "name": "nbd-server-start", + "ret-type": "17", + "meta-type": "command", + "arg-type": "89" + }, + { + "name": "nbd-server-stop", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "netdev_add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "90" + }, + { + "name": "netdev_del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "91" + }, + { + "name": "object-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "92" + }, + { + "name": "object-del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "93" + }, + { + "name": "pmemsave", + "ret-type": "17", + "meta-type": "command", + "arg-type": "94" + }, + { + "name": "qmp_capabilities", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "qom-get", + "ret-type": "any", + "meta-type": "command", + "arg-type": "95" + }, + { + "name": "qom-list", + "ret-type": "[97]", + "meta-type": "command", + "arg-type": "96" + }, + { + "name": "qom-list-types", + "ret-type": "[99]", + "meta-type": "command", + "arg-type": "98" + }, + { + "name": "qom-set", + "ret-type": "17", + "meta-type": "command", + "arg-type": "100" + }, + { + "name": "query-acpi-ospm-status", + "ret-type": "[101]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-balloon", + "ret-type": "102", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-block", + "ret-type": "[103]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-block-jobs", + "ret-type": "[104]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-blockstats", + "ret-type": "[106]", + "meta-type": "command", + "arg-type": "105" + }, + { + "name": "query-chardev", + "ret-type": "[107]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-chardev-backends", + "ret-type": "[108]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-command-line-options", + "ret-type": "[110]", + "meta-type": "command", + "arg-type": "109" + }, + { + "name": "query-commands", + "ret-type": "[111]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-cpu-definitions", + "ret-type": "[112]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-cpu-model-baseline", + "ret-type": "114", + "meta-type": "command", + "arg-type": "113" + }, + { + "name": "query-cpu-model-comparison", + "ret-type": "116", + "meta-type": "command", + "arg-type": "115" + }, + { + "name": "query-cpu-model-expansion", + "ret-type": "118", + "meta-type": "command", + "arg-type": "117" + }, + { + "name": "query-cpus", + "ret-type": "[119]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-dump", + "ret-type": "120", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-dump-guest-memory-capability", + "ret-type": "121", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-events", + "ret-type": "[122]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-fdsets", + "ret-type": "[123]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-gic-capabilities", + "ret-type": "[124]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-hotpluggable-cpus", + "ret-type": "[125]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-iothreads", + "ret-type": "[126]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-kvm", + "ret-type": "127", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-machines", + "ret-type": "[128]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-memdev", + "ret-type": "[129]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-memory-devices", + "ret-type": "[130]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-mice", + "ret-type": "[131]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-migrate", + "ret-type": "132", + "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": "[133]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-migrate-parameters", + "ret-type": "85", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-name", + "ret-type": "134", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-named-block-nodes", + "ret-type": "[135]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-pci", + "ret-type": "[136]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-qmp-schema", + "ret-type": "[137]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-rocker", + "ret-type": "139", + "meta-type": "command", + "arg-type": "138" + }, + { + "name": "query-rocker-of-dpa-flows", + "ret-type": "[141]", + "meta-type": "command", + "arg-type": "140" + }, + { + "name": "query-rocker-of-dpa-groups", + "ret-type": "[143]", + "meta-type": "command", + "arg-type": "142" + }, + { + "name": "query-rocker-ports", + "ret-type": "[145]", + "meta-type": "command", + "arg-type": "144" + }, + { + "name": "query-rx-filter", + "ret-type": "[147]", + "meta-type": "command", + "arg-type": "146" + }, + { + "name": "query-spice", + "ret-type": "148", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-status", + "ret-type": "149", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-target", + "ret-type": "150", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm", + "ret-type": "[151]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm-models", + "ret-type": "[152]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm-types", + "ret-type": "[153]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-uuid", + "ret-type": "154", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-version", + "ret-type": "155", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-vnc", + "ret-type": "156", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-vnc-servers", + "ret-type": "[157]", + "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": "158" + }, + { + "name": "ringbuf-read", + "ret-type": "str", + "meta-type": "command", + "arg-type": "159" + }, + { + "name": "ringbuf-write", + "ret-type": "17", + "meta-type": "command", + "arg-type": "160" + }, + { + "name": "rtc-reset-reinjection", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "screendump", + "ret-type": "17", + "meta-type": "command", + "arg-type": "161" + }, + { + "name": "send-key", + "ret-type": "17", + "meta-type": "command", + "arg-type": "162" + }, + { + "name": "set_link", + "ret-type": "17", + "meta-type": "command", + "arg-type": "163" + }, + { + "name": "set_password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "164" + }, + { + "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": "[166]", + "meta-type": "command", + "arg-type": "165" + }, + { + "name": "trace-event-set-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "167" + }, + { + "name": "transaction", + "ret-type": "17", + "meta-type": "command", + "arg-type": "168" + }, + { + "name": "x-blockdev-change", + "ret-type": "17", + "meta-type": "command", + "arg-type": "169" + }, + { + "name": "x-blockdev-del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "170" + }, + { + "name": "x-blockdev-insert-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "171" + }, + { + "name": "x-blockdev-remove-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "172" + }, + { + "name": "x-colo-lost-heartbeat", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "xen-load-devices-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "173" + }, + { + "name": "xen-save-devices-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "174" + }, + { + "name": "xen-set-global-dirty-log", + "ret-type": "17", + "meta-type": "command", + "arg-type": "175" + }, + { + "name": "0", + "members": [ + { + "name": "info", + "type": "101" + } + ], + "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": "176" + }, + { + "name": "action", + "type": "177" + }, + { + "name": "nospace", + "default": null, + "type": "bool" + }, + { + "name": "reason", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "4", + "members": [ + { + "name": "type", + "type": "178" + }, + { + "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": "178" + }, + { + "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": "176" + }, + { + "name": "action", + "type": "177" + } + ], + "meta-type": "object" + }, + { + "name": "7", + "members": [ + { + "name": "type", + "type": "178" + }, + { + "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": "120" + }, + { + "name": "error", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "12", + "members": [ + { + "name": "action", + "type": "179" + } + ], + "meta-type": "object" + }, + { + "name": "13", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "msg", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "14", + "members": [ + { + "name": "status", + "type": "180" + } + ], + "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": "181" + }, + { + "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": "offset", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "21", + "members": [ + { + "name": "server", + "type": "182" + }, + { + "name": "client", + "type": "182" + } + ], + "meta-type": "object" + }, + { + "name": "22", + "members": [ + { + "name": "server", + "type": "182" + }, + { + "name": "client", + "type": "182" + } + ], + "meta-type": "object" + }, + { + "name": "23", + "members": [ + { + "name": "server", + "type": "183" + }, + { + "name": "client", + "type": "184" + } + ], + "meta-type": "object" + }, + { + "name": "24", + "members": [ + { + "name": "server", + "type": "185" + }, + { + "name": "client", + "type": "186" + } + ], + "meta-type": "object" + }, + { + "name": "25", + "members": [ + { + "name": "server", + "type": "185" + }, + { + "name": "client", + "type": "187" + } + ], + "meta-type": "object" + }, + { + "name": "26", + "members": [ + { + "name": "server", + "type": "185" + }, + { + "name": "client", + "type": "187" + } + ], + "meta-type": "object" + }, + { + "name": "27", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "open", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "28", + "members": [ + { + "name": "action", + "type": "188" + } + ], + "meta-type": "object" + }, + { + "name": "29", + "members": [ + { + "name": "fdset-id", + "default": null, + "type": "int" + }, + { + "name": "opaque", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "30", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fd", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "31", + "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": "32", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "33", + "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" + } + ], + "meta-type": "object" + }, + { + "name": "34", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "granularity", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "35", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "36", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "37", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "38", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "39", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "40", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "speed", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "41", + "members": [ + { + "name": "node-name", + "type": "str" + }, + { + "name": "write-threshold", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "42", + "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": "189" + } + ], + "meta-type": "object" + }, + { + "name": "43", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "password", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "44", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "size", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "45", + "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": "46", + "tag": "driver", + "variants": [ + { + "case": "archipelago", + "type": "194" + }, + { + "case": "blkdebug", + "type": "195" + }, + { + "case": "blkverify", + "type": "196" + }, + { + "case": "bochs", + "type": "197" + }, + { + "case": "cloop", + "type": "197" + }, + { + "case": "dmg", + "type": "197" + }, + { + "case": "file", + "type": "198" + }, + { + "case": "ftp", + "type": "199" + }, + { + "case": "ftps", + "type": "199" + }, + { + "case": "gluster", + "type": "200" + }, + { + "case": "host_cdrom", + "type": "198" + }, + { + "case": "host_device", + "type": "198" + }, + { + "case": "http", + "type": "199" + }, + { + "case": "https", + "type": "199" + }, + { + "case": "luks", + "type": "201" + }, + { + "case": "nbd", + "type": "202" + }, + { + "case": "nfs", + "type": "203" + }, + { + "case": "null-aio", + "type": "204" + }, + { + "case": "null-co", + "type": "204" + }, + { + "case": "parallels", + "type": "197" + }, + { + "case": "qcow2", + "type": "205" + }, + { + "case": "qcow", + "type": "206" + }, + { + "case": "qed", + "type": "206" + }, + { + "case": "quorum", + "type": "207" + }, + { + "case": "raw", + "type": "208" + }, + { + "case": "replication", + "type": "209" + }, + { + "case": "ssh", + "type": "210" + }, + { + "case": "vdi", + "type": "197" + }, + { + "case": "vhdx", + "type": "197" + }, + { + "case": "vmdk", + "type": "206" + }, + { + "case": "vpc", + "type": "197" + }, + { + "case": "vvfat", + "type": "211" + } + ], + "members": [ + { + "name": "driver", + "type": "190" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "discard", + "default": null, + "type": "191" + }, + { + "name": "cache", + "default": null, + "type": "192" + }, + { + "name": "read-only", + "default": null, + "type": "bool" + }, + { + "name": "detect-zeroes", + "default": null, + "type": "193" + } + ], + "meta-type": "object" + }, + { + "name": "47", + "members": [ + { + "name": "job-id", + "default": null, + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "sync", + "type": "212" + }, + { + "name": "speed", + "default": null, + "type": "int" + }, + { + "name": "compress", + "default": null, + "type": "bool" + }, + { + "name": "on-source-error", + "default": null, + "type": "189" + }, + { + "name": "on-target-error", + "default": null, + "type": "189" + } + ], + "meta-type": "object" + }, + { + "name": "48", + "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": "213" + } + ], + "meta-type": "object" + }, + { + "name": "49", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "50", + "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": "212" + }, + { + "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": "189" + }, + { + "name": "on-target-error", + "default": null, + "type": "189" + } + ], + "meta-type": "object" + }, + { + "name": "51", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "52", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "overlay", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "53", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "54", + "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": "55", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "56", + "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": "214" + } + ], + "meta-type": "object" + }, + { + "name": "57", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "arg", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "58", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "image-node-name", + "type": "str" + }, + { + "name": "backing-file", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "59", + "members": [ + { + "name": "password", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "60", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "backend", + "type": "215" + } + ], + "meta-type": "object" + }, + { + "name": "61", + "members": [ + { + "name": "pty", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "62", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "63", + "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": "64", + "members": [ + { + "name": "fdname", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "65", + "members": [ + { + "name": "index", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "66", + "members": [ + { + "name": "id", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "67", + "members": [ + { + "name": "typename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[68]", + "element-type": "68", + "meta-type": "array" + }, + { + "name": "68", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "description", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "69", + "members": [ + { + "name": "driver", + "type": "str" + }, + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "70", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "71", + "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": "212" + }, + { + "name": "mode", + "default": null, + "type": "214" + }, + { + "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": "189" + }, + { + "name": "on-target-error", + "default": null, + "type": "189" + } + ], + "meta-type": "object" + }, + { + "name": "72", + "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": "212" + }, + { + "name": "mode", + "default": null, + "type": "214" + }, + { + "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": "189" + }, + { + "name": "on-target-error", + "default": null, + "type": "189" + }, + { + "name": "unmap", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "73", + "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": "216" + } + ], + "meta-type": "object" + }, + { + "name": "74", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "75", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "76", + "members": [ + { + "name": "protocol", + "type": "str" + }, + { + "name": "time", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "77", + "members": [ + { + "name": "fdname", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "78", + "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": "79", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "head", + "default": null, + "type": "int" + }, + { + "name": "events", + "type": "[217]" + } + ], + "meta-type": "object" + }, + { + "name": "80", + "members": [ + { + "name": "val", + "type": "int" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "filename", + "type": "str" + }, + { + "name": "cpu-index", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "81", + "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": "82", + "members": [ + { + "name": "uri", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "83", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "84", + "members": [ + { + "name": "capabilities", + "type": "[133]" + } + ], + "meta-type": "object" + }, + { + "name": "85", + "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" + } + ], + "meta-type": "object" + }, + { + "name": "86", + "members": [ + { + "name": "value", + "type": "number" + } + ], + "meta-type": "object" + }, + { + "name": "87", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "88", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "writable", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "89", + "members": [ + { + "name": "addr", + "type": "218" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "90", + "members": [ + { + "name": "type", + "type": "str" + }, + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "91", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "92", + "members": [ + { + "name": "qom-type", + "type": "str" + }, + { + "name": "id", + "type": "str" + }, + { + "name": "props", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "93", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "94", + "members": [ + { + "name": "val", + "type": "int" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "95", + "members": [ + { + "name": "path", + "type": "str" + }, + { + "name": "property", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "any", + "json-type": "value", + "meta-type": "builtin" + }, + { + "name": "96", + "members": [ + { + "name": "path", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[97]", + "element-type": "97", + "meta-type": "array" + }, + { + "name": "97", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "98", + "members": [ + { + "name": "implements", + "default": null, + "type": "str" + }, + { + "name": "abstract", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[99]", + "element-type": "99", + "meta-type": "array" + }, + { + "name": "99", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "100", + "members": [ + { + "name": "path", + "type": "str" + }, + { + "name": "property", + "type": "str" + }, + { + "name": "value", + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "[101]", + "element-type": "101", + "meta-type": "array" + }, + { + "name": "101", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "slot", + "type": "str" + }, + { + "name": "slot-type", + "type": "219" + }, + { + "name": "source", + "type": "int" + }, + { + "name": "status", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "102", + "members": [ + { + "name": "actual", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[103]", + "element-type": "103", + "meta-type": "array" + }, + { + "name": "103", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "removable", + "type": "bool" + }, + { + "name": "locked", + "type": "bool" + }, + { + "name": "inserted", + "default": null, + "type": "135" + }, + { + "name": "tray_open", + "default": null, + "type": "bool" + }, + { + "name": "io-status", + "default": null, + "type": "220" + }, + { + "name": "dirty-bitmaps", + "default": null, + "type": "[221]" + } + ], + "meta-type": "object" + }, + { + "name": "[104]", + "element-type": "104", + "meta-type": "array" + }, + { + "name": "104", + "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": "220" + }, + { + "name": "ready", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "105", + "members": [ + { + "name": "query-nodes", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[106]", + "element-type": "106", + "meta-type": "array" + }, + { + "name": "106", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "stats", + "type": "222" + }, + { + "name": "parent", + "default": null, + "type": "106" + }, + { + "name": "backing", + "default": null, + "type": "106" + } + ], + "meta-type": "object" + }, + { + "name": "[107]", + "element-type": "107", + "meta-type": "array" + }, + { + "name": "107", + "members": [ + { + "name": "label", + "type": "str" + }, + { + "name": "filename", + "type": "str" + }, + { + "name": "frontend-open", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[108]", + "element-type": "108", + "meta-type": "array" + }, + { + "name": "108", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "109", + "members": [ + { + "name": "option", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[110]", + "element-type": "110", + "meta-type": "array" + }, + { + "name": "110", + "members": [ + { + "name": "option", + "type": "str" + }, + { + "name": "parameters", + "type": "[223]" + } + ], + "meta-type": "object" + }, + { + "name": "[111]", + "element-type": "111", + "meta-type": "array" + }, + { + "name": "111", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[112]", + "element-type": "112", + "meta-type": "array" + }, + { + "name": "112", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "migration-safe", + "default": null, + "type": "bool" + }, + { + "name": "static", + "type": "bool" + }, + { + "name": "unavailable-features", + "default": null, + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "113", + "members": [ + { + "name": "modela", + "type": "224" + }, + { + "name": "modelb", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "114", + "members": [ + { + "name": "model", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "115", + "members": [ + { + "name": "modela", + "type": "224" + }, + { + "name": "modelb", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "116", + "members": [ + { + "name": "result", + "type": "225" + }, + { + "name": "responsible-properties", + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "117", + "members": [ + { + "name": "type", + "type": "226" + }, + { + "name": "model", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "118", + "members": [ + { + "name": "model", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "[119]", + "element-type": "119", + "meta-type": "array" + }, + { + "name": "119", + "tag": "arch", + "variants": [ + { + "case": "x86", + "type": "228" + }, + { + "case": "sparc", + "type": "229" + }, + { + "case": "ppc", + "type": "230" + }, + { + "case": "mips", + "type": "231" + }, + { + "case": "tricore", + "type": "232" + }, + { + "case": "other", + "type": "233" + } + ], + "members": [ + { + "name": "CPU", + "type": "int" + }, + { + "name": "current", + "type": "bool" + }, + { + "name": "halted", + "type": "bool" + }, + { + "name": "qom_path", + "type": "str" + }, + { + "name": "thread_id", + "type": "int" + }, + { + "name": "arch", + "type": "227" + } + ], + "meta-type": "object" + }, + { + "name": "120", + "members": [ + { + "name": "status", + "type": "234" + }, + { + "name": "completed", + "type": "int" + }, + { + "name": "total", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "121", + "members": [ + { + "name": "formats", + "type": "[216]" + } + ], + "meta-type": "object" + }, + { + "name": "[122]", + "element-type": "122", + "meta-type": "array" + }, + { + "name": "122", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[123]", + "element-type": "123", + "meta-type": "array" + }, + { + "name": "123", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fds", + "type": "[235]" + } + ], + "meta-type": "object" + }, + { + "name": "[124]", + "element-type": "124", + "meta-type": "array" + }, + { + "name": "124", + "members": [ + { + "name": "version", + "type": "int" + }, + { + "name": "emulated", + "type": "bool" + }, + { + "name": "kernel", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[125]", + "element-type": "125", + "meta-type": "array" + }, + { + "name": "125", + "members": [ + { + "name": "type", + "type": "str" + }, + { + "name": "vcpus-count", + "type": "int" + }, + { + "name": "props", + "type": "236" + }, + { + "name": "qom-path", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[126]", + "element-type": "126", + "meta-type": "array" + }, + { + "name": "126", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "thread-id", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "127", + "members": [ + { + "name": "enabled", + "type": "bool" + }, + { + "name": "present", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[128]", + "element-type": "128", + "meta-type": "array" + }, + { + "name": "128", + "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": "[129]", + "element-type": "129", + "meta-type": "array" + }, + { + "name": "129", + "members": [ + { + "name": "size", + "type": "int" + }, + { + "name": "merge", + "type": "bool" + }, + { + "name": "dump", + "type": "bool" + }, + { + "name": "prealloc", + "type": "bool" + }, + { + "name": "host-nodes", + "type": "[int]" + }, + { + "name": "policy", + "type": "237" + } + ], + "meta-type": "object" + }, + { + "name": "[130]", + "element-type": "130", + "meta-type": "array" + }, + { + "name": "130", + "tag": "type", + "variants": [ + { + "case": "dimm", + "type": "239" + } + ], + "members": [ + { + "name": "type", + "type": "238" + } + ], + "meta-type": "object" + }, + { + "name": "[131]", + "element-type": "131", + "meta-type": "array" + }, + { + "name": "131", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "index", + "type": "int" + }, + { + "name": "current", + "type": "bool" + }, + { + "name": "absolute", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "132", + "members": [ + { + "name": "status", + "default": null, + "type": "180" + }, + { + "name": "ram", + "default": null, + "type": "240" + }, + { + "name": "disk", + "default": null, + "type": "240" + }, + { + "name": "xbzrle-cache", + "default": null, + "type": "241" + }, + { + "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": "[133]", + "element-type": "133", + "meta-type": "array" + }, + { + "name": "133", + "members": [ + { + "name": "capability", + "type": "242" + }, + { + "name": "state", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "134", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[135]", + "element-type": "135", + "meta-type": "array" + }, + { + "name": "135", + "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": "193" + }, + { + "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": "243" + }, + { + "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": "244" + }, + { + "name": "write_threshold", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[136]", + "element-type": "136", + "meta-type": "array" + }, + { + "name": "136", + "members": [ + { + "name": "bus", + "type": "int" + }, + { + "name": "devices", + "type": "[245]" + } + ], + "meta-type": "object" + }, + { + "name": "[137]", + "element-type": "137", + "meta-type": "array" + }, + { + "name": "137", + "tag": "meta-type", + "variants": [ + { + "case": "builtin", + "type": "247" + }, + { + "case": "enum", + "type": "248" + }, + { + "case": "array", + "type": "249" + }, + { + "case": "object", + "type": "250" + }, + { + "case": "alternate", + "type": "251" + }, + { + "case": "command", + "type": "252" + }, + { + "case": "event", + "type": "253" + } + ], + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "meta-type", + "type": "246" + } + ], + "meta-type": "object" + }, + { + "name": "138", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "139", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "id", + "type": "int" + }, + { + "name": "ports", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "140", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "tbl-id", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[141]", + "element-type": "141", + "meta-type": "array" + }, + { + "name": "141", + "members": [ + { + "name": "cookie", + "type": "int" + }, + { + "name": "hits", + "type": "int" + }, + { + "name": "key", + "type": "254" + }, + { + "name": "mask", + "type": "255" + }, + { + "name": "action", + "type": "256" + } + ], + "meta-type": "object" + }, + { + "name": "142", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[143]", + "element-type": "143", + "meta-type": "array" + }, + { + "name": "143", + "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": "144", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[145]", + "element-type": "145", + "meta-type": "array" + }, + { + "name": "145", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "enabled", + "type": "bool" + }, + { + "name": "link-up", + "type": "bool" + }, + { + "name": "speed", + "type": "int" + }, + { + "name": "duplex", + "type": "257" + }, + { + "name": "autoneg", + "type": "258" + } + ], + "meta-type": "object" + }, + { + "name": "146", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[147]", + "element-type": "147", + "meta-type": "array" + }, + { + "name": "147", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "promiscuous", + "type": "bool" + }, + { + "name": "multicast", + "type": "259" + }, + { + "name": "unicast", + "type": "259" + }, + { + "name": "vlan", + "type": "259" + }, + { + "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": "148", + "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": "260" + }, + { + "name": "channels", + "default": null, + "type": "[184]" + } + ], + "meta-type": "object" + }, + { + "name": "149", + "members": [ + { + "name": "running", + "type": "bool" + }, + { + "name": "singlestep", + "type": "bool" + }, + { + "name": "status", + "type": "261" + } + ], + "meta-type": "object" + }, + { + "name": "150", + "members": [ + { + "name": "arch", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[151]", + "element-type": "151", + "meta-type": "array" + }, + { + "name": "151", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "model", + "type": "152" + }, + { + "name": "options", + "type": "262" + } + ], + "meta-type": "object" + }, + { + "name": "[152]", + "element-type": "152", + "meta-type": "array" + }, + { + "name": "152", + "meta-type": "enum", + "values": [ + "tpm-tis" + ] + }, + { + "name": "[153]", + "element-type": "153", + "meta-type": "array" + }, + { + "name": "153", + "meta-type": "enum", + "values": [ + "passthrough" + ] + }, + { + "name": "154", + "members": [ + { + "name": "UUID", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "155", + "members": [ + { + "name": "qemu", + "type": "263" + }, + { + "name": "package", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "156", + "members": [ + { + "name": "enabled", + "type": "bool" + }, + { + "name": "host", + "default": null, + "type": "str" + }, + { + "name": "family", + "default": null, + "type": "264" + }, + { + "name": "service", + "default": null, + "type": "str" + }, + { + "name": "auth", + "default": null, + "type": "str" + }, + { + "name": "clients", + "default": null, + "type": "[187]" + } + ], + "meta-type": "object" + }, + { + "name": "[157]", + "element-type": "157", + "meta-type": "array" + }, + { + "name": "157", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "server", + "type": "[186]" + }, + { + "name": "clients", + "type": "[187]" + }, + { + "name": "auth", + "type": "265" + }, + { + "name": "vencrypt", + "default": null, + "type": "266" + }, + { + "name": "display", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "158", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fd", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "159", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "format", + "default": null, + "type": "267" + } + ], + "meta-type": "object" + }, + { + "name": "160", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "data", + "type": "str" + }, + { + "name": "format", + "default": null, + "type": "267" + } + ], + "meta-type": "object" + }, + { + "name": "161", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "162", + "members": [ + { + "name": "keys", + "type": "[268]" + }, + { + "name": "hold-time", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "163", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "up", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "164", + "members": [ + { + "name": "protocol", + "type": "str" + }, + { + "name": "password", + "type": "str" + }, + { + "name": "connected", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "165", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "vcpu", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[166]", + "element-type": "166", + "meta-type": "array" + }, + { + "name": "166", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "state", + "type": "269" + }, + { + "name": "vcpu", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "167", + "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": "168", + "members": [ + { + "name": "actions", + "type": "[270]" + }, + { + "name": "properties", + "default": null, + "type": "271" + } + ], + "meta-type": "object" + }, + { + "name": "169", + "members": [ + { + "name": "parent", + "type": "str" + }, + { + "name": "child", + "default": null, + "type": "str" + }, + { + "name": "node", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "170", + "members": [ + { + "name": "node-name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "171", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "172", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "173", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "174", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "175", + "members": [ + { + "name": "enable", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "bool", + "json-type": "boolean", + "meta-type": "builtin" + }, + { + "name": "176", + "meta-type": "enum", + "values": [ + "read", + "write" + ] + }, + { + "name": "177", + "meta-type": "enum", + "values": [ + "ignore", + "report", + "stop" + ] + }, + { + "name": "178", + "meta-type": "enum", + "values": [ + "commit", + "stream", + "mirror", + "backup" + ] + }, + { + "name": "179", + "meta-type": "enum", + "values": [ + "pause", + "poweroff" + ] + }, + { + "name": "180", + "meta-type": "enum", + "values": [ + "none", + "setup", + "cancelling", + "cancelled", + "active", + "postcopy-active", + "completed", + "failed", + "colo" + ] + }, + { + "name": "181", + "meta-type": "enum", + "values": [ + "read", + "write", + "flush" + ] + }, + { + "name": "182", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "264" + } + ], + "meta-type": "object" + }, + { + "name": "183", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "auth", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "184", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "connection-id", + "type": "int" + }, + { + "name": "channel-type", + "type": "int" + }, + { + "name": "channel-id", + "type": "int" + }, + { + "name": "tls", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "185", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "websocket", + "type": "bool" + }, + { + "name": "auth", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "186", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "websocket", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "187", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "websocket", + "type": "bool" + }, + { + "name": "x509_dname", + "default": null, + "type": "str" + }, + { + "name": "sasl_username", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "188", + "meta-type": "enum", + "values": [ + "reset", + "shutdown", + "poweroff", + "pause", + "debug", + "none", + "inject-nmi" + ] + }, + { + "name": "189", + "meta-type": "enum", + "values": [ + "report", + "ignore", + "enospc", + "stop", + "auto" + ] + }, + { + "name": "190", + "meta-type": "enum", + "values": [ + "archipelago", + "blkdebug", + "blkverify", + "bochs", + "cloop", + "dmg", + "file", + "ftp", + "ftps", + "gluster", + "host_cdrom", + "host_device", + "http", + "https", + "luks", + "nbd", + "nfs", + "null-aio", + "null-co", + "parallels", + "qcow", + "qcow2", + "qed", + "quorum", + "raw", + "replication", + "ssh", + "vdi", + "vhdx", + "vmdk", + "vpc", + "vvfat" + ] + }, + { + "name": "191", + "meta-type": "enum", + "values": [ + "ignore", + "unmap" + ] + }, + { + "name": "192", + "members": [ + { + "name": "direct", + "default": null, + "type": "bool" + }, + { + "name": "no-flush", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "193", + "meta-type": "enum", + "values": [ + "off", + "on", + "unmap" + ] + }, + { + "name": "194", + "members": [ + { + "name": "volume", + "type": "str" + }, + { + "name": "mport", + "default": null, + "type": "int" + }, + { + "name": "vport", + "default": null, + "type": "int" + }, + { + "name": "segment", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "195", + "members": [ + { + "name": "image", + "type": "272" + }, + { + "name": "config", + "default": null, + "type": "str" + }, + { + "name": "align", + "default": null, + "type": "int" + }, + { + "name": "inject-error", + "default": null, + "type": "[273]" + }, + { + "name": "set-state", + "default": null, + "type": "[274]" + } + ], + "meta-type": "object" + }, + { + "name": "196", + "members": [ + { + "name": "test", + "type": "272" + }, + { + "name": "raw", + "type": "272" + } + ], + "meta-type": "object" + }, + { + "name": "197", + "members": [ + { + "name": "file", + "type": "272" + } + ], + "meta-type": "object" + }, + { + "name": "198", + "members": [ + { + "name": "filename", + "type": "str" + }, + { + "name": "aio", + "default": null, + "type": "275" + } + ], + "meta-type": "object" + }, + { + "name": "199", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "200", + "members": [ + { + "name": "volume", + "type": "str" + }, + { + "name": "path", + "type": "str" + }, + { + "name": "server", + "type": "[276]" + }, + { + "name": "debug-level", + "default": null, + "type": "int" + }, + { + "name": "logfile", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "201", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "key-secret", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "202", + "members": [ + { + "name": "server", + "type": "218" + }, + { + "name": "export", + "default": null, + "type": "str" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "203", + "members": [ + { + "name": "server", + "type": "277" + }, + { + "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-level", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "204", + "members": [ + { + "name": "size", + "default": null, + "type": "int" + }, + { + "name": "latency-ns", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "205", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "backing", + "default": null, + "type": "272" + }, + { + "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": "278" + }, + { + "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" + } + ], + "meta-type": "object" + }, + { + "name": "206", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "backing", + "default": null, + "type": "272" + } + ], + "meta-type": "object" + }, + { + "name": "207", + "members": [ + { + "name": "blkverify", + "default": null, + "type": "bool" + }, + { + "name": "children", + "type": "[272]" + }, + { + "name": "vote-threshold", + "type": "int" + }, + { + "name": "rewrite-corrupted", + "default": null, + "type": "bool" + }, + { + "name": "read-pattern", + "default": null, + "type": "279" + } + ], + "meta-type": "object" + }, + { + "name": "208", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "offset", + "default": null, + "type": "int" + }, + { + "name": "size", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "209", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "mode", + "type": "280" + }, + { + "name": "top-id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "210", + "members": [ + { + "name": "server", + "type": "281" + }, + { + "name": "path", + "type": "str" + }, + { + "name": "user", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "211", + "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": "212", + "meta-type": "enum", + "values": [ + "top", + "full", + "none", + "incremental" + ] + }, + { + "name": "213", + "meta-type": "enum", + "values": [ + "retain", + "read-only", + "read-write" + ] + }, + { + "name": "214", + "meta-type": "enum", + "values": [ + "existing", + "absolute-paths" + ] + }, + { + "name": "215", + "tag": "type", + "variants": [ + { + "case": "file", + "type": "283" + }, + { + "case": "serial", + "type": "284" + }, + { + "case": "parallel", + "type": "284" + }, + { + "case": "pipe", + "type": "284" + }, + { + "case": "socket", + "type": "285" + }, + { + "case": "udp", + "type": "286" + }, + { + "case": "pty", + "type": "287" + }, + { + "case": "null", + "type": "287" + }, + { + "case": "mux", + "type": "288" + }, + { + "case": "msmouse", + "type": "287" + }, + { + "case": "braille", + "type": "287" + }, + { + "case": "testdev", + "type": "287" + }, + { + "case": "stdio", + "type": "289" + }, + { + "case": "console", + "type": "287" + }, + { + "case": "spicevmc", + "type": "290" + }, + { + "case": "spiceport", + "type": "291" + }, + { + "case": "vc", + "type": "292" + }, + { + "case": "ringbuf", + "type": "293" + }, + { + "case": "memory", + "type": "293" + } + ], + "members": [ + { + "name": "type", + "type": "282" + } + ], + "meta-type": "object" + }, + { + "name": "216", + "meta-type": "enum", + "values": [ + "elf", + "kdump-zlib", + "kdump-lzo", + "kdump-snappy" + ] + }, + { + "name": "[217]", + "element-type": "217", + "meta-type": "array" + }, + { + "name": "217", + "tag": "type", + "variants": [ + { + "case": "key", + "type": "295" + }, + { + "case": "btn", + "type": "296" + }, + { + "case": "rel", + "type": "297" + }, + { + "case": "abs", + "type": "297" + } + ], + "members": [ + { + "name": "type", + "type": "294" + } + ], + "meta-type": "object" + }, + { + "name": "number", + "json-type": "number", + "meta-type": "builtin" + }, + { + "name": "218", + "tag": "type", + "variants": [ + { + "case": "inet", + "type": "299" + }, + { + "case": "unix", + "type": "300" + }, + { + "case": "vsock", + "type": "301" + }, + { + "case": "fd", + "type": "302" + } + ], + "members": [ + { + "name": "type", + "type": "298" + } + ], + "meta-type": "object" + }, + { + "name": "219", + "meta-type": "enum", + "values": [ + "DIMM", + "CPU" + ] + }, + { + "name": "220", + "meta-type": "enum", + "values": [ + "ok", + "failed", + "nospace" + ] + }, + { + "name": "[221]", + "element-type": "221", + "meta-type": "array" + }, + { + "name": "221", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + }, + { + "name": "count", + "type": "int" + }, + { + "name": "granularity", + "type": "int" + }, + { + "name": "status", + "type": "303" + } + ], + "meta-type": "object" + }, + { + "name": "222", + "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": "[304]" + } + ], + "meta-type": "object" + }, + { + "name": "[223]", + "element-type": "223", + "meta-type": "array" + }, + { + "name": "223", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "305" + }, + { + "name": "help", + "default": null, + "type": "str" + }, + { + "name": "default", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[str]", + "element-type": "str", + "meta-type": "array" + }, + { + "name": "224", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "props", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "225", + "meta-type": "enum", + "values": [ + "incompatible", + "identical", + "superset", + "subset" + ] + }, + { + "name": "226", + "meta-type": "enum", + "values": [ + "static", + "full" + ] + }, + { + "name": "227", + "meta-type": "enum", + "values": [ + "x86", + "sparc", + "ppc", + "mips", + "tricore", + "other" + ] + }, + { + "name": "228", + "members": [ + { + "name": "pc", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "229", + "members": [ + { + "name": "pc", + "type": "int" + }, + { + "name": "npc", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "230", + "members": [ + { + "name": "nip", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "231", + "members": [ + { + "name": "PC", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "232", + "members": [ + { + "name": "PC", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "233", + "members": [ + ], + "meta-type": "object" + }, + { + "name": "234", + "meta-type": "enum", + "values": [ + "none", + "active", + "completed", + "failed" + ] + }, + { + "name": "[216]", + "element-type": "216", + "meta-type": "array" + }, + { + "name": "[235]", + "element-type": "235", + "meta-type": "array" + }, + { + "name": "235", + "members": [ + { + "name": "fd", + "type": "int" + }, + { + "name": "opaque", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "236", + "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": "[int]", + "element-type": "int", + "meta-type": "array" + }, + { + "name": "237", + "meta-type": "enum", + "values": [ + "default", + "preferred", + "bind", + "interleave" + ] + }, + { + "name": "238", + "meta-type": "enum", + "values": [ + "dimm" + ] + }, + { + "name": "239", + "members": [ + { + "name": "data", + "type": "306" + } + ], + "meta-type": "object" + }, + { + "name": "240", + "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" + } + ], + "meta-type": "object" + }, + { + "name": "241", + "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": "242", + "meta-type": "enum", + "values": [ + "xbzrle", + "rdma-pin-all", + "auto-converge", + "zero-blocks", + "compress", + "events", + "postcopy-ram", + "x-colo" + ] + }, + { + "name": "243", + "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": "[54]" + }, + { + "name": "backing-image", + "default": null, + "type": "243" + }, + { + "name": "format-specific", + "default": null, + "type": "307" + } + ], + "meta-type": "object" + }, + { + "name": "244", + "members": [ + { + "name": "writeback", + "type": "bool" + }, + { + "name": "direct", + "type": "bool" + }, + { + "name": "no-flush", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[245]", + "element-type": "245", + "meta-type": "array" + }, + { + "name": "245", + "members": [ + { + "name": "bus", + "type": "int" + }, + { + "name": "slot", + "type": "int" + }, + { + "name": "function", + "type": "int" + }, + { + "name": "class_info", + "type": "308" + }, + { + "name": "id", + "type": "309" + }, + { + "name": "irq", + "default": null, + "type": "int" + }, + { + "name": "qdev_id", + "type": "str" + }, + { + "name": "pci_bridge", + "default": null, + "type": "310" + }, + { + "name": "regions", + "type": "[311]" + } + ], + "meta-type": "object" + }, + { + "name": "246", + "meta-type": "enum", + "values": [ + "builtin", + "enum", + "array", + "object", + "alternate", + "command", + "event" + ] + }, + { + "name": "247", + "members": [ + { + "name": "json-type", + "type": "312" + } + ], + "meta-type": "object" + }, + { + "name": "248", + "members": [ + { + "name": "values", + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "249", + "members": [ + { + "name": "element-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "250", + "members": [ + { + "name": "members", + "type": "[313]" + }, + { + "name": "tag", + "default": null, + "type": "str" + }, + { + "name": "variants", + "default": null, + "type": "[314]" + } + ], + "meta-type": "object" + }, + { + "name": "251", + "members": [ + { + "name": "members", + "type": "[315]" + } + ], + "meta-type": "object" + }, + { + "name": "252", + "members": [ + { + "name": "arg-type", + "type": "str" + }, + { + "name": "ret-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "253", + "members": [ + { + "name": "arg-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "254", + "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": "255", + "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": "256", + "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": "257", + "meta-type": "enum", + "values": [ + "half", + "full" + ] + }, + { + "name": "258", + "meta-type": "enum", + "values": [ + "off", + "on" + ] + }, + { + "name": "259", + "meta-type": "enum", + "values": [ + "normal", + "none", + "all" + ] + }, + { + "name": "260", + "meta-type": "enum", + "values": [ + "client", + "server", + "unknown" + ] + }, + { + "name": "[184]", + "element-type": "184", + "meta-type": "array" + }, + { + "name": "261", + "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": "262", + "tag": "type", + "variants": [ + { + "case": "passthrough", + "type": "317" + } + ], + "members": [ + { + "name": "type", + "type": "316" + } + ], + "meta-type": "object" + }, + { + "name": "263", + "members": [ + { + "name": "major", + "type": "int" + }, + { + "name": "minor", + "type": "int" + }, + { + "name": "micro", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "264", + "meta-type": "enum", + "values": [ + "ipv4", + "ipv6", + "unix", + "vsock", + "unknown" + ] + }, + { + "name": "[187]", + "element-type": "187", + "meta-type": "array" + }, + { + "name": "[186]", + "element-type": "186", + "meta-type": "array" + }, + { + "name": "265", + "meta-type": "enum", + "values": [ + "none", + "vnc", + "ra2", + "ra2ne", + "tight", + "ultra", + "tls", + "vencrypt", + "sasl" + ] + }, + { + "name": "266", + "meta-type": "enum", + "values": [ + "plain", + "tls-none", + "x509-none", + "tls-vnc", + "x509-vnc", + "tls-plain", + "x509-plain", + "tls-sasl", + "x509-sasl" + ] + }, + { + "name": "267", + "meta-type": "enum", + "values": [ + "utf8", + "base64" + ] + }, + { + "name": "[268]", + "element-type": "268", + "meta-type": "array" + }, + { + "name": "268", + "tag": "type", + "variants": [ + { + "case": "number", + "type": "319" + }, + { + "case": "qcode", + "type": "320" + } + ], + "members": [ + { + "name": "type", + "type": "318" + } + ], + "meta-type": "object" + }, + { + "name": "269", + "meta-type": "enum", + "values": [ + "unavailable", + "disabled", + "enabled" + ] + }, + { + "name": "[270]", + "element-type": "270", + "meta-type": "array" + }, + { + "name": "270", + "tag": "type", + "variants": [ + { + "case": "blockdev-snapshot", + "type": "322" + }, + { + "case": "blockdev-snapshot-sync", + "type": "323" + }, + { + "case": "drive-backup", + "type": "324" + }, + { + "case": "blockdev-backup", + "type": "325" + }, + { + "case": "abort", + "type": "326" + }, + { + "case": "blockdev-snapshot-internal-sync", + "type": "327" + }, + { + "case": "block-dirty-bitmap-add", + "type": "328" + }, + { + "case": "block-dirty-bitmap-clear", + "type": "329" + } + ], + "members": [ + { + "name": "type", + "type": "321" + } + ], + "meta-type": "object" + }, + { + "name": "271", + "members": [ + { + "name": "completion-mode", + "default": null, + "type": "330" + } + ], + "meta-type": "object" + }, + { + "name": "272", + "members": [ + { + "type": "46" + }, + { + "type": "str" + } + ], + "meta-type": "alternate" + }, + { + "name": "[273]", + "element-type": "273", + "meta-type": "array" + }, + { + "name": "273", + "members": [ + { + "name": "event", + "type": "331" + }, + { + "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": "[274]", + "element-type": "274", + "meta-type": "array" + }, + { + "name": "274", + "members": [ + { + "name": "event", + "type": "331" + }, + { + "name": "state", + "default": null, + "type": "int" + }, + { + "name": "new_state", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "275", + "meta-type": "enum", + "values": [ + "threads", + "native" + ] + }, + { + "name": "[276]", + "element-type": "276", + "meta-type": "array" + }, + { + "name": "276", + "tag": "type", + "variants": [ + { + "case": "unix", + "type": "333" + }, + { + "case": "tcp", + "type": "281" + } + ], + "members": [ + { + "name": "type", + "type": "332" + } + ], + "meta-type": "object" + }, + { + "name": "277", + "members": [ + { + "name": "type", + "type": "334" + }, + { + "name": "host", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "278", + "members": [ + { + "type": "335" + }, + { + "type": "336" + } + ], + "meta-type": "alternate" + }, + { + "name": "[272]", + "element-type": "272", + "meta-type": "array" + }, + { + "name": "279", + "meta-type": "enum", + "values": [ + "quorum", + "fifo" + ] + }, + { + "name": "280", + "meta-type": "enum", + "values": [ + "primary", + "secondary" + ] + }, + { + "name": "281", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "to", + "default": null, + "type": "int" + }, + { + "name": "ipv4", + "default": null, + "type": "bool" + }, + { + "name": "ipv6", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "282", + "meta-type": "enum", + "values": [ + "file", + "serial", + "parallel", + "pipe", + "socket", + "udp", + "pty", + "null", + "mux", + "msmouse", + "braille", + "testdev", + "stdio", + "console", + "spicevmc", + "spiceport", + "vc", + "ringbuf", + "memory" + ] + }, + { + "name": "283", + "members": [ + { + "name": "data", + "type": "337" + } + ], + "meta-type": "object" + }, + { + "name": "284", + "members": [ + { + "name": "data", + "type": "338" + } + ], + "meta-type": "object" + }, + { + "name": "285", + "members": [ + { + "name": "data", + "type": "339" + } + ], + "meta-type": "object" + }, + { + "name": "286", + "members": [ + { + "name": "data", + "type": "340" + } + ], + "meta-type": "object" + }, + { + "name": "287", + "members": [ + { + "name": "data", + "type": "341" + } + ], + "meta-type": "object" + }, + { + "name": "288", + "members": [ + { + "name": "data", + "type": "342" + } + ], + "meta-type": "object" + }, + { + "name": "289", + "members": [ + { + "name": "data", + "type": "343" + } + ], + "meta-type": "object" + }, + { + "name": "290", + "members": [ + { + "name": "data", + "type": "344" + } + ], + "meta-type": "object" + }, + { + "name": "291", + "members": [ + { + "name": "data", + "type": "345" + } + ], + "meta-type": "object" + }, + { + "name": "292", + "members": [ + { + "name": "data", + "type": "346" + } + ], + "meta-type": "object" + }, + { + "name": "293", + "members": [ + { + "name": "data", + "type": "347" + } + ], + "meta-type": "object" + }, + { + "name": "294", + "meta-type": "enum", + "values": [ + "key", + "btn", + "rel", + "abs" + ] + }, + { + "name": "295", + "members": [ + { + "name": "data", + "type": "348" + } + ], + "meta-type": "object" + }, + { + "name": "296", + "members": [ + { + "name": "data", + "type": "349" + } + ], + "meta-type": "object" + }, + { + "name": "297", + "members": [ + { + "name": "data", + "type": "350" + } + ], + "meta-type": "object" + }, + { + "name": "298", + "meta-type": "enum", + "values": [ + "inet", + "unix", + "vsock", + "fd" + ] + }, + { + "name": "299", + "members": [ + { + "name": "data", + "type": "281" + } + ], + "meta-type": "object" + }, + { + "name": "300", + "members": [ + { + "name": "data", + "type": "333" + } + ], + "meta-type": "object" + }, + { + "name": "301", + "members": [ + { + "name": "data", + "type": "351" + } + ], + "meta-type": "object" + }, + { + "name": "302", + "members": [ + { + "name": "data", + "type": "352" + } + ], + "meta-type": "object" + }, + { + "name": "303", + "meta-type": "enum", + "values": [ + "active", + "disabled", + "frozen" + ] + }, + { + "name": "[304]", + "element-type": "304", + "meta-type": "array" + }, + { + "name": "304", + "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": "305", + "meta-type": "enum", + "values": [ + "string", + "boolean", + "number", + "size" + ] + }, + { + "name": "306", + "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": "[54]", + "element-type": "54", + "meta-type": "array" + }, + { + "name": "307", + "tag": "type", + "variants": [ + { + "case": "qcow2", + "type": "354" + }, + { + "case": "vmdk", + "type": "355" + }, + { + "case": "luks", + "type": "356" + } + ], + "members": [ + { + "name": "type", + "type": "353" + } + ], + "meta-type": "object" + }, + { + "name": "308", + "members": [ + { + "name": "desc", + "default": null, + "type": "str" + }, + { + "name": "class", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "309", + "members": [ + { + "name": "device", + "type": "int" + }, + { + "name": "vendor", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "310", + "members": [ + { + "name": "bus", + "type": "357" + }, + { + "name": "devices", + "default": null, + "type": "[245]" + } + ], + "meta-type": "object" + }, + { + "name": "[311]", + "element-type": "311", + "meta-type": "array" + }, + { + "name": "311", + "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": "312", + "meta-type": "enum", + "values": [ + "string", + "number", + "int", + "boolean", + "null", + "object", + "array", + "value" + ] + }, + { + "name": "[313]", + "element-type": "313", + "meta-type": "array" + }, + { + "name": "313", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "default", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "[314]", + "element-type": "314", + "meta-type": "array" + }, + { + "name": "314", + "members": [ + { + "name": "case", + "type": "str" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[315]", + "element-type": "315", + "meta-type": "array" + }, + { + "name": "315", + "members": [ + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "316", + "meta-type": "enum", + "values": [ + "passthrough" + ] + }, + { + "name": "317", + "members": [ + { + "name": "data", + "type": "358" + } + ], + "meta-type": "object" + }, + { + "name": "318", + "meta-type": "enum", + "values": [ + "number", + "qcode" + ] + }, + { + "name": "319", + "members": [ + { + "name": "data", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "320", + "members": [ + { + "name": "data", + "type": "359" + } + ], + "meta-type": "object" + }, + { + "name": "321", + "meta-type": "enum", + "values": [ + "blockdev-snapshot", + "blockdev-snapshot-sync", + "drive-backup", + "blockdev-backup", + "abort", + "blockdev-snapshot-internal-sync", + "block-dirty-bitmap-add", + "block-dirty-bitmap-clear" + ] + }, + { + "name": "322", + "members": [ + { + "name": "data", + "type": "52" + } + ], + "meta-type": "object" + }, + { + "name": "323", + "members": [ + { + "name": "data", + "type": "56" + } + ], + "meta-type": "object" + }, + { + "name": "324", + "members": [ + { + "name": "data", + "type": "71" + } + ], + "meta-type": "object" + }, + { + "name": "325", + "members": [ + { + "name": "data", + "type": "47" + } + ], + "meta-type": "object" + }, + { + "name": "326", + "members": [ + { + "name": "data", + "type": "360" + } + ], + "meta-type": "object" + }, + { + "name": "327", + "members": [ + { + "name": "data", + "type": "55" + } + ], + "meta-type": "object" + }, + { + "name": "328", + "members": [ + { + "name": "data", + "type": "34" + } + ], + "meta-type": "object" + }, + { + "name": "329", + "members": [ + { + "name": "data", + "type": "35" + } + ], + "meta-type": "object" + }, + { + "name": "330", + "meta-type": "enum", + "values": [ + "individual", + "grouped" + ] + }, + { + "name": "331", + "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": "332", + "meta-type": "enum", + "values": [ + "unix", + "tcp" + ] + }, + { + "name": "333", + "members": [ + { + "name": "path", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "334", + "meta-type": "enum", + "values": [ + "inet" + ] + }, + { + "name": "335", + "members": [ + { + "name": "template", + "default": null, + "type": "336" + }, + { + "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": "336", + "meta-type": "enum", + "values": [ + "none", + "constant", + "cached", + "all" + ] + }, + { + "name": "337", + "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": "338", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "339", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "addr", + "type": "218" + }, + { + "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": "reconnect", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "340", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "remote", + "type": "218" + }, + { + "name": "local", + "default": null, + "type": "218" + } + ], + "meta-type": "object" + }, + { + "name": "341", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "342", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "chardev", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "343", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "signal", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "344", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "345", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "fqdn", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "346", + "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": "347", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "size", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "348", + "members": [ + { + "name": "key", + "type": "268" + }, + { + "name": "down", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "349", + "members": [ + { + "name": "button", + "type": "361" + }, + { + "name": "down", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "350", + "members": [ + { + "name": "axis", + "type": "362" + }, + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "351", + "members": [ + { + "name": "cid", + "type": "str" + }, + { + "name": "port", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "352", + "members": [ + { + "name": "str", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "353", + "meta-type": "enum", + "values": [ + "qcow2", + "vmdk", + "luks" + ] + }, + { + "name": "354", + "members": [ + { + "name": "data", + "type": "363" + } + ], + "meta-type": "object" + }, + { + "name": "355", + "members": [ + { + "name": "data", + "type": "364" + } + ], + "meta-type": "object" + }, + { + "name": "356", + "members": [ + { + "name": "data", + "type": "365" + } + ], + "meta-type": "object" + }, + { + "name": "357", + "members": [ + { + "name": "number", + "type": "int" + }, + { + "name": "secondary", + "type": "int" + }, + { + "name": "subordinate", + "type": "int" + }, + { + "name": "io_range", + "type": "366" + }, + { + "name": "memory_range", + "type": "366" + }, + { + "name": "prefetchable_range", + "type": "366" + } + ], + "meta-type": "object" + }, + { + "name": "358", + "members": [ + { + "name": "path", + "default": null, + "type": "str" + }, + { + "name": "cancel-path", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "359", + "meta-type": "enum", + "values": [ + "unmapped", + "shift", + "shift_r", + "alt", + "alt_r", + "altgr", + "altgr_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", + "kp_comma", + "kp_equals", + "power" + ] + }, + { + "name": "360", + "members": [ + ], + "meta-type": "object" + }, + { + "name": "361", + "meta-type": "enum", + "values": [ + "left", + "middle", + "right", + "wheel-up", + "wheel-down" + ] + }, + { + "name": "362", + "meta-type": "enum", + "values": [ + "x", + "y" + ] + }, + { + "name": "363", + "members": [ + { + "name": "compat", + "type": "str" + }, + { + "name": "lazy-refcounts", + "default": null, + "type": "bool" + }, + { + "name": "corrupt", + "default": null, + "type": "bool" + }, + { + "name": "refcount-bits", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "364", + "members": [ + { + "name": "create-type", + "type": "str" + }, + { + "name": "cid", + "type": "int" + }, + { + "name": "parent-cid", + "type": "int" + }, + { + "name": "extents", + "type": "[243]" + } + ], + "meta-type": "object" + }, + { + "name": "365", + "members": [ + { + "name": "cipher-alg", + "type": "367" + }, + { + "name": "cipher-mode", + "type": "368" + }, + { + "name": "ivgen-alg", + "type": "369" + }, + { + "name": "ivgen-hash-alg", + "default": null, + "type": "370" + }, + { + "name": "hash-alg", + "type": "370" + }, + { + "name": "payload-offset", + "type": "int" + }, + { + "name": "master-key-iters", + "type": "int" + }, + { + "name": "uuid", + "type": "str" + }, + { + "name": "slots", + "type": "[371]" + } + ], + "meta-type": "object" + }, + { + "name": "366", + "members": [ + { + "name": "base", + "type": "int" + }, + { + "name": "limit", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[243]", + "element-type": "243", + "meta-type": "array" + }, + { + "name": "367", + "meta-type": "enum", + "values": [ + "aes-128", + "aes-192", + "aes-256", + "des-rfb", + "cast5-128", + "serpent-128", + "serpent-192", + "serpent-256", + "twofish-128", + "twofish-192", + "twofish-256" + ] + }, + { + "name": "368", + "meta-type": "enum", + "values": [ + "ecb", + "cbc", + "xts", + "ctr" + ] + }, + { + "name": "369", + "meta-type": "enum", + "values": [ + "plain", + "plain64", + "essiv" + ] + }, + { + "name": "370", + "meta-type": "enum", + "values": [ + "md5", + "sha1", + "sha224", + "sha256", + "sha384", + "sha512", + "ripemd160" + ] + }, + { + "name": "[371]", + "element-type": "371", + "meta-type": "array" + }, + { + "name": "371", + "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" + } + ], + "id": "libvirt-47" +} + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "host", + "unavailable-features": [ + "kvm" + ], + "static": false + }, + { + "name": "qemu64", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "qemu32", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "phenom", + "unavailable-features": [ + "fxsr-opt", + "npt" + ], + "static": false + }, + { + "name": "pentium3", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "pentium2", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "pentium", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "n270", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "kvm64", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "kvm32", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "coreduo", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "core2duo", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "athlon", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Westmere", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Skylake-Client", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm", + "rdseed", + "3dnowprefetch", + "xsavec" + ], + "static": false + }, + { + "name": "SandyBridge", + "unavailable-features": [ + "x2apic", + "tsc-deadline", + "avx" + ], + "static": false + }, + { + "name": "Penryn", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Opteron_G5", + "unavailable-features": [ + "fma", + "avx", + "f16c", + "misalignsse", + "3dnowprefetch", + "xop", + "fma4", + "tbm" + ], + "static": false + }, + { + "name": "Opteron_G4", + "unavailable-features": [ + "avx", + "misalignsse", + "3dnowprefetch", + "xop", + "fma4" + ], + "static": false + }, + { + "name": "Opteron_G3", + "unavailable-features": [ + "misalignsse" + ], + "static": false + }, + { + "name": "Opteron_G2", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Opteron_G1", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Nehalem", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "IvyBridge", + "unavailable-features": [ + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand" + ], + "static": false + }, + { + "name": "Haswell", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm" + ], + "static": false + }, + { + "name": "Haswell-noTSX", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "avx2", + "invpcid" + ], + "static": false + }, + { + "name": "Conroe", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Broadwell", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm", + "rdseed", + "3dnowprefetch" + ], + "static": false + }, + { + "name": "Broadwell-noTSX", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "avx2", + "invpcid", + "rdseed", + "3dnowprefetch" + ], + "static": false + }, + { + "name": "486", + "unavailable-features": [ + ], + "static": false + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml new file mode 100644 index 0000000..d5f0ab9 --- /dev/null +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -0,0 +1,293 @@ +<qemuCaps> + <qemuctime>0</qemuctime> + <selfctime>0</selfctime> + <selfvers>0</selfvers> + <usedQMP/> + <flag name='kvm'/> + <flag name='mem-path'/> + <flag name='drive-serial'/> + <flag name='chardev'/> + <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-multibus'/> + <flag name='pci-bootindex'/> + <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='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'/> + <version>2007090</version> + <kvmVersion>0</kvmVersion> + <package> (v2.8.0-rc0-dirty)</package> + <arch>x86_64</arch> + <cpu type='kvm' name='host'/> + <cpu type='kvm' name='qemu64'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Skylake-Client'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='IvyBridge'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='Haswell-noTSX'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='Broadwell'/> + <cpu type='kvm' name='Broadwell-noTSX'/> + <cpu type='kvm' name='486'/> + <cpu type='tcg' name='host'/> + <cpu type='tcg' name='qemu64'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Skylake-Client'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='IvyBridge'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='Haswell-noTSX'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='Broadwell'/> + <cpu type='tcg' name='Broadwell-noTSX'/> + <cpu type='tcg' name='486'/> + <machine name='pc-i440fx-2.8' 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-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-1.1' hotplugCpus='yes' maxCpus='255'/> + <machine name='pc-i440fx-2.1' hotplugCpus='yes' maxCpus='255'/> + <machine name='pc-q35-2.8' alias='q35' 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-0.13' hotplugCpus='yes' maxCpus='255'/> +</qemuCaps> diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c index fe41fc4..51d0cc4 100644 --- a/tests/qemucapabilitiestest.c +++ b/tests/qemucapabilitiestest.c @@ -168,6 +168,7 @@ mymain(void) DO_TEST("x86_64", "caps_2.5.0"); DO_TEST("x86_64", "caps_2.6.0"); DO_TEST("x86_64", "caps_2.7.0"); + DO_TEST("x86_64", "caps_2.8.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.10.2

On Mon, Nov 21, 2016 at 12:21:25AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.8.0.x86_64.replies | 14246 +++++++++++++++++++ tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 293 + tests/qemucapabilitiestest.c | 1 + 3 files changed, 14540 insertions(+) create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
ACK Pavel

On 11/20/2016 06:21 PM, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.8.0.x86_64.replies | 14246 +++++++++++++++++++ tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 293 + tests/qemucapabilitiestest.c | 1 + 3 files changed, 14540 insertions(+) create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
From an sdiff the caps_2.8.0.x86_64.xml is missing a few from 2.7:
ccid-emulated ccid-passthru spice-gl gluster.debug_level John (noticed since I had to adjust my iotune/group_name branch)
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies new file mode 100644 index 0000000..7c50262 --- /dev/null +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies @@ -0,0 +1,14246 @@ +{ + "QMP": { + "version": { + "qemu": { + "micro": 90, + "minor": 7, + "major": 2 + }, + "package": " (v2.8.0-rc0-dirty)" + }, + "capabilities": [ + ] + } +} + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": { + "qemu": { + "micro": 90, + "minor": 7, + "major": 2 + }, + "package": " (v2.8.0-rc0-dirty)" + }, + "id": "libvirt-2" +} + +{ + "return": { + "arch": "x86_64" + }, + "id": "libvirt-3" +} + +{ + "return": [ + { + "name": "xen-set-global-dirty-log" + }, + { + "name": "xen-save-devices-state" + }, + { + "name": "xen-load-devices-state" + }, + { + "name": "x-colo-lost-heartbeat" + }, + { + "name": "x-blockdev-remove-medium" + }, + { + "name": "x-blockdev-insert-medium" + }, + { + "name": "x-blockdev-del" + }, + { + "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-vnc-servers" + }, + { + "name": "query-vnc" + }, + { + "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-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-remove" + }, + { + "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-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" + }, + { + "name": "netdev_add" + }, + { + "name": "device_add" + }, + { + "name": "query-qmp-schema" + } + ], + "id": "libvirt-4" +} + +{ + "return": { + "fd": 16, + "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" + }, + { + "name": "virtio-tablet-pci" + }, + { + "name": "pc-0.13-machine" + }, + { + "name": "generic-sdhci" + }, + { + "name": "i82551" + }, + { + "name": "i82550" + }, + { + "name": "Westmere-x86_64-cpu" + }, + { + "name": "pci-serial-4x" + }, + { + "name": "cryptodev-backend" + }, + { + "name": "Penryn-x86_64-cpu" + }, + { + "name": "Haswell-x86_64-cpu" + }, + { + "name": "iothread" + }, + { + "name": "cfi.pflash01" + }, + { + "name": "Skylake-Client-x86_64-cpu" + }, + { + "name": "virtio-gpu-device" + }, + { + "name": "Opteron_G3-x86_64-cpu" + }, + { + "name": "e1000e" + }, + { + "name": "Broadwell-x86_64-cpu" + }, + { + "name": "piix3-ide" + }, + { + "name": "floppy-bus" + }, + { + "name": "isa-parallel" + }, + { + "name": "megasas" + }, + { + "name": "i2c-bus" + }, + { + "name": "pc-q35-2.4-machine" + }, + { + "name": "vhost-vsock-device" + }, + { + "name": "usb-braille" + }, + { + "name": "mptsas1068" + }, + { + "name": "vmware-svga" + }, + { + "name": "PIIX3-xen" + }, + { + "name": "ccid-bus" + }, + { + "name": "scsi-cd" + }, + { + "name": "pc-i440fx-2.0-machine" + }, + { + "name": "isa-serial" + }, + { + "name": "usb-ehci" + }, + { + "name": "user-creatable" + }, + { + "name": "container" + }, + { + "name": "host-x86_64-cpu" + }, + { + "name": "pci-serial-2x" + }, + { + "name": "scsi-generic" + }, + { + "name": "piix4-ide" + }, + { + "name": "pc-1.0-machine" + }, + { + "name": "virtio-net-pci" + }, + { + "name": "hyperv-testdev" + }, + { + "name": "pc-dimm" + }, + { + "name": "pc-q35-2.8-machine" + }, + { + "name": "Haswell-noTSX-x86_64-cpu" + }, + { + "name": "pc-i440fx-2.1-machine" + }, + { + "name": "virtio-mouse-device" + }, + { + "name": "virtio-mouse-pci" + }, + { + "name": "isa-debugcon" + }, + { + "name": "AMDVI-PCI" + }, + { + "name": "ide-hd" + }, + { + "name": "virtio-vga" + }, + { + "name": "qemu64-x86_64-cpu" + }, + { + "name": "isa-ipmi-bt" + }, + { + "name": "rng-egd" + }, + { + "name": "isa-pcspk" + }, + { + "name": "isa-pit" + }, + { + "name": "pc-1.1-machine" + }, + { + "name": "filter-buffer" + }, + { + "name": "ich9-usb-ehci1" + }, + { + "name": "ich9-usb-ehci2" + }, + { + "name": "pxb-host" + }, + { + "name": "intel-iommu" + }, + { + "name": "irq" + }, + { + "name": "ipmi-bmc-sim" + }, + { + "name": "cirrus-vga" + }, + { + "name": "virtconsole" + }, + { + "name": "virtio-rng-pci" + }, + { + "name": "PCIE" + }, + { + "name": "vfio-amd-xgbe" + }, + { + "name": "pentium3-x86_64-cpu" + }, + { + "name": "qxl-vga" + }, + { + "name": "ioapic" + }, + { + "name": "kvm-pit" + }, + { + "name": "pc-i440fx-2.5-machine" + }, + { + "name": "filter-rewriter" + }, + { + "name": "qio-channel-buffer" + }, + { + "name": "vhost-scsi-pci" + }, + { + "name": "usb-kbd" + }, + { + "name": "xen-apic" + }, + { + "name": "usb-host" + }, + { + "name": "usb-bus" + }, + { + "name": "pc-i440fx-1.4-machine" + }, + { + "name": "PIIX3" + }, + { + "name": "486-x86_64-cpu" + }, + { + "name": "ES1370" + }, + { + "name": "gus" + }, + { + "name": "kvm-pci-assign" + }, + { + "name": "isa-applesmc" + }, + { + "name": "pc-i440fx-2.6-machine" + }, + { + "name": "xen-pci-passthrough" + }, + { + "name": "i82559er" + }, + { + "name": "q35-pcihost" + }, + { + "name": "usb-bt-dongle" + }, + { + "name": "e1000-82545em" + }, + { + "name": "e1000-82544gc" + }, + { + "name": "ipmi-interface" + }, + { + "name": "pc-i440fx-1.5-machine" + }, + { + "name": "or-irq" + }, + { + "name": "pc-0.14-machine" + }, + { + "name": "i6300esb" + }, + { + "name": "mc146818rtc" + }, + { + "name": "AC97" + }, + { + "name": "filter-redirector" + }, + { + "name": "PIIX4_PM" + }, + { + "name": "piix4-usb-uhci" + }, + { + "name": "sysbus-ahci" + }, + { + "name": "virtio-tablet-device" + }, + { + "name": "kvm-ioapic" + }, + { + "name": "pvpanic" + }, + { + "name": "core2duo-x86_64-cpu" + }, + { + "name": "tls-creds-x509" + }, + { + "name": "virtio-9p-pci" + }, + { + "name": "scsi-disk" + }, + { + "name": "acpi-device-interface" + }, + { + "name": "vfio-pci-igd-lpc-bridge" + }, + { + "name": "sb16" + }, + { + "name": "qemu-console" + }, + { + "name": "pc-0.15-machine" + }, + { + "name": "usb-mouse" + }, + { + "name": "xenfv-machine" + }, + { + "name": "filter-dump" + }, + { + "name": "virtio-blk-pci" + }, + { + "name": "piix3-usb-uhci" + }, + { + "name": "vfio-calxeda-xgmac" + }, + { + "name": "virtio-scsi-device" + }, + { + "name": "tpci200" + }, + { + "name": "virtio-9p-device" + }, + { + "name": "pc-q35-2.5-machine" + }, + { + "name": "SUNW,fdtwo" + }, + { + "name": "hda-output" + }, + { + "name": "i8257" + }, + { + "name": "Opteron_G4-x86_64-cpu" + }, + { + "name": "filter-mirror" + }, + { + "name": "virtio-mmio" + }, + { + "name": "intctrl" + }, + { + "name": "isa-i8259" + }, + { + "name": "System" + }, + { + "name": "pvscsi" + }, + { + "name": "amd-iommu" + }, + { + "name": "virtio-net-device" + }, + { + "name": "colo-compare" + }, + { + "name": "sd-bus" + }, + { + "name": "qio-channel-file" + }, + { + "name": "usb-hub" + }, + { + "name": "IvyBridge-x86_64-cpu" + }, + { + "name": "hda-duplex" + }, + { + "name": "igd-passthrough-i440FX" + }, + { + "name": "virtio-keyboard-pci" + }, + { + "name": "igd-passthrough-isa-bridge" + }, + { + "name": "rocker" + }, + { + "name": "nec-usb-xhci" + }, + { + "name": "input-linux" + }, + { + "name": "megasas-gen2" + }, + { + "name": "pci-ohci" + }, + { + "name": "ib700" + }, + { + "name": "xio3130-downstream" + }, + { + "name": "isapc-machine" + }, + { + "name": "ipoctal232" + }, + { + "name": "ide-cd" + }, + { + "name": "tls-creds-anon" + }, + { + "name": "pc-i440fx-2.2-machine" + }, + { + "name": "isabus-bridge" + }, + { + "name": "isa-ipmi-kcs" + }, + { + "name": "memory-backend-file" + }, + { + "name": "isa-ide" + }, + { + "name": "virtio-keyboard-device" + }, + { + "name": "virtio-crypto-pci" + }, + { + "name": "isa-vga" + }, + { + "name": "qemu:memory-region" + }, + { + "name": "ipmi-bmc-extern" + }, + { + "name": "rng-random" + }, + { + "name": "hotplug-handler" + }, + { + "name": "kvm-i8259" + }, + { + "name": "i440FX-pcihost" + }, + { + "name": "qemu32-x86_64-cpu" + }, + { + "name": "tpm-tis" + }, + { + "name": "tpm-passthrough" + }, + { + "name": "pc-1.2-machine" + }, + { + "name": "isa-debug-exit" + }, + { + "name": "Opteron_G1-x86_64-cpu" + }, + { + "name": "pc-testdev" + }, + { + "name": "pc-0.10-machine" + }, + { + "name": "pc-i440fx-2.3-machine" + }, + { + "name": "xen-pvdevice" + }, + { + "name": "sga" + }, + { + "name": "pcnet" + }, + { + "name": "apic" + }, + { + "name": "ivshmem" + }, + { + "name": "hpet" + }, + { + "name": "adlib" + }, + { + "name": "qio-channel-command" + }, + { + "name": "lsi53c895a" + }, + { + "name": "secret" + }, + { + "name": "pxb-bus" + }, + { + "name": "usb-audio" + }, + { + "name": "usb-wacom-tablet" + }, + { + "name": "virtio-mmio-bus" + }, + { + "name": "pc-0.11-machine" + }, + { + "name": "kvm-apic" + }, + { + "name": "phenom-x86_64-cpu" + }, + { + "name": "xensysdev" + }, + { + "name": "fw_cfg_io" + }, + { + "name": "usb-net" + }, + { + "name": "ioh3420" + }, + { + "name": "virtio-crypto-device" + }, + { + "name": "cs4231a" + }, + { + "name": "dc390" + }, + { + "name": "nvme" + }, + { + "name": "i82801b11-bridge" + }, + { + "name": "kvmvapic" + }, + { + "name": "usb-tablet" + }, + { + "name": "fw-path-provider" + }, + { + "name": "usb-ccid" + }, + { + "name": "sdhci-bus" + }, + { + "name": "pci-bridge-seat" + }, + { + "name": "mch" + }, + { + "name": "pc-i440fx-2.7-machine" + }, + { + "name": "vhost-scsi" + }, + { + "name": "isa-dma" + }, + { + "name": "tcg-accel" + }, + { + "name": "ich9-usb-uhci2" + }, + { + "name": "isa-cirrus-vga" + }, + { + "name": "usb-bot" + }, + { + "name": "ICH9-LPC" + }, + { + "name": "edu" + }, + { + "name": "accel" + }, + { + "name": "pxb-pcie-bus" + }, + { + "name": "pc-i440fx-1.6-machine" + }, + { + "name": "lsi53c810" + }, + { + "name": "kvmclock" + }, + { + "name": "loader" + }, + { + "name": "pc-i440fx-2.8-machine" + }, + { + "name": "ich9-usb-uhci4" + }, + { + "name": "virtio-serial-bus" + }, + { + "name": "nvdimm" + }, + { + "name": "virtio-balloon-pci" + }, + { + "name": "SandyBridge-x86_64-cpu" + }, + { + "name": "esp" + }, + { + "name": "virtio-balloon-device" + }, + { + "name": "x3130-upstream" + }, + { + "name": "ich9-usb-uhci5" + }, + { + "name": "qxl" + }, + { + "name": "intel-hda" + }, + { + "name": "ich9-usb-uhci6" + }, + { + "name": "pc-i440fx-1.7-machine" + }, + { + "name": "virtio-serial-device" + }, + { + "name": "ich9-usb-uhci3" + }, + { + "name": "ICH9 SMB" + }, + { + "name": "pxb-pcie" + }, + { + "name": "piix3-ide-xen" + }, + { + "name": "xen-accel" + }, + { + "name": "virtio-input-host-device" + }, + { + "name": "vmxnet3" + }, + { + "name": "IDE" + }, + { + "name": "VGA" + }, + { + "name": "pci-testdev" + }, + { + "name": "ich9-usb-uhci1" + }, + { + "name": "xenpv-machine" + }, + { + "name": "pci-bridge" + }, + { + "name": "SCSI" + }, + { + "name": "none-machine" + }, + { + "name": "sysbus-fdc" + }, + { + "name": "allwinner-ahci" + }, + { + "name": "n270-x86_64-cpu" + }, + { + "name": "pci-serial" + }, + { + "name": "pc-q35-2.6-machine" + }, + { + "name": "athlon-x86_64-cpu" + }, + { + "name": "virtio-rng-device" + }, + { + "name": "am53c974" + }, + { + "name": "ISA" + }, + { + "name": "i8042" + }, + { + "name": "kvm-accel" + }, + { + "name": "i82559c" + }, + { + "name": "floppy" + }, + { + "name": "i82559b" + }, + { + "name": "i82559a" + }, + { + "name": "scsi-hd" + }, + { + "name": "qtest-accel" + }, + { + "name": "virtio-scsi-pci" + }, + { + "name": "hda-micro" + }, + { + "name": "scsi-block" + }, + { + "name": "ich9-intel-hda" + }, + { + "name": "rtl8139" + }, + { + "name": "vmmouse" + }, + { + "name": "pc-q35-2.7-machine" + }, + { + "name": "usb-mtp" + }, + { + "name": "ide-drive" + }, + { + "name": "qio-channel-websock" + }, + { + "name": "fw_cfg_mem" + }, + { + "name": "PCI" + }, + { + "name": "Opteron_G5-x86_64-cpu" + }, + { + "name": "vmport" + }, + { + "name": "coreduo-x86_64-cpu" + }, + { + "name": "virtio-serial-pci" + }, + { + "name": "xen-platform" + }, + { + "name": "virtio-input-host-pci" + }, + { + "name": "pentium2-x86_64-cpu" + }, + { + "name": "i82558b" + }, + { + "name": "nmi" + }, + { + "name": "cryptodev-backend-builtin" + }, + { + "name": "i82558a" + }, + { + "name": "qemu,register" + }, + { + "name": "ne2k_isa" + }, + { + "name": "sdhci-pci" + }, + { + "name": "virtio-pci-bus" + }, + { + "name": "pxb" + }, + { + "name": "port92" + }, + { + "name": "e1000" + }, + { + "name": "Conroe-x86_64-cpu" + }, + { + "name": "kvm64-x86_64-cpu" + }, + { + "name": "qio-channel-tls" + }, + { + "name": "vt82c686b-usb-uhci" + }, + { + "name": "HDA" + }, + { + "name": "usb-storage" + }, + { + "name": "pc-1.3-machine" + }, + { + "name": "usb-serial" + }, + { + "name": "usb-redir" + }, + { + "name": "sysbus-ohci" + }, + { + "name": "i82801" + }, + { + "name": "pc-i440fx-2.4-machine" + }, + { + "name": "i82557b" + }, + { + "name": "usb-uas" + }, + { + "name": "Broadwell-noTSX-x86_64-cpu" + }, + { + "name": "i82557c" + }, + { + "name": "Nehalem-x86_64-cpu" + }, + { + "name": "memory-backend-ram" + }, + { + "name": "i82557a" + }, + { + "name": "virtserialport" + }, + { + "name": "i440FX" + }, + { + "name": "ne2k_pci" + }, + { + "name": "smbus-eeprom" + }, + { + "name": "i82562" + }, + { + "name": "ich9-ahci" + }, + { + "name": "isa-fdc" + }, + { + "name": "sd-card" + }, + { + "name": "pc-0.12-machine" + }, + { + "name": "kvm32-x86_64-cpu" + }, + { + "name": "Opteron_G2-x86_64-cpu" + }, + { + "name": "vfio-pci" + }, + { + "name": "IndustryPack" + }, + { + "name": "virtio-gpu-pci" + }, + { + "name": "ivshmem-plain" + }, + { + "name": "secondary-vga" + }, + { + "name": "ivshmem-doorbell" + }, + { + "name": "qio-channel-socket" + }, + { + "name": "pentium-x86_64-cpu" + }, + { + "name": "virtio-blk-device" + } + ], + "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": "werror", + "description": "Error handling policy, report/ignore/enospc/stop/auto", + "type": "BlockdevOnError" + }, + { + "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-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "class", + "type": "uint32" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or 06", + "type": "int32" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "vectors", + "type": "uint32" + }, + { + "name": "physical_block_size", + "description": "A power of two between 512 and 32768", + "type": "uint16" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "virtio-backend", + "type": "child<virtio-blk-device>" + }, + { + "name": "config-wce", + "description": "on/off", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "num-queues", + "type": "uint16" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "write-cache", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "opt_io_size", + "type": "uint32" + }, + { + "name": "romfile", + "type": "str" + } + ], + "id": "libvirt-10" +} + +{ + "return": [ + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-txtimer", + "type": "uint32" + }, + { + "name": "guest_ufo", + "description": "on/off", + "type": "bool" + }, + { + "name": "mq", + "description": "on/off", + "type": "bool" + }, + { + "name": "status", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_ecn", + "description": "on/off", + "type": "bool" + }, + { + "name": "ioeventfd", + "description": "on/off", + "type": "bool" + }, + { + "name": "tx", + "type": "str" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "ctrl_rx_extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "mac", + "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56", + "type": "str" + }, + { + "name": "rx_queue_size", + "type": "uint16" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_tso6", + "description": "on/off", + "type": "bool" + }, + { + "name": "gso", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_ecn", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_rx", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_tso4", + "description": "on/off", + "type": "bool" + }, + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "guest_csum", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest_announce", + "description": "on/off", + "type": "bool" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-txburst", + "type": "int32" + }, + { + "name": "ctrl_vlan", + "description": "on/off", + "type": "bool" + }, + { + "name": "csum", + "description": "on/off", + "type": "bool" + }, + { + "name": "mrg_rxbuf", + "description": "on/off", + "type": "bool" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "ctrl_guest_offloads", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_tso6", + "description": "on/off", + "type": "bool" + }, + { + "name": "bootindex", + "type": "int32" + }, + { + "name": "ctrl_mac_addr", + "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": "vlan", + "description": "Integer VLAN id to connect to", + "type": "int32" + }, + { + "name": "host_tso4", + "description": "on/off", + "type": "bool" + }, + { + "name": "host_ufo", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-backend", + "type": "child<virtio-net-device>" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "netdev", + "description": "ID of a netdev to use as a backend", + "type": "str" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + } + ], + "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": "disable-modern", + "type": "bool" + }, + { + "name": "cmd_per_lun", + "type": "uint32" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "num_queues", + "type": "uint32" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "hotplug", + "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": "virtio-backend", + "type": "child<virtio-scsi-device>" + }, + { + "name": "notify_on_empty", + "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": "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": "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": "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": "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": "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": "int" + }, + { + "name": "pci-hole-end", + "type": "int" + }, + { + "name": "pci-hole-start", + "type": "int" + }, + { + "name": "pci-hole64-start", + "type": "int" + }, + { + "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": "int" + }, + { + "name": "io-mem", + "type": "link<qemu:memory-region>" + }, + { + "name": "pci-hole64-end", + "type": "int" + }, + { + "name": "pci-hole-end", + "type": "int" + }, + { + "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": "int" + }, + { + "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": "int" + } + ], + "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": "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": "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": "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": "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": "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": "cmdlog", + "type": "uint32" + } + ], + "id": "libvirt-33" +} + +{ + "return": [ + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "ioeventfd", + "description": "on/off", + "type": "bool" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "stats", + "description": "on/off", + "type": "bool" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "virgl", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "virtio-backend", + "type": "child<virtio-gpu-device>" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "vectors", + "type": "uint32" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or 06", + "type": "int32" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "max_outputs", + "type": "uint32" + }, + { + "name": "rombar", + "type": "uint32" + } + ], + "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": "stats", + "description": "on/off", + "type": "bool" + }, + { + "name": "max_outputs", + "type": "uint32" + }, + { + "name": "virgl", + "description": "on/off", + "type": "bool" + } + ], + "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": "disable_s4", + "type": "uint8" + }, + { + "name": "acpi_disable_cmd", + "type": "uint8" + }, + { + "name": "cpu-hotplug-legacy", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "disable_s3", + "type": "uint8" + }, + { + "name": "s4_val", + "type": "uint8" + }, + { + "name": "acpi_enable_cmd", + "type": "uint8" + }, + { + "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": "gpe0_blk", + "type": "uint32" + } + ], + "id": "libvirt-36" +} + +{ + "return": [ + { + "name": "disable-modern", + "type": "bool" + }, + { + "name": "rombar", + "type": "uint32" + }, + { + "name": "virtio-pci-bus-master-bug-migration", + "description": "on/off", + "type": "bool" + }, + { + "name": "class", + "type": "uint32" + }, + { + "name": "x-pcie-lnksta-dllla", + "description": "on/off", + "type": "bool" + }, + { + "name": "indirect_desc", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest-stats", + "type": "guest statistics" + }, + { + "name": "page-per-vq", + "description": "on/off", + "type": "bool" + }, + { + "name": "multifunction", + "description": "on/off", + "type": "bool" + }, + { + "name": "migrate-extra", + "description": "on/off", + "type": "bool" + }, + { + "name": "event_idx", + "description": "on/off", + "type": "bool" + }, + { + "name": "modern-pio-notify", + "description": "on/off", + "type": "bool" + }, + { + "name": "romfile", + "type": "str" + }, + { + "name": "virtio-backend", + "type": "child<virtio-balloon-device>" + }, + { + "name": "disable-legacy", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "name": "command_serr_enable", + "description": "on/off", + "type": "bool" + }, + { + "name": "guest-stats-polling-interval", + "type": "int" + }, + { + "name": "x-disable-pcie", + "description": "on/off", + "type": "bool" + }, + { + "name": "addr", + "description": "Slot and optional function number, example: 06.0 or 06", + "type": "int32" + }, + { + "name": "any_layout", + "description": "on/off", + "type": "bool" + }, + { + "name": "notify_on_empty", + "description": "on/off", + "type": "bool" + }, + { + "name": "deflate-on-oom", + "description": "on/off", + "type": "bool" + } + ], + "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": "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": "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": [ + { + "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", + "is-default": true, + "cpu-max": 255, + "alias": "pc" + }, + { + "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-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-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, + "alias": "q35" + }, + { + "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-0.13", + "cpu-max": 255 + } + ], + "id": "libvirt-41" +} + +{ + "return": [ + { + "name": "host", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "qemu64", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "qemu32", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "phenom", + "unavailable-features": [ + "mmxext", + "fxsr-opt", + "3dnowext", + "3dnow", + "sse4a", + "npt" + ], + "static": false + }, + { + "name": "pentium3", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "pentium2", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "pentium", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "n270", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "kvm64", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "kvm32", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "coreduo", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "core2duo", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "athlon", + "unavailable-features": [ + "mmxext", + "3dnowext", + "3dnow" + ], + "static": false + }, + { + "name": "Westmere", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Skylake-Client", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "SandyBridge", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Penryn", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Opteron_G5", + "unavailable-features": [ + "sse4a", + "misalignsse", + "xop", + "fma4", + "tbm" + ], + "static": false + }, + { + "name": "Opteron_G4", + "unavailable-features": [ + "sse4a", + "misalignsse", + "xop", + "fma4" + ], + "static": false + }, + { + "name": "Opteron_G3", + "unavailable-features": [ + "sse4a", + "misalignsse" + ], + "static": false + }, + { + "name": "Opteron_G2", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Opteron_G1", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Nehalem", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "IvyBridge", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Haswell", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Haswell-noTSX", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Conroe", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Broadwell", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Broadwell-noTSX", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "486", + "unavailable-features": [ + ], + "static": false + } + ], + "id": "libvirt-42" +} + +{ + "return": [ + "tpm-tis" + ], + "id": "libvirt-43" +} + +{ + "return": [ + "passthrough" + ], + "id": "libvirt-44" +} + +{ + "return": [ + { + "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": "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": "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": "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": "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": "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": "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": "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": "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": "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-45" +} + +{ + "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" + } + ], + "id": "libvirt-46" +} + +{ + "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": "17" + }, + { + "name": "RESUME", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "RTC_CHANGE", + "meta-type": "event", + "arg-type": "20" + }, + { + "name": "SHUTDOWN", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "SPICE_CONNECTED", + "meta-type": "event", + "arg-type": "21" + }, + { + "name": "SPICE_DISCONNECTED", + "meta-type": "event", + "arg-type": "22" + }, + { + "name": "SPICE_INITIALIZED", + "meta-type": "event", + "arg-type": "23" + }, + { + "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": "24" + }, + { + "name": "VNC_DISCONNECTED", + "meta-type": "event", + "arg-type": "25" + }, + { + "name": "VNC_INITIALIZED", + "meta-type": "event", + "arg-type": "26" + }, + { + "name": "VSERPORT_CHANGE", + "meta-type": "event", + "arg-type": "27" + }, + { + "name": "WAKEUP", + "meta-type": "event", + "arg-type": "17" + }, + { + "name": "WATCHDOG", + "meta-type": "event", + "arg-type": "28" + }, + { + "name": "add-fd", + "ret-type": "30", + "meta-type": "command", + "arg-type": "29" + }, + { + "name": "add_client", + "ret-type": "17", + "meta-type": "command", + "arg-type": "31" + }, + { + "name": "balloon", + "ret-type": "17", + "meta-type": "command", + "arg-type": "32" + }, + { + "name": "block-commit", + "ret-type": "17", + "meta-type": "command", + "arg-type": "33" + }, + { + "name": "block-dirty-bitmap-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "34" + }, + { + "name": "block-dirty-bitmap-clear", + "ret-type": "17", + "meta-type": "command", + "arg-type": "35" + }, + { + "name": "block-dirty-bitmap-remove", + "ret-type": "17", + "meta-type": "command", + "arg-type": "35" + }, + { + "name": "block-job-cancel", + "ret-type": "17", + "meta-type": "command", + "arg-type": "36" + }, + { + "name": "block-job-complete", + "ret-type": "17", + "meta-type": "command", + "arg-type": "37" + }, + { + "name": "block-job-pause", + "ret-type": "17", + "meta-type": "command", + "arg-type": "38" + }, + { + "name": "block-job-resume", + "ret-type": "17", + "meta-type": "command", + "arg-type": "39" + }, + { + "name": "block-job-set-speed", + "ret-type": "17", + "meta-type": "command", + "arg-type": "40" + }, + { + "name": "block-set-write-threshold", + "ret-type": "17", + "meta-type": "command", + "arg-type": "41" + }, + { + "name": "block-stream", + "ret-type": "17", + "meta-type": "command", + "arg-type": "42" + }, + { + "name": "block_passwd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "43" + }, + { + "name": "block_resize", + "ret-type": "17", + "meta-type": "command", + "arg-type": "44" + }, + { + "name": "block_set_io_throttle", + "ret-type": "17", + "meta-type": "command", + "arg-type": "45" + }, + { + "name": "blockdev-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "46" + }, + { + "name": "blockdev-backup", + "ret-type": "17", + "meta-type": "command", + "arg-type": "47" + }, + { + "name": "blockdev-change-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "48" + }, + { + "name": "blockdev-close-tray", + "ret-type": "17", + "meta-type": "command", + "arg-type": "49" + }, + { + "name": "blockdev-mirror", + "ret-type": "17", + "meta-type": "command", + "arg-type": "50" + }, + { + "name": "blockdev-open-tray", + "ret-type": "17", + "meta-type": "command", + "arg-type": "51" + }, + { + "name": "blockdev-snapshot", + "ret-type": "17", + "meta-type": "command", + "arg-type": "52" + }, + { + "name": "blockdev-snapshot-delete-internal-sync", + "ret-type": "54", + "meta-type": "command", + "arg-type": "53" + }, + { + "name": "blockdev-snapshot-internal-sync", + "ret-type": "17", + "meta-type": "command", + "arg-type": "55" + }, + { + "name": "blockdev-snapshot-sync", + "ret-type": "17", + "meta-type": "command", + "arg-type": "56" + }, + { + "name": "change", + "ret-type": "17", + "meta-type": "command", + "arg-type": "57" + }, + { + "name": "change-backing-file", + "ret-type": "17", + "meta-type": "command", + "arg-type": "58" + }, + { + "name": "change-vnc-password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "59" + }, + { + "name": "chardev-add", + "ret-type": "61", + "meta-type": "command", + "arg-type": "60" + }, + { + "name": "chardev-remove", + "ret-type": "17", + "meta-type": "command", + "arg-type": "62" + }, + { + "name": "client_migrate_info", + "ret-type": "17", + "meta-type": "command", + "arg-type": "63" + }, + { + "name": "closefd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "64" + }, + { + "name": "cont", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "cpu", + "ret-type": "17", + "meta-type": "command", + "arg-type": "65" + }, + { + "name": "cpu-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "66" + }, + { + "name": "device-list-properties", + "ret-type": "[68]", + "meta-type": "command", + "arg-type": "67" + }, + { + "name": "device_add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "69" + }, + { + "name": "device_del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "70" + }, + { + "name": "drive-backup", + "ret-type": "17", + "meta-type": "command", + "arg-type": "71" + }, + { + "name": "drive-mirror", + "ret-type": "17", + "meta-type": "command", + "arg-type": "72" + }, + { + "name": "dump-guest-memory", + "ret-type": "17", + "meta-type": "command", + "arg-type": "73" + }, + { + "name": "dump-skeys", + "ret-type": "17", + "meta-type": "command", + "arg-type": "74" + }, + { + "name": "eject", + "ret-type": "17", + "meta-type": "command", + "arg-type": "75" + }, + { + "name": "expire_password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "76" + }, + { + "name": "getfd", + "ret-type": "17", + "meta-type": "command", + "arg-type": "77" + }, + { + "name": "human-monitor-command", + "ret-type": "str", + "meta-type": "command", + "arg-type": "78" + }, + { + "name": "inject-nmi", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "input-send-event", + "ret-type": "17", + "meta-type": "command", + "arg-type": "79" + }, + { + "name": "memsave", + "ret-type": "17", + "meta-type": "command", + "arg-type": "80" + }, + { + "name": "migrate", + "ret-type": "17", + "meta-type": "command", + "arg-type": "81" + }, + { + "name": "migrate-incoming", + "ret-type": "17", + "meta-type": "command", + "arg-type": "82" + }, + { + "name": "migrate-set-cache-size", + "ret-type": "17", + "meta-type": "command", + "arg-type": "83" + }, + { + "name": "migrate-set-capabilities", + "ret-type": "17", + "meta-type": "command", + "arg-type": "84" + }, + { + "name": "migrate-set-parameters", + "ret-type": "17", + "meta-type": "command", + "arg-type": "85" + }, + { + "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": "86" + }, + { + "name": "migrate_set_speed", + "ret-type": "17", + "meta-type": "command", + "arg-type": "87" + }, + { + "name": "nbd-server-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "88" + }, + { + "name": "nbd-server-start", + "ret-type": "17", + "meta-type": "command", + "arg-type": "89" + }, + { + "name": "nbd-server-stop", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "netdev_add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "90" + }, + { + "name": "netdev_del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "91" + }, + { + "name": "object-add", + "ret-type": "17", + "meta-type": "command", + "arg-type": "92" + }, + { + "name": "object-del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "93" + }, + { + "name": "pmemsave", + "ret-type": "17", + "meta-type": "command", + "arg-type": "94" + }, + { + "name": "qmp_capabilities", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "qom-get", + "ret-type": "any", + "meta-type": "command", + "arg-type": "95" + }, + { + "name": "qom-list", + "ret-type": "[97]", + "meta-type": "command", + "arg-type": "96" + }, + { + "name": "qom-list-types", + "ret-type": "[99]", + "meta-type": "command", + "arg-type": "98" + }, + { + "name": "qom-set", + "ret-type": "17", + "meta-type": "command", + "arg-type": "100" + }, + { + "name": "query-acpi-ospm-status", + "ret-type": "[101]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-balloon", + "ret-type": "102", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-block", + "ret-type": "[103]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-block-jobs", + "ret-type": "[104]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-blockstats", + "ret-type": "[106]", + "meta-type": "command", + "arg-type": "105" + }, + { + "name": "query-chardev", + "ret-type": "[107]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-chardev-backends", + "ret-type": "[108]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-command-line-options", + "ret-type": "[110]", + "meta-type": "command", + "arg-type": "109" + }, + { + "name": "query-commands", + "ret-type": "[111]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-cpu-definitions", + "ret-type": "[112]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-cpu-model-baseline", + "ret-type": "114", + "meta-type": "command", + "arg-type": "113" + }, + { + "name": "query-cpu-model-comparison", + "ret-type": "116", + "meta-type": "command", + "arg-type": "115" + }, + { + "name": "query-cpu-model-expansion", + "ret-type": "118", + "meta-type": "command", + "arg-type": "117" + }, + { + "name": "query-cpus", + "ret-type": "[119]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-dump", + "ret-type": "120", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-dump-guest-memory-capability", + "ret-type": "121", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-events", + "ret-type": "[122]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-fdsets", + "ret-type": "[123]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-gic-capabilities", + "ret-type": "[124]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-hotpluggable-cpus", + "ret-type": "[125]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-iothreads", + "ret-type": "[126]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-kvm", + "ret-type": "127", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-machines", + "ret-type": "[128]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-memdev", + "ret-type": "[129]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-memory-devices", + "ret-type": "[130]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-mice", + "ret-type": "[131]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-migrate", + "ret-type": "132", + "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": "[133]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-migrate-parameters", + "ret-type": "85", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-name", + "ret-type": "134", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-named-block-nodes", + "ret-type": "[135]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-pci", + "ret-type": "[136]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-qmp-schema", + "ret-type": "[137]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-rocker", + "ret-type": "139", + "meta-type": "command", + "arg-type": "138" + }, + { + "name": "query-rocker-of-dpa-flows", + "ret-type": "[141]", + "meta-type": "command", + "arg-type": "140" + }, + { + "name": "query-rocker-of-dpa-groups", + "ret-type": "[143]", + "meta-type": "command", + "arg-type": "142" + }, + { + "name": "query-rocker-ports", + "ret-type": "[145]", + "meta-type": "command", + "arg-type": "144" + }, + { + "name": "query-rx-filter", + "ret-type": "[147]", + "meta-type": "command", + "arg-type": "146" + }, + { + "name": "query-spice", + "ret-type": "148", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-status", + "ret-type": "149", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-target", + "ret-type": "150", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm", + "ret-type": "[151]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm-models", + "ret-type": "[152]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-tpm-types", + "ret-type": "[153]", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-uuid", + "ret-type": "154", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-version", + "ret-type": "155", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-vnc", + "ret-type": "156", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "query-vnc-servers", + "ret-type": "[157]", + "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": "158" + }, + { + "name": "ringbuf-read", + "ret-type": "str", + "meta-type": "command", + "arg-type": "159" + }, + { + "name": "ringbuf-write", + "ret-type": "17", + "meta-type": "command", + "arg-type": "160" + }, + { + "name": "rtc-reset-reinjection", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "screendump", + "ret-type": "17", + "meta-type": "command", + "arg-type": "161" + }, + { + "name": "send-key", + "ret-type": "17", + "meta-type": "command", + "arg-type": "162" + }, + { + "name": "set_link", + "ret-type": "17", + "meta-type": "command", + "arg-type": "163" + }, + { + "name": "set_password", + "ret-type": "17", + "meta-type": "command", + "arg-type": "164" + }, + { + "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": "[166]", + "meta-type": "command", + "arg-type": "165" + }, + { + "name": "trace-event-set-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "167" + }, + { + "name": "transaction", + "ret-type": "17", + "meta-type": "command", + "arg-type": "168" + }, + { + "name": "x-blockdev-change", + "ret-type": "17", + "meta-type": "command", + "arg-type": "169" + }, + { + "name": "x-blockdev-del", + "ret-type": "17", + "meta-type": "command", + "arg-type": "170" + }, + { + "name": "x-blockdev-insert-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "171" + }, + { + "name": "x-blockdev-remove-medium", + "ret-type": "17", + "meta-type": "command", + "arg-type": "172" + }, + { + "name": "x-colo-lost-heartbeat", + "ret-type": "17", + "meta-type": "command", + "arg-type": "17" + }, + { + "name": "xen-load-devices-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "173" + }, + { + "name": "xen-save-devices-state", + "ret-type": "17", + "meta-type": "command", + "arg-type": "174" + }, + { + "name": "xen-set-global-dirty-log", + "ret-type": "17", + "meta-type": "command", + "arg-type": "175" + }, + { + "name": "0", + "members": [ + { + "name": "info", + "type": "101" + } + ], + "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": "176" + }, + { + "name": "action", + "type": "177" + }, + { + "name": "nospace", + "default": null, + "type": "bool" + }, + { + "name": "reason", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "4", + "members": [ + { + "name": "type", + "type": "178" + }, + { + "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": "178" + }, + { + "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": "176" + }, + { + "name": "action", + "type": "177" + } + ], + "meta-type": "object" + }, + { + "name": "7", + "members": [ + { + "name": "type", + "type": "178" + }, + { + "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": "120" + }, + { + "name": "error", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "12", + "members": [ + { + "name": "action", + "type": "179" + } + ], + "meta-type": "object" + }, + { + "name": "13", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "msg", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "14", + "members": [ + { + "name": "status", + "type": "180" + } + ], + "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": "181" + }, + { + "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": "offset", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "21", + "members": [ + { + "name": "server", + "type": "182" + }, + { + "name": "client", + "type": "182" + } + ], + "meta-type": "object" + }, + { + "name": "22", + "members": [ + { + "name": "server", + "type": "182" + }, + { + "name": "client", + "type": "182" + } + ], + "meta-type": "object" + }, + { + "name": "23", + "members": [ + { + "name": "server", + "type": "183" + }, + { + "name": "client", + "type": "184" + } + ], + "meta-type": "object" + }, + { + "name": "24", + "members": [ + { + "name": "server", + "type": "185" + }, + { + "name": "client", + "type": "186" + } + ], + "meta-type": "object" + }, + { + "name": "25", + "members": [ + { + "name": "server", + "type": "185" + }, + { + "name": "client", + "type": "187" + } + ], + "meta-type": "object" + }, + { + "name": "26", + "members": [ + { + "name": "server", + "type": "185" + }, + { + "name": "client", + "type": "187" + } + ], + "meta-type": "object" + }, + { + "name": "27", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "open", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "28", + "members": [ + { + "name": "action", + "type": "188" + } + ], + "meta-type": "object" + }, + { + "name": "29", + "members": [ + { + "name": "fdset-id", + "default": null, + "type": "int" + }, + { + "name": "opaque", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "30", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fd", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "31", + "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": "32", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "33", + "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" + } + ], + "meta-type": "object" + }, + { + "name": "34", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "granularity", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "35", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "36", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "37", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "38", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "39", + "members": [ + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "40", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "speed", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "41", + "members": [ + { + "name": "node-name", + "type": "str" + }, + { + "name": "write-threshold", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "42", + "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": "189" + } + ], + "meta-type": "object" + }, + { + "name": "43", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "password", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "44", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "size", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "45", + "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": "46", + "tag": "driver", + "variants": [ + { + "case": "archipelago", + "type": "194" + }, + { + "case": "blkdebug", + "type": "195" + }, + { + "case": "blkverify", + "type": "196" + }, + { + "case": "bochs", + "type": "197" + }, + { + "case": "cloop", + "type": "197" + }, + { + "case": "dmg", + "type": "197" + }, + { + "case": "file", + "type": "198" + }, + { + "case": "ftp", + "type": "199" + }, + { + "case": "ftps", + "type": "199" + }, + { + "case": "gluster", + "type": "200" + }, + { + "case": "host_cdrom", + "type": "198" + }, + { + "case": "host_device", + "type": "198" + }, + { + "case": "http", + "type": "199" + }, + { + "case": "https", + "type": "199" + }, + { + "case": "luks", + "type": "201" + }, + { + "case": "nbd", + "type": "202" + }, + { + "case": "nfs", + "type": "203" + }, + { + "case": "null-aio", + "type": "204" + }, + { + "case": "null-co", + "type": "204" + }, + { + "case": "parallels", + "type": "197" + }, + { + "case": "qcow2", + "type": "205" + }, + { + "case": "qcow", + "type": "206" + }, + { + "case": "qed", + "type": "206" + }, + { + "case": "quorum", + "type": "207" + }, + { + "case": "raw", + "type": "208" + }, + { + "case": "replication", + "type": "209" + }, + { + "case": "ssh", + "type": "210" + }, + { + "case": "vdi", + "type": "197" + }, + { + "case": "vhdx", + "type": "197" + }, + { + "case": "vmdk", + "type": "206" + }, + { + "case": "vpc", + "type": "197" + }, + { + "case": "vvfat", + "type": "211" + } + ], + "members": [ + { + "name": "driver", + "type": "190" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "discard", + "default": null, + "type": "191" + }, + { + "name": "cache", + "default": null, + "type": "192" + }, + { + "name": "read-only", + "default": null, + "type": "bool" + }, + { + "name": "detect-zeroes", + "default": null, + "type": "193" + } + ], + "meta-type": "object" + }, + { + "name": "47", + "members": [ + { + "name": "job-id", + "default": null, + "type": "str" + }, + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "sync", + "type": "212" + }, + { + "name": "speed", + "default": null, + "type": "int" + }, + { + "name": "compress", + "default": null, + "type": "bool" + }, + { + "name": "on-source-error", + "default": null, + "type": "189" + }, + { + "name": "on-target-error", + "default": null, + "type": "189" + } + ], + "meta-type": "object" + }, + { + "name": "48", + "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": "213" + } + ], + "meta-type": "object" + }, + { + "name": "49", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "50", + "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": "212" + }, + { + "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": "189" + }, + { + "name": "on-target-error", + "default": null, + "type": "189" + } + ], + "meta-type": "object" + }, + { + "name": "51", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "52", + "members": [ + { + "name": "node", + "type": "str" + }, + { + "name": "overlay", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "53", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "54", + "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": "55", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "56", + "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": "214" + } + ], + "meta-type": "object" + }, + { + "name": "57", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "target", + "type": "str" + }, + { + "name": "arg", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "58", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "image-node-name", + "type": "str" + }, + { + "name": "backing-file", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "59", + "members": [ + { + "name": "password", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "60", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "backend", + "type": "215" + } + ], + "meta-type": "object" + }, + { + "name": "61", + "members": [ + { + "name": "pty", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "62", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "63", + "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": "64", + "members": [ + { + "name": "fdname", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "65", + "members": [ + { + "name": "index", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "66", + "members": [ + { + "name": "id", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "67", + "members": [ + { + "name": "typename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[68]", + "element-type": "68", + "meta-type": "array" + }, + { + "name": "68", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "description", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "69", + "members": [ + { + "name": "driver", + "type": "str" + }, + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "70", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "71", + "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": "212" + }, + { + "name": "mode", + "default": null, + "type": "214" + }, + { + "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": "189" + }, + { + "name": "on-target-error", + "default": null, + "type": "189" + } + ], + "meta-type": "object" + }, + { + "name": "72", + "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": "212" + }, + { + "name": "mode", + "default": null, + "type": "214" + }, + { + "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": "189" + }, + { + "name": "on-target-error", + "default": null, + "type": "189" + }, + { + "name": "unmap", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "73", + "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": "216" + } + ], + "meta-type": "object" + }, + { + "name": "74", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "75", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "force", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "76", + "members": [ + { + "name": "protocol", + "type": "str" + }, + { + "name": "time", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "77", + "members": [ + { + "name": "fdname", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "78", + "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": "79", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "head", + "default": null, + "type": "int" + }, + { + "name": "events", + "type": "[217]" + } + ], + "meta-type": "object" + }, + { + "name": "80", + "members": [ + { + "name": "val", + "type": "int" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "filename", + "type": "str" + }, + { + "name": "cpu-index", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "81", + "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": "82", + "members": [ + { + "name": "uri", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "83", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "84", + "members": [ + { + "name": "capabilities", + "type": "[133]" + } + ], + "meta-type": "object" + }, + { + "name": "85", + "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" + } + ], + "meta-type": "object" + }, + { + "name": "86", + "members": [ + { + "name": "value", + "type": "number" + } + ], + "meta-type": "object" + }, + { + "name": "87", + "members": [ + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "88", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "writable", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "89", + "members": [ + { + "name": "addr", + "type": "218" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "90", + "members": [ + { + "name": "type", + "type": "str" + }, + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "91", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "92", + "members": [ + { + "name": "qom-type", + "type": "str" + }, + { + "name": "id", + "type": "str" + }, + { + "name": "props", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "93", + "members": [ + { + "name": "id", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "94", + "members": [ + { + "name": "val", + "type": "int" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "95", + "members": [ + { + "name": "path", + "type": "str" + }, + { + "name": "property", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "any", + "json-type": "value", + "meta-type": "builtin" + }, + { + "name": "96", + "members": [ + { + "name": "path", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[97]", + "element-type": "97", + "meta-type": "array" + }, + { + "name": "97", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "98", + "members": [ + { + "name": "implements", + "default": null, + "type": "str" + }, + { + "name": "abstract", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[99]", + "element-type": "99", + "meta-type": "array" + }, + { + "name": "99", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "100", + "members": [ + { + "name": "path", + "type": "str" + }, + { + "name": "property", + "type": "str" + }, + { + "name": "value", + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "[101]", + "element-type": "101", + "meta-type": "array" + }, + { + "name": "101", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "slot", + "type": "str" + }, + { + "name": "slot-type", + "type": "219" + }, + { + "name": "source", + "type": "int" + }, + { + "name": "status", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "102", + "members": [ + { + "name": "actual", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[103]", + "element-type": "103", + "meta-type": "array" + }, + { + "name": "103", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "removable", + "type": "bool" + }, + { + "name": "locked", + "type": "bool" + }, + { + "name": "inserted", + "default": null, + "type": "135" + }, + { + "name": "tray_open", + "default": null, + "type": "bool" + }, + { + "name": "io-status", + "default": null, + "type": "220" + }, + { + "name": "dirty-bitmaps", + "default": null, + "type": "[221]" + } + ], + "meta-type": "object" + }, + { + "name": "[104]", + "element-type": "104", + "meta-type": "array" + }, + { + "name": "104", + "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": "220" + }, + { + "name": "ready", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "105", + "members": [ + { + "name": "query-nodes", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[106]", + "element-type": "106", + "meta-type": "array" + }, + { + "name": "106", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "default": null, + "type": "str" + }, + { + "name": "stats", + "type": "222" + }, + { + "name": "parent", + "default": null, + "type": "106" + }, + { + "name": "backing", + "default": null, + "type": "106" + } + ], + "meta-type": "object" + }, + { + "name": "[107]", + "element-type": "107", + "meta-type": "array" + }, + { + "name": "107", + "members": [ + { + "name": "label", + "type": "str" + }, + { + "name": "filename", + "type": "str" + }, + { + "name": "frontend-open", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[108]", + "element-type": "108", + "meta-type": "array" + }, + { + "name": "108", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "109", + "members": [ + { + "name": "option", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[110]", + "element-type": "110", + "meta-type": "array" + }, + { + "name": "110", + "members": [ + { + "name": "option", + "type": "str" + }, + { + "name": "parameters", + "type": "[223]" + } + ], + "meta-type": "object" + }, + { + "name": "[111]", + "element-type": "111", + "meta-type": "array" + }, + { + "name": "111", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[112]", + "element-type": "112", + "meta-type": "array" + }, + { + "name": "112", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "migration-safe", + "default": null, + "type": "bool" + }, + { + "name": "static", + "type": "bool" + }, + { + "name": "unavailable-features", + "default": null, + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "113", + "members": [ + { + "name": "modela", + "type": "224" + }, + { + "name": "modelb", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "114", + "members": [ + { + "name": "model", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "115", + "members": [ + { + "name": "modela", + "type": "224" + }, + { + "name": "modelb", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "116", + "members": [ + { + "name": "result", + "type": "225" + }, + { + "name": "responsible-properties", + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "117", + "members": [ + { + "name": "type", + "type": "226" + }, + { + "name": "model", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "118", + "members": [ + { + "name": "model", + "type": "224" + } + ], + "meta-type": "object" + }, + { + "name": "[119]", + "element-type": "119", + "meta-type": "array" + }, + { + "name": "119", + "tag": "arch", + "variants": [ + { + "case": "x86", + "type": "228" + }, + { + "case": "sparc", + "type": "229" + }, + { + "case": "ppc", + "type": "230" + }, + { + "case": "mips", + "type": "231" + }, + { + "case": "tricore", + "type": "232" + }, + { + "case": "other", + "type": "233" + } + ], + "members": [ + { + "name": "CPU", + "type": "int" + }, + { + "name": "current", + "type": "bool" + }, + { + "name": "halted", + "type": "bool" + }, + { + "name": "qom_path", + "type": "str" + }, + { + "name": "thread_id", + "type": "int" + }, + { + "name": "arch", + "type": "227" + } + ], + "meta-type": "object" + }, + { + "name": "120", + "members": [ + { + "name": "status", + "type": "234" + }, + { + "name": "completed", + "type": "int" + }, + { + "name": "total", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "121", + "members": [ + { + "name": "formats", + "type": "[216]" + } + ], + "meta-type": "object" + }, + { + "name": "[122]", + "element-type": "122", + "meta-type": "array" + }, + { + "name": "122", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[123]", + "element-type": "123", + "meta-type": "array" + }, + { + "name": "123", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fds", + "type": "[235]" + } + ], + "meta-type": "object" + }, + { + "name": "[124]", + "element-type": "124", + "meta-type": "array" + }, + { + "name": "124", + "members": [ + { + "name": "version", + "type": "int" + }, + { + "name": "emulated", + "type": "bool" + }, + { + "name": "kernel", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[125]", + "element-type": "125", + "meta-type": "array" + }, + { + "name": "125", + "members": [ + { + "name": "type", + "type": "str" + }, + { + "name": "vcpus-count", + "type": "int" + }, + { + "name": "props", + "type": "236" + }, + { + "name": "qom-path", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[126]", + "element-type": "126", + "meta-type": "array" + }, + { + "name": "126", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "thread-id", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "127", + "members": [ + { + "name": "enabled", + "type": "bool" + }, + { + "name": "present", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[128]", + "element-type": "128", + "meta-type": "array" + }, + { + "name": "128", + "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": "[129]", + "element-type": "129", + "meta-type": "array" + }, + { + "name": "129", + "members": [ + { + "name": "size", + "type": "int" + }, + { + "name": "merge", + "type": "bool" + }, + { + "name": "dump", + "type": "bool" + }, + { + "name": "prealloc", + "type": "bool" + }, + { + "name": "host-nodes", + "type": "[int]" + }, + { + "name": "policy", + "type": "237" + } + ], + "meta-type": "object" + }, + { + "name": "[130]", + "element-type": "130", + "meta-type": "array" + }, + { + "name": "130", + "tag": "type", + "variants": [ + { + "case": "dimm", + "type": "239" + } + ], + "members": [ + { + "name": "type", + "type": "238" + } + ], + "meta-type": "object" + }, + { + "name": "[131]", + "element-type": "131", + "meta-type": "array" + }, + { + "name": "131", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "index", + "type": "int" + }, + { + "name": "current", + "type": "bool" + }, + { + "name": "absolute", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "132", + "members": [ + { + "name": "status", + "default": null, + "type": "180" + }, + { + "name": "ram", + "default": null, + "type": "240" + }, + { + "name": "disk", + "default": null, + "type": "240" + }, + { + "name": "xbzrle-cache", + "default": null, + "type": "241" + }, + { + "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": "[133]", + "element-type": "133", + "meta-type": "array" + }, + { + "name": "133", + "members": [ + { + "name": "capability", + "type": "242" + }, + { + "name": "state", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "134", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[135]", + "element-type": "135", + "meta-type": "array" + }, + { + "name": "135", + "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": "193" + }, + { + "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": "243" + }, + { + "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": "244" + }, + { + "name": "write_threshold", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[136]", + "element-type": "136", + "meta-type": "array" + }, + { + "name": "136", + "members": [ + { + "name": "bus", + "type": "int" + }, + { + "name": "devices", + "type": "[245]" + } + ], + "meta-type": "object" + }, + { + "name": "[137]", + "element-type": "137", + "meta-type": "array" + }, + { + "name": "137", + "tag": "meta-type", + "variants": [ + { + "case": "builtin", + "type": "247" + }, + { + "case": "enum", + "type": "248" + }, + { + "case": "array", + "type": "249" + }, + { + "case": "object", + "type": "250" + }, + { + "case": "alternate", + "type": "251" + }, + { + "case": "command", + "type": "252" + }, + { + "case": "event", + "type": "253" + } + ], + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "meta-type", + "type": "246" + } + ], + "meta-type": "object" + }, + { + "name": "138", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "139", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "id", + "type": "int" + }, + { + "name": "ports", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "140", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "tbl-id", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[141]", + "element-type": "141", + "meta-type": "array" + }, + { + "name": "141", + "members": [ + { + "name": "cookie", + "type": "int" + }, + { + "name": "hits", + "type": "int" + }, + { + "name": "key", + "type": "254" + }, + { + "name": "mask", + "type": "255" + }, + { + "name": "action", + "type": "256" + } + ], + "meta-type": "object" + }, + { + "name": "142", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[143]", + "element-type": "143", + "meta-type": "array" + }, + { + "name": "143", + "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": "144", + "members": [ + { + "name": "name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[145]", + "element-type": "145", + "meta-type": "array" + }, + { + "name": "145", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "enabled", + "type": "bool" + }, + { + "name": "link-up", + "type": "bool" + }, + { + "name": "speed", + "type": "int" + }, + { + "name": "duplex", + "type": "257" + }, + { + "name": "autoneg", + "type": "258" + } + ], + "meta-type": "object" + }, + { + "name": "146", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[147]", + "element-type": "147", + "meta-type": "array" + }, + { + "name": "147", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "promiscuous", + "type": "bool" + }, + { + "name": "multicast", + "type": "259" + }, + { + "name": "unicast", + "type": "259" + }, + { + "name": "vlan", + "type": "259" + }, + { + "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": "148", + "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": "260" + }, + { + "name": "channels", + "default": null, + "type": "[184]" + } + ], + "meta-type": "object" + }, + { + "name": "149", + "members": [ + { + "name": "running", + "type": "bool" + }, + { + "name": "singlestep", + "type": "bool" + }, + { + "name": "status", + "type": "261" + } + ], + "meta-type": "object" + }, + { + "name": "150", + "members": [ + { + "name": "arch", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[151]", + "element-type": "151", + "meta-type": "array" + }, + { + "name": "151", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "model", + "type": "152" + }, + { + "name": "options", + "type": "262" + } + ], + "meta-type": "object" + }, + { + "name": "[152]", + "element-type": "152", + "meta-type": "array" + }, + { + "name": "152", + "meta-type": "enum", + "values": [ + "tpm-tis" + ] + }, + { + "name": "[153]", + "element-type": "153", + "meta-type": "array" + }, + { + "name": "153", + "meta-type": "enum", + "values": [ + "passthrough" + ] + }, + { + "name": "154", + "members": [ + { + "name": "UUID", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "155", + "members": [ + { + "name": "qemu", + "type": "263" + }, + { + "name": "package", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "156", + "members": [ + { + "name": "enabled", + "type": "bool" + }, + { + "name": "host", + "default": null, + "type": "str" + }, + { + "name": "family", + "default": null, + "type": "264" + }, + { + "name": "service", + "default": null, + "type": "str" + }, + { + "name": "auth", + "default": null, + "type": "str" + }, + { + "name": "clients", + "default": null, + "type": "[187]" + } + ], + "meta-type": "object" + }, + { + "name": "[157]", + "element-type": "157", + "meta-type": "array" + }, + { + "name": "157", + "members": [ + { + "name": "id", + "type": "str" + }, + { + "name": "server", + "type": "[186]" + }, + { + "name": "clients", + "type": "[187]" + }, + { + "name": "auth", + "type": "265" + }, + { + "name": "vencrypt", + "default": null, + "type": "266" + }, + { + "name": "display", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "158", + "members": [ + { + "name": "fdset-id", + "type": "int" + }, + { + "name": "fd", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "159", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "size", + "type": "int" + }, + { + "name": "format", + "default": null, + "type": "267" + } + ], + "meta-type": "object" + }, + { + "name": "160", + "members": [ + { + "name": "device", + "type": "str" + }, + { + "name": "data", + "type": "str" + }, + { + "name": "format", + "default": null, + "type": "267" + } + ], + "meta-type": "object" + }, + { + "name": "161", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "162", + "members": [ + { + "name": "keys", + "type": "[268]" + }, + { + "name": "hold-time", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "163", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "up", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "164", + "members": [ + { + "name": "protocol", + "type": "str" + }, + { + "name": "password", + "type": "str" + }, + { + "name": "connected", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "165", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "vcpu", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[166]", + "element-type": "166", + "meta-type": "array" + }, + { + "name": "166", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "state", + "type": "269" + }, + { + "name": "vcpu", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "167", + "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": "168", + "members": [ + { + "name": "actions", + "type": "[270]" + }, + { + "name": "properties", + "default": null, + "type": "271" + } + ], + "meta-type": "object" + }, + { + "name": "169", + "members": [ + { + "name": "parent", + "type": "str" + }, + { + "name": "child", + "default": null, + "type": "str" + }, + { + "name": "node", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "170", + "members": [ + { + "name": "node-name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "171", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + }, + { + "name": "node-name", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "172", + "members": [ + { + "name": "device", + "default": null, + "type": "str" + }, + { + "name": "id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "173", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "174", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "175", + "members": [ + { + "name": "enable", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "bool", + "json-type": "boolean", + "meta-type": "builtin" + }, + { + "name": "176", + "meta-type": "enum", + "values": [ + "read", + "write" + ] + }, + { + "name": "177", + "meta-type": "enum", + "values": [ + "ignore", + "report", + "stop" + ] + }, + { + "name": "178", + "meta-type": "enum", + "values": [ + "commit", + "stream", + "mirror", + "backup" + ] + }, + { + "name": "179", + "meta-type": "enum", + "values": [ + "pause", + "poweroff" + ] + }, + { + "name": "180", + "meta-type": "enum", + "values": [ + "none", + "setup", + "cancelling", + "cancelled", + "active", + "postcopy-active", + "completed", + "failed", + "colo" + ] + }, + { + "name": "181", + "meta-type": "enum", + "values": [ + "read", + "write", + "flush" + ] + }, + { + "name": "182", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "264" + } + ], + "meta-type": "object" + }, + { + "name": "183", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "auth", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "184", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "connection-id", + "type": "int" + }, + { + "name": "channel-type", + "type": "int" + }, + { + "name": "channel-id", + "type": "int" + }, + { + "name": "tls", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "185", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "websocket", + "type": "bool" + }, + { + "name": "auth", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "186", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "websocket", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "187", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "service", + "type": "str" + }, + { + "name": "family", + "type": "264" + }, + { + "name": "websocket", + "type": "bool" + }, + { + "name": "x509_dname", + "default": null, + "type": "str" + }, + { + "name": "sasl_username", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "188", + "meta-type": "enum", + "values": [ + "reset", + "shutdown", + "poweroff", + "pause", + "debug", + "none", + "inject-nmi" + ] + }, + { + "name": "189", + "meta-type": "enum", + "values": [ + "report", + "ignore", + "enospc", + "stop", + "auto" + ] + }, + { + "name": "190", + "meta-type": "enum", + "values": [ + "archipelago", + "blkdebug", + "blkverify", + "bochs", + "cloop", + "dmg", + "file", + "ftp", + "ftps", + "gluster", + "host_cdrom", + "host_device", + "http", + "https", + "luks", + "nbd", + "nfs", + "null-aio", + "null-co", + "parallels", + "qcow", + "qcow2", + "qed", + "quorum", + "raw", + "replication", + "ssh", + "vdi", + "vhdx", + "vmdk", + "vpc", + "vvfat" + ] + }, + { + "name": "191", + "meta-type": "enum", + "values": [ + "ignore", + "unmap" + ] + }, + { + "name": "192", + "members": [ + { + "name": "direct", + "default": null, + "type": "bool" + }, + { + "name": "no-flush", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "193", + "meta-type": "enum", + "values": [ + "off", + "on", + "unmap" + ] + }, + { + "name": "194", + "members": [ + { + "name": "volume", + "type": "str" + }, + { + "name": "mport", + "default": null, + "type": "int" + }, + { + "name": "vport", + "default": null, + "type": "int" + }, + { + "name": "segment", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "195", + "members": [ + { + "name": "image", + "type": "272" + }, + { + "name": "config", + "default": null, + "type": "str" + }, + { + "name": "align", + "default": null, + "type": "int" + }, + { + "name": "inject-error", + "default": null, + "type": "[273]" + }, + { + "name": "set-state", + "default": null, + "type": "[274]" + } + ], + "meta-type": "object" + }, + { + "name": "196", + "members": [ + { + "name": "test", + "type": "272" + }, + { + "name": "raw", + "type": "272" + } + ], + "meta-type": "object" + }, + { + "name": "197", + "members": [ + { + "name": "file", + "type": "272" + } + ], + "meta-type": "object" + }, + { + "name": "198", + "members": [ + { + "name": "filename", + "type": "str" + }, + { + "name": "aio", + "default": null, + "type": "275" + } + ], + "meta-type": "object" + }, + { + "name": "199", + "members": [ + { + "name": "filename", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "200", + "members": [ + { + "name": "volume", + "type": "str" + }, + { + "name": "path", + "type": "str" + }, + { + "name": "server", + "type": "[276]" + }, + { + "name": "debug-level", + "default": null, + "type": "int" + }, + { + "name": "logfile", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "201", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "key-secret", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "202", + "members": [ + { + "name": "server", + "type": "218" + }, + { + "name": "export", + "default": null, + "type": "str" + }, + { + "name": "tls-creds", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "203", + "members": [ + { + "name": "server", + "type": "277" + }, + { + "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-level", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "204", + "members": [ + { + "name": "size", + "default": null, + "type": "int" + }, + { + "name": "latency-ns", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "205", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "backing", + "default": null, + "type": "272" + }, + { + "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": "278" + }, + { + "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" + } + ], + "meta-type": "object" + }, + { + "name": "206", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "backing", + "default": null, + "type": "272" + } + ], + "meta-type": "object" + }, + { + "name": "207", + "members": [ + { + "name": "blkverify", + "default": null, + "type": "bool" + }, + { + "name": "children", + "type": "[272]" + }, + { + "name": "vote-threshold", + "type": "int" + }, + { + "name": "rewrite-corrupted", + "default": null, + "type": "bool" + }, + { + "name": "read-pattern", + "default": null, + "type": "279" + } + ], + "meta-type": "object" + }, + { + "name": "208", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "offset", + "default": null, + "type": "int" + }, + { + "name": "size", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "209", + "members": [ + { + "name": "file", + "type": "272" + }, + { + "name": "mode", + "type": "280" + }, + { + "name": "top-id", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "210", + "members": [ + { + "name": "server", + "type": "281" + }, + { + "name": "path", + "type": "str" + }, + { + "name": "user", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "211", + "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": "212", + "meta-type": "enum", + "values": [ + "top", + "full", + "none", + "incremental" + ] + }, + { + "name": "213", + "meta-type": "enum", + "values": [ + "retain", + "read-only", + "read-write" + ] + }, + { + "name": "214", + "meta-type": "enum", + "values": [ + "existing", + "absolute-paths" + ] + }, + { + "name": "215", + "tag": "type", + "variants": [ + { + "case": "file", + "type": "283" + }, + { + "case": "serial", + "type": "284" + }, + { + "case": "parallel", + "type": "284" + }, + { + "case": "pipe", + "type": "284" + }, + { + "case": "socket", + "type": "285" + }, + { + "case": "udp", + "type": "286" + }, + { + "case": "pty", + "type": "287" + }, + { + "case": "null", + "type": "287" + }, + { + "case": "mux", + "type": "288" + }, + { + "case": "msmouse", + "type": "287" + }, + { + "case": "braille", + "type": "287" + }, + { + "case": "testdev", + "type": "287" + }, + { + "case": "stdio", + "type": "289" + }, + { + "case": "console", + "type": "287" + }, + { + "case": "spicevmc", + "type": "290" + }, + { + "case": "spiceport", + "type": "291" + }, + { + "case": "vc", + "type": "292" + }, + { + "case": "ringbuf", + "type": "293" + }, + { + "case": "memory", + "type": "293" + } + ], + "members": [ + { + "name": "type", + "type": "282" + } + ], + "meta-type": "object" + }, + { + "name": "216", + "meta-type": "enum", + "values": [ + "elf", + "kdump-zlib", + "kdump-lzo", + "kdump-snappy" + ] + }, + { + "name": "[217]", + "element-type": "217", + "meta-type": "array" + }, + { + "name": "217", + "tag": "type", + "variants": [ + { + "case": "key", + "type": "295" + }, + { + "case": "btn", + "type": "296" + }, + { + "case": "rel", + "type": "297" + }, + { + "case": "abs", + "type": "297" + } + ], + "members": [ + { + "name": "type", + "type": "294" + } + ], + "meta-type": "object" + }, + { + "name": "number", + "json-type": "number", + "meta-type": "builtin" + }, + { + "name": "218", + "tag": "type", + "variants": [ + { + "case": "inet", + "type": "299" + }, + { + "case": "unix", + "type": "300" + }, + { + "case": "vsock", + "type": "301" + }, + { + "case": "fd", + "type": "302" + } + ], + "members": [ + { + "name": "type", + "type": "298" + } + ], + "meta-type": "object" + }, + { + "name": "219", + "meta-type": "enum", + "values": [ + "DIMM", + "CPU" + ] + }, + { + "name": "220", + "meta-type": "enum", + "values": [ + "ok", + "failed", + "nospace" + ] + }, + { + "name": "[221]", + "element-type": "221", + "meta-type": "array" + }, + { + "name": "221", + "members": [ + { + "name": "name", + "default": null, + "type": "str" + }, + { + "name": "count", + "type": "int" + }, + { + "name": "granularity", + "type": "int" + }, + { + "name": "status", + "type": "303" + } + ], + "meta-type": "object" + }, + { + "name": "222", + "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": "[304]" + } + ], + "meta-type": "object" + }, + { + "name": "[223]", + "element-type": "223", + "meta-type": "array" + }, + { + "name": "223", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "305" + }, + { + "name": "help", + "default": null, + "type": "str" + }, + { + "name": "default", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[str]", + "element-type": "str", + "meta-type": "array" + }, + { + "name": "224", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "props", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "225", + "meta-type": "enum", + "values": [ + "incompatible", + "identical", + "superset", + "subset" + ] + }, + { + "name": "226", + "meta-type": "enum", + "values": [ + "static", + "full" + ] + }, + { + "name": "227", + "meta-type": "enum", + "values": [ + "x86", + "sparc", + "ppc", + "mips", + "tricore", + "other" + ] + }, + { + "name": "228", + "members": [ + { + "name": "pc", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "229", + "members": [ + { + "name": "pc", + "type": "int" + }, + { + "name": "npc", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "230", + "members": [ + { + "name": "nip", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "231", + "members": [ + { + "name": "PC", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "232", + "members": [ + { + "name": "PC", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "233", + "members": [ + ], + "meta-type": "object" + }, + { + "name": "234", + "meta-type": "enum", + "values": [ + "none", + "active", + "completed", + "failed" + ] + }, + { + "name": "[216]", + "element-type": "216", + "meta-type": "array" + }, + { + "name": "[235]", + "element-type": "235", + "meta-type": "array" + }, + { + "name": "235", + "members": [ + { + "name": "fd", + "type": "int" + }, + { + "name": "opaque", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "236", + "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": "[int]", + "element-type": "int", + "meta-type": "array" + }, + { + "name": "237", + "meta-type": "enum", + "values": [ + "default", + "preferred", + "bind", + "interleave" + ] + }, + { + "name": "238", + "meta-type": "enum", + "values": [ + "dimm" + ] + }, + { + "name": "239", + "members": [ + { + "name": "data", + "type": "306" + } + ], + "meta-type": "object" + }, + { + "name": "240", + "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" + } + ], + "meta-type": "object" + }, + { + "name": "241", + "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": "242", + "meta-type": "enum", + "values": [ + "xbzrle", + "rdma-pin-all", + "auto-converge", + "zero-blocks", + "compress", + "events", + "postcopy-ram", + "x-colo" + ] + }, + { + "name": "243", + "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": "[54]" + }, + { + "name": "backing-image", + "default": null, + "type": "243" + }, + { + "name": "format-specific", + "default": null, + "type": "307" + } + ], + "meta-type": "object" + }, + { + "name": "244", + "members": [ + { + "name": "writeback", + "type": "bool" + }, + { + "name": "direct", + "type": "bool" + }, + { + "name": "no-flush", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "[245]", + "element-type": "245", + "meta-type": "array" + }, + { + "name": "245", + "members": [ + { + "name": "bus", + "type": "int" + }, + { + "name": "slot", + "type": "int" + }, + { + "name": "function", + "type": "int" + }, + { + "name": "class_info", + "type": "308" + }, + { + "name": "id", + "type": "309" + }, + { + "name": "irq", + "default": null, + "type": "int" + }, + { + "name": "qdev_id", + "type": "str" + }, + { + "name": "pci_bridge", + "default": null, + "type": "310" + }, + { + "name": "regions", + "type": "[311]" + } + ], + "meta-type": "object" + }, + { + "name": "246", + "meta-type": "enum", + "values": [ + "builtin", + "enum", + "array", + "object", + "alternate", + "command", + "event" + ] + }, + { + "name": "247", + "members": [ + { + "name": "json-type", + "type": "312" + } + ], + "meta-type": "object" + }, + { + "name": "248", + "members": [ + { + "name": "values", + "type": "[str]" + } + ], + "meta-type": "object" + }, + { + "name": "249", + "members": [ + { + "name": "element-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "250", + "members": [ + { + "name": "members", + "type": "[313]" + }, + { + "name": "tag", + "default": null, + "type": "str" + }, + { + "name": "variants", + "default": null, + "type": "[314]" + } + ], + "meta-type": "object" + }, + { + "name": "251", + "members": [ + { + "name": "members", + "type": "[315]" + } + ], + "meta-type": "object" + }, + { + "name": "252", + "members": [ + { + "name": "arg-type", + "type": "str" + }, + { + "name": "ret-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "253", + "members": [ + { + "name": "arg-type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "254", + "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": "255", + "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": "256", + "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": "257", + "meta-type": "enum", + "values": [ + "half", + "full" + ] + }, + { + "name": "258", + "meta-type": "enum", + "values": [ + "off", + "on" + ] + }, + { + "name": "259", + "meta-type": "enum", + "values": [ + "normal", + "none", + "all" + ] + }, + { + "name": "260", + "meta-type": "enum", + "values": [ + "client", + "server", + "unknown" + ] + }, + { + "name": "[184]", + "element-type": "184", + "meta-type": "array" + }, + { + "name": "261", + "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": "262", + "tag": "type", + "variants": [ + { + "case": "passthrough", + "type": "317" + } + ], + "members": [ + { + "name": "type", + "type": "316" + } + ], + "meta-type": "object" + }, + { + "name": "263", + "members": [ + { + "name": "major", + "type": "int" + }, + { + "name": "minor", + "type": "int" + }, + { + "name": "micro", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "264", + "meta-type": "enum", + "values": [ + "ipv4", + "ipv6", + "unix", + "vsock", + "unknown" + ] + }, + { + "name": "[187]", + "element-type": "187", + "meta-type": "array" + }, + { + "name": "[186]", + "element-type": "186", + "meta-type": "array" + }, + { + "name": "265", + "meta-type": "enum", + "values": [ + "none", + "vnc", + "ra2", + "ra2ne", + "tight", + "ultra", + "tls", + "vencrypt", + "sasl" + ] + }, + { + "name": "266", + "meta-type": "enum", + "values": [ + "plain", + "tls-none", + "x509-none", + "tls-vnc", + "x509-vnc", + "tls-plain", + "x509-plain", + "tls-sasl", + "x509-sasl" + ] + }, + { + "name": "267", + "meta-type": "enum", + "values": [ + "utf8", + "base64" + ] + }, + { + "name": "[268]", + "element-type": "268", + "meta-type": "array" + }, + { + "name": "268", + "tag": "type", + "variants": [ + { + "case": "number", + "type": "319" + }, + { + "case": "qcode", + "type": "320" + } + ], + "members": [ + { + "name": "type", + "type": "318" + } + ], + "meta-type": "object" + }, + { + "name": "269", + "meta-type": "enum", + "values": [ + "unavailable", + "disabled", + "enabled" + ] + }, + { + "name": "[270]", + "element-type": "270", + "meta-type": "array" + }, + { + "name": "270", + "tag": "type", + "variants": [ + { + "case": "blockdev-snapshot", + "type": "322" + }, + { + "case": "blockdev-snapshot-sync", + "type": "323" + }, + { + "case": "drive-backup", + "type": "324" + }, + { + "case": "blockdev-backup", + "type": "325" + }, + { + "case": "abort", + "type": "326" + }, + { + "case": "blockdev-snapshot-internal-sync", + "type": "327" + }, + { + "case": "block-dirty-bitmap-add", + "type": "328" + }, + { + "case": "block-dirty-bitmap-clear", + "type": "329" + } + ], + "members": [ + { + "name": "type", + "type": "321" + } + ], + "meta-type": "object" + }, + { + "name": "271", + "members": [ + { + "name": "completion-mode", + "default": null, + "type": "330" + } + ], + "meta-type": "object" + }, + { + "name": "272", + "members": [ + { + "type": "46" + }, + { + "type": "str" + } + ], + "meta-type": "alternate" + }, + { + "name": "[273]", + "element-type": "273", + "meta-type": "array" + }, + { + "name": "273", + "members": [ + { + "name": "event", + "type": "331" + }, + { + "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": "[274]", + "element-type": "274", + "meta-type": "array" + }, + { + "name": "274", + "members": [ + { + "name": "event", + "type": "331" + }, + { + "name": "state", + "default": null, + "type": "int" + }, + { + "name": "new_state", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "275", + "meta-type": "enum", + "values": [ + "threads", + "native" + ] + }, + { + "name": "[276]", + "element-type": "276", + "meta-type": "array" + }, + { + "name": "276", + "tag": "type", + "variants": [ + { + "case": "unix", + "type": "333" + }, + { + "case": "tcp", + "type": "281" + } + ], + "members": [ + { + "name": "type", + "type": "332" + } + ], + "meta-type": "object" + }, + { + "name": "277", + "members": [ + { + "name": "type", + "type": "334" + }, + { + "name": "host", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "278", + "members": [ + { + "type": "335" + }, + { + "type": "336" + } + ], + "meta-type": "alternate" + }, + { + "name": "[272]", + "element-type": "272", + "meta-type": "array" + }, + { + "name": "279", + "meta-type": "enum", + "values": [ + "quorum", + "fifo" + ] + }, + { + "name": "280", + "meta-type": "enum", + "values": [ + "primary", + "secondary" + ] + }, + { + "name": "281", + "members": [ + { + "name": "host", + "type": "str" + }, + { + "name": "port", + "type": "str" + }, + { + "name": "to", + "default": null, + "type": "int" + }, + { + "name": "ipv4", + "default": null, + "type": "bool" + }, + { + "name": "ipv6", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "282", + "meta-type": "enum", + "values": [ + "file", + "serial", + "parallel", + "pipe", + "socket", + "udp", + "pty", + "null", + "mux", + "msmouse", + "braille", + "testdev", + "stdio", + "console", + "spicevmc", + "spiceport", + "vc", + "ringbuf", + "memory" + ] + }, + { + "name": "283", + "members": [ + { + "name": "data", + "type": "337" + } + ], + "meta-type": "object" + }, + { + "name": "284", + "members": [ + { + "name": "data", + "type": "338" + } + ], + "meta-type": "object" + }, + { + "name": "285", + "members": [ + { + "name": "data", + "type": "339" + } + ], + "meta-type": "object" + }, + { + "name": "286", + "members": [ + { + "name": "data", + "type": "340" + } + ], + "meta-type": "object" + }, + { + "name": "287", + "members": [ + { + "name": "data", + "type": "341" + } + ], + "meta-type": "object" + }, + { + "name": "288", + "members": [ + { + "name": "data", + "type": "342" + } + ], + "meta-type": "object" + }, + { + "name": "289", + "members": [ + { + "name": "data", + "type": "343" + } + ], + "meta-type": "object" + }, + { + "name": "290", + "members": [ + { + "name": "data", + "type": "344" + } + ], + "meta-type": "object" + }, + { + "name": "291", + "members": [ + { + "name": "data", + "type": "345" + } + ], + "meta-type": "object" + }, + { + "name": "292", + "members": [ + { + "name": "data", + "type": "346" + } + ], + "meta-type": "object" + }, + { + "name": "293", + "members": [ + { + "name": "data", + "type": "347" + } + ], + "meta-type": "object" + }, + { + "name": "294", + "meta-type": "enum", + "values": [ + "key", + "btn", + "rel", + "abs" + ] + }, + { + "name": "295", + "members": [ + { + "name": "data", + "type": "348" + } + ], + "meta-type": "object" + }, + { + "name": "296", + "members": [ + { + "name": "data", + "type": "349" + } + ], + "meta-type": "object" + }, + { + "name": "297", + "members": [ + { + "name": "data", + "type": "350" + } + ], + "meta-type": "object" + }, + { + "name": "298", + "meta-type": "enum", + "values": [ + "inet", + "unix", + "vsock", + "fd" + ] + }, + { + "name": "299", + "members": [ + { + "name": "data", + "type": "281" + } + ], + "meta-type": "object" + }, + { + "name": "300", + "members": [ + { + "name": "data", + "type": "333" + } + ], + "meta-type": "object" + }, + { + "name": "301", + "members": [ + { + "name": "data", + "type": "351" + } + ], + "meta-type": "object" + }, + { + "name": "302", + "members": [ + { + "name": "data", + "type": "352" + } + ], + "meta-type": "object" + }, + { + "name": "303", + "meta-type": "enum", + "values": [ + "active", + "disabled", + "frozen" + ] + }, + { + "name": "[304]", + "element-type": "304", + "meta-type": "array" + }, + { + "name": "304", + "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": "305", + "meta-type": "enum", + "values": [ + "string", + "boolean", + "number", + "size" + ] + }, + { + "name": "306", + "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": "[54]", + "element-type": "54", + "meta-type": "array" + }, + { + "name": "307", + "tag": "type", + "variants": [ + { + "case": "qcow2", + "type": "354" + }, + { + "case": "vmdk", + "type": "355" + }, + { + "case": "luks", + "type": "356" + } + ], + "members": [ + { + "name": "type", + "type": "353" + } + ], + "meta-type": "object" + }, + { + "name": "308", + "members": [ + { + "name": "desc", + "default": null, + "type": "str" + }, + { + "name": "class", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "309", + "members": [ + { + "name": "device", + "type": "int" + }, + { + "name": "vendor", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "310", + "members": [ + { + "name": "bus", + "type": "357" + }, + { + "name": "devices", + "default": null, + "type": "[245]" + } + ], + "meta-type": "object" + }, + { + "name": "[311]", + "element-type": "311", + "meta-type": "array" + }, + { + "name": "311", + "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": "312", + "meta-type": "enum", + "values": [ + "string", + "number", + "int", + "boolean", + "null", + "object", + "array", + "value" + ] + }, + { + "name": "[313]", + "element-type": "313", + "meta-type": "array" + }, + { + "name": "313", + "members": [ + { + "name": "name", + "type": "str" + }, + { + "name": "type", + "type": "str" + }, + { + "name": "default", + "default": null, + "type": "any" + } + ], + "meta-type": "object" + }, + { + "name": "[314]", + "element-type": "314", + "meta-type": "array" + }, + { + "name": "314", + "members": [ + { + "name": "case", + "type": "str" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "[315]", + "element-type": "315", + "meta-type": "array" + }, + { + "name": "315", + "members": [ + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "316", + "meta-type": "enum", + "values": [ + "passthrough" + ] + }, + { + "name": "317", + "members": [ + { + "name": "data", + "type": "358" + } + ], + "meta-type": "object" + }, + { + "name": "318", + "meta-type": "enum", + "values": [ + "number", + "qcode" + ] + }, + { + "name": "319", + "members": [ + { + "name": "data", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "320", + "members": [ + { + "name": "data", + "type": "359" + } + ], + "meta-type": "object" + }, + { + "name": "321", + "meta-type": "enum", + "values": [ + "blockdev-snapshot", + "blockdev-snapshot-sync", + "drive-backup", + "blockdev-backup", + "abort", + "blockdev-snapshot-internal-sync", + "block-dirty-bitmap-add", + "block-dirty-bitmap-clear" + ] + }, + { + "name": "322", + "members": [ + { + "name": "data", + "type": "52" + } + ], + "meta-type": "object" + }, + { + "name": "323", + "members": [ + { + "name": "data", + "type": "56" + } + ], + "meta-type": "object" + }, + { + "name": "324", + "members": [ + { + "name": "data", + "type": "71" + } + ], + "meta-type": "object" + }, + { + "name": "325", + "members": [ + { + "name": "data", + "type": "47" + } + ], + "meta-type": "object" + }, + { + "name": "326", + "members": [ + { + "name": "data", + "type": "360" + } + ], + "meta-type": "object" + }, + { + "name": "327", + "members": [ + { + "name": "data", + "type": "55" + } + ], + "meta-type": "object" + }, + { + "name": "328", + "members": [ + { + "name": "data", + "type": "34" + } + ], + "meta-type": "object" + }, + { + "name": "329", + "members": [ + { + "name": "data", + "type": "35" + } + ], + "meta-type": "object" + }, + { + "name": "330", + "meta-type": "enum", + "values": [ + "individual", + "grouped" + ] + }, + { + "name": "331", + "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": "332", + "meta-type": "enum", + "values": [ + "unix", + "tcp" + ] + }, + { + "name": "333", + "members": [ + { + "name": "path", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "334", + "meta-type": "enum", + "values": [ + "inet" + ] + }, + { + "name": "335", + "members": [ + { + "name": "template", + "default": null, + "type": "336" + }, + { + "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": "336", + "meta-type": "enum", + "values": [ + "none", + "constant", + "cached", + "all" + ] + }, + { + "name": "337", + "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": "338", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "device", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "339", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "addr", + "type": "218" + }, + { + "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": "reconnect", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "340", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "remote", + "type": "218" + }, + { + "name": "local", + "default": null, + "type": "218" + } + ], + "meta-type": "object" + }, + { + "name": "341", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "342", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "chardev", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "343", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "signal", + "default": null, + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "344", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "type", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "345", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "fqdn", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "346", + "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": "347", + "members": [ + { + "name": "logfile", + "default": null, + "type": "str" + }, + { + "name": "logappend", + "default": null, + "type": "bool" + }, + { + "name": "size", + "default": null, + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "348", + "members": [ + { + "name": "key", + "type": "268" + }, + { + "name": "down", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "349", + "members": [ + { + "name": "button", + "type": "361" + }, + { + "name": "down", + "type": "bool" + } + ], + "meta-type": "object" + }, + { + "name": "350", + "members": [ + { + "name": "axis", + "type": "362" + }, + { + "name": "value", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "351", + "members": [ + { + "name": "cid", + "type": "str" + }, + { + "name": "port", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "352", + "members": [ + { + "name": "str", + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "353", + "meta-type": "enum", + "values": [ + "qcow2", + "vmdk", + "luks" + ] + }, + { + "name": "354", + "members": [ + { + "name": "data", + "type": "363" + } + ], + "meta-type": "object" + }, + { + "name": "355", + "members": [ + { + "name": "data", + "type": "364" + } + ], + "meta-type": "object" + }, + { + "name": "356", + "members": [ + { + "name": "data", + "type": "365" + } + ], + "meta-type": "object" + }, + { + "name": "357", + "members": [ + { + "name": "number", + "type": "int" + }, + { + "name": "secondary", + "type": "int" + }, + { + "name": "subordinate", + "type": "int" + }, + { + "name": "io_range", + "type": "366" + }, + { + "name": "memory_range", + "type": "366" + }, + { + "name": "prefetchable_range", + "type": "366" + } + ], + "meta-type": "object" + }, + { + "name": "358", + "members": [ + { + "name": "path", + "default": null, + "type": "str" + }, + { + "name": "cancel-path", + "default": null, + "type": "str" + } + ], + "meta-type": "object" + }, + { + "name": "359", + "meta-type": "enum", + "values": [ + "unmapped", + "shift", + "shift_r", + "alt", + "alt_r", + "altgr", + "altgr_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", + "kp_comma", + "kp_equals", + "power" + ] + }, + { + "name": "360", + "members": [ + ], + "meta-type": "object" + }, + { + "name": "361", + "meta-type": "enum", + "values": [ + "left", + "middle", + "right", + "wheel-up", + "wheel-down" + ] + }, + { + "name": "362", + "meta-type": "enum", + "values": [ + "x", + "y" + ] + }, + { + "name": "363", + "members": [ + { + "name": "compat", + "type": "str" + }, + { + "name": "lazy-refcounts", + "default": null, + "type": "bool" + }, + { + "name": "corrupt", + "default": null, + "type": "bool" + }, + { + "name": "refcount-bits", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "364", + "members": [ + { + "name": "create-type", + "type": "str" + }, + { + "name": "cid", + "type": "int" + }, + { + "name": "parent-cid", + "type": "int" + }, + { + "name": "extents", + "type": "[243]" + } + ], + "meta-type": "object" + }, + { + "name": "365", + "members": [ + { + "name": "cipher-alg", + "type": "367" + }, + { + "name": "cipher-mode", + "type": "368" + }, + { + "name": "ivgen-alg", + "type": "369" + }, + { + "name": "ivgen-hash-alg", + "default": null, + "type": "370" + }, + { + "name": "hash-alg", + "type": "370" + }, + { + "name": "payload-offset", + "type": "int" + }, + { + "name": "master-key-iters", + "type": "int" + }, + { + "name": "uuid", + "type": "str" + }, + { + "name": "slots", + "type": "[371]" + } + ], + "meta-type": "object" + }, + { + "name": "366", + "members": [ + { + "name": "base", + "type": "int" + }, + { + "name": "limit", + "type": "int" + } + ], + "meta-type": "object" + }, + { + "name": "[243]", + "element-type": "243", + "meta-type": "array" + }, + { + "name": "367", + "meta-type": "enum", + "values": [ + "aes-128", + "aes-192", + "aes-256", + "des-rfb", + "cast5-128", + "serpent-128", + "serpent-192", + "serpent-256", + "twofish-128", + "twofish-192", + "twofish-256" + ] + }, + { + "name": "368", + "meta-type": "enum", + "values": [ + "ecb", + "cbc", + "xts", + "ctr" + ] + }, + { + "name": "369", + "meta-type": "enum", + "values": [ + "plain", + "plain64", + "essiv" + ] + }, + { + "name": "370", + "meta-type": "enum", + "values": [ + "md5", + "sha1", + "sha224", + "sha256", + "sha384", + "sha512", + "ripemd160" + ] + }, + { + "name": "[371]", + "element-type": "371", + "meta-type": "array" + }, + { + "name": "371", + "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" + } + ], + "id": "libvirt-47" +} + +{ + "return": { + }, + "id": "libvirt-1" +} + +{ + "return": [ + { + "name": "host", + "unavailable-features": [ + "kvm" + ], + "static": false + }, + { + "name": "qemu64", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "qemu32", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "phenom", + "unavailable-features": [ + "fxsr-opt", + "npt" + ], + "static": false + }, + { + "name": "pentium3", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "pentium2", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "pentium", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "n270", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "kvm64", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "kvm32", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "coreduo", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "core2duo", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "athlon", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Westmere", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Skylake-Client", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm", + "rdseed", + "3dnowprefetch", + "xsavec" + ], + "static": false + }, + { + "name": "SandyBridge", + "unavailable-features": [ + "x2apic", + "tsc-deadline", + "avx" + ], + "static": false + }, + { + "name": "Penryn", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Opteron_G5", + "unavailable-features": [ + "fma", + "avx", + "f16c", + "misalignsse", + "3dnowprefetch", + "xop", + "fma4", + "tbm" + ], + "static": false + }, + { + "name": "Opteron_G4", + "unavailable-features": [ + "avx", + "misalignsse", + "3dnowprefetch", + "xop", + "fma4" + ], + "static": false + }, + { + "name": "Opteron_G3", + "unavailable-features": [ + "misalignsse" + ], + "static": false + }, + { + "name": "Opteron_G2", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Opteron_G1", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Nehalem", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "IvyBridge", + "unavailable-features": [ + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand" + ], + "static": false + }, + { + "name": "Haswell", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm" + ], + "static": false + }, + { + "name": "Haswell-noTSX", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "avx2", + "invpcid" + ], + "static": false + }, + { + "name": "Conroe", + "unavailable-features": [ + ], + "static": false + }, + { + "name": "Broadwell", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "hle", + "avx2", + "invpcid", + "rtm", + "rdseed", + "3dnowprefetch" + ], + "static": false + }, + { + "name": "Broadwell-noTSX", + "unavailable-features": [ + "fma", + "pcid", + "x2apic", + "tsc-deadline", + "avx", + "f16c", + "rdrand", + "avx2", + "invpcid", + "rdseed", + "3dnowprefetch" + ], + "static": false + }, + { + "name": "486", + "unavailable-features": [ + ], + "static": false + } + ], + "id": "libvirt-2" +} diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml new file mode 100644 index 0000000..d5f0ab9 --- /dev/null +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -0,0 +1,293 @@ +<qemuCaps> + <qemuctime>0</qemuctime> + <selfctime>0</selfctime> + <selfvers>0</selfvers> + <usedQMP/> + <flag name='kvm'/> + <flag name='mem-path'/> + <flag name='drive-serial'/> + <flag name='chardev'/> + <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-multibus'/> + <flag name='pci-bootindex'/> + <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='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'/> + <version>2007090</version> + <kvmVersion>0</kvmVersion> + <package> (v2.8.0-rc0-dirty)</package> + <arch>x86_64</arch> + <cpu type='kvm' name='host'/> + <cpu type='kvm' name='qemu64'/> + <cpu type='kvm' name='qemu32'/> + <cpu type='kvm' name='phenom'/> + <cpu type='kvm' name='pentium3'/> + <cpu type='kvm' name='pentium2'/> + <cpu type='kvm' name='pentium'/> + <cpu type='kvm' name='n270'/> + <cpu type='kvm' name='kvm64'/> + <cpu type='kvm' name='kvm32'/> + <cpu type='kvm' name='coreduo'/> + <cpu type='kvm' name='core2duo'/> + <cpu type='kvm' name='athlon'/> + <cpu type='kvm' name='Westmere'/> + <cpu type='kvm' name='Skylake-Client'/> + <cpu type='kvm' name='SandyBridge'/> + <cpu type='kvm' name='Penryn'/> + <cpu type='kvm' name='Opteron_G5'/> + <cpu type='kvm' name='Opteron_G4'/> + <cpu type='kvm' name='Opteron_G3'/> + <cpu type='kvm' name='Opteron_G2'/> + <cpu type='kvm' name='Opteron_G1'/> + <cpu type='kvm' name='Nehalem'/> + <cpu type='kvm' name='IvyBridge'/> + <cpu type='kvm' name='Haswell'/> + <cpu type='kvm' name='Haswell-noTSX'/> + <cpu type='kvm' name='Conroe'/> + <cpu type='kvm' name='Broadwell'/> + <cpu type='kvm' name='Broadwell-noTSX'/> + <cpu type='kvm' name='486'/> + <cpu type='tcg' name='host'/> + <cpu type='tcg' name='qemu64'/> + <cpu type='tcg' name='qemu32'/> + <cpu type='tcg' name='phenom'/> + <cpu type='tcg' name='pentium3'/> + <cpu type='tcg' name='pentium2'/> + <cpu type='tcg' name='pentium'/> + <cpu type='tcg' name='n270'/> + <cpu type='tcg' name='kvm64'/> + <cpu type='tcg' name='kvm32'/> + <cpu type='tcg' name='coreduo'/> + <cpu type='tcg' name='core2duo'/> + <cpu type='tcg' name='athlon'/> + <cpu type='tcg' name='Westmere'/> + <cpu type='tcg' name='Skylake-Client'/> + <cpu type='tcg' name='SandyBridge'/> + <cpu type='tcg' name='Penryn'/> + <cpu type='tcg' name='Opteron_G5'/> + <cpu type='tcg' name='Opteron_G4'/> + <cpu type='tcg' name='Opteron_G3'/> + <cpu type='tcg' name='Opteron_G2'/> + <cpu type='tcg' name='Opteron_G1'/> + <cpu type='tcg' name='Nehalem'/> + <cpu type='tcg' name='IvyBridge'/> + <cpu type='tcg' name='Haswell'/> + <cpu type='tcg' name='Haswell-noTSX'/> + <cpu type='tcg' name='Conroe'/> + <cpu type='tcg' name='Broadwell'/> + <cpu type='tcg' name='Broadwell-noTSX'/> + <cpu type='tcg' name='486'/> + <machine name='pc-i440fx-2.8' 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-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-1.1' hotplugCpus='yes' maxCpus='255'/> + <machine name='pc-i440fx-2.1' hotplugCpus='yes' maxCpus='255'/> + <machine name='pc-q35-2.8' alias='q35' 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-0.13' hotplugCpus='yes' maxCpus='255'/> +</qemuCaps> diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c index fe41fc4..51d0cc4 100644 --- a/tests/qemucapabilitiestest.c +++ b/tests/qemucapabilitiestest.c @@ -168,6 +168,7 @@ mymain(void) DO_TEST("x86_64", "caps_2.5.0"); DO_TEST("x86_64", "caps_2.6.0"); DO_TEST("x86_64", "caps_2.7.0"); + DO_TEST("x86_64", "caps_2.8.0"); DO_TEST("aarch64", "caps_2.6.0-gicv2"); DO_TEST("aarch64", "caps_2.6.0-gicv3"); DO_TEST("ppc64le", "caps_2.6.0");

On Mon, Nov 28, 2016 at 07:22:28 -0500, John Ferlan wrote:
On 11/20/2016 06:21 PM, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../qemucapabilitiesdata/caps_2.8.0.x86_64.replies | 14246 +++++++++++++++++++ tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 293 + tests/qemucapabilitiestest.c | 1 + 3 files changed, 14540 insertions(+) create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
From an sdiff the caps_2.8.0.x86_64.xml is missing a few from 2.7:
ccid-emulated ccid-passthru spice-gl gluster.debug_level
That's just a result of differently configured QEMU or installed dependencies. It's really harmless. But once QEMU 2.8.0 is out, we can refresh the capabilities with the ones from Pavel's QEMU farm for consistent replies. Jirka

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 116 +++++++++++++++++++++ tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 116 +++++++++++++++++++++ tests/domaincapstest.c | 8 ++ 3 files changed, 240 insertions(+) create mode 100644 tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml create mode 100644 tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml diff --git a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml new file mode 100644 index 0000000..fe598e9 --- /dev/null +++ b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml @@ -0,0 +1,116 @@ +<domainCapabilities> + <path>/usr/bin/qemu-system-x86_64</path> + <domain>qemu</domain> + <machine>pc-i440fx-2.8</machine> + <arch>x86_64</arch> + <vcpu max='255'/> + <os supported='yes'> + <loader supported='yes'> + <value>/usr/share/AAVMF/AAVMF_CODE.fd</value> + <value>/usr/share/OVMF/OVMF_CODE.fd</value> + <enum name='type'> + <value>rom</value> + <value>pflash</value> + </enum> + <enum name='readonly'> + <value>yes</value> + <value>no</value> + </enum> + </loader> + </os> + <cpu> + <mode name='host-passthrough' supported='no'/> + <mode name='host-model' supported='yes'> + <model fallback='allow'>Broadwell</model> + </mode> + <mode name='custom' supported='yes'> + <model usable='unknown'>qemu64</model> + <model usable='unknown'>qemu32</model> + <model usable='unknown'>phenom</model> + <model usable='unknown'>pentium3</model> + <model usable='unknown'>pentium2</model> + <model usable='unknown'>pentium</model> + <model usable='unknown'>n270</model> + <model usable='unknown'>kvm64</model> + <model usable='unknown'>kvm32</model> + <model usable='unknown'>coreduo</model> + <model usable='unknown'>core2duo</model> + <model usable='unknown'>athlon</model> + <model usable='unknown'>Westmere</model> + <model usable='unknown'>Skylake-Client</model> + <model usable='unknown'>SandyBridge</model> + <model usable='unknown'>Penryn</model> + <model usable='unknown'>Opteron_G5</model> + <model usable='unknown'>Opteron_G4</model> + <model usable='unknown'>Opteron_G3</model> + <model usable='unknown'>Opteron_G2</model> + <model usable='unknown'>Opteron_G1</model> + <model usable='unknown'>Nehalem</model> + <model usable='unknown'>IvyBridge</model> + <model usable='unknown'>Haswell</model> + <model usable='unknown'>Haswell-noTSX</model> + <model usable='unknown'>Conroe</model> + <model usable='unknown'>Broadwell</model> + <model usable='unknown'>Broadwell-noTSX</model> + <model usable='unknown'>486</model> + </mode> + </cpu> + <devices> + <disk supported='yes'> + <enum name='diskDevice'> + <value>disk</value> + <value>cdrom</value> + <value>floppy</value> + <value>lun</value> + </enum> + <enum name='bus'> + <value>ide</value> + <value>fdc</value> + <value>scsi</value> + <value>virtio</value> + <value>usb</value> + </enum> + </disk> + <graphics supported='yes'> + <enum name='type'> + <value>sdl</value> + <value>vnc</value> + <value>spice</value> + </enum> + </graphics> + <video supported='yes'> + <enum name='modelType'> + <value>vga</value> + <value>cirrus</value> + <value>vmvga</value> + <value>qxl</value> + <value>virtio</value> + </enum> + </video> + <hostdev supported='yes'> + <enum name='mode'> + <value>subsystem</value> + </enum> + <enum name='startupPolicy'> + <value>default</value> + <value>mandatory</value> + <value>requisite</value> + <value>optional</value> + </enum> + <enum name='subsysType'> + <value>usb</value> + <value>pci</value> + <value>scsi</value> + </enum> + <enum name='capsType'/> + <enum name='pciBackend'> + <value>default</value> + <value>kvm</value> + <value>vfio</value> + </enum> + </hostdev> + </devices> + <features> + <gic supported='no'/> + </features> +</domainCapabilities> diff --git a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml new file mode 100644 index 0000000..7b8f90e --- /dev/null +++ b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml @@ -0,0 +1,116 @@ +<domainCapabilities> + <path>/usr/bin/qemu-system-x86_64</path> + <domain>kvm</domain> + <machine>pc-i440fx-2.8</machine> + <arch>x86_64</arch> + <vcpu max='255'/> + <os supported='yes'> + <loader supported='yes'> + <value>/usr/share/AAVMF/AAVMF_CODE.fd</value> + <value>/usr/share/OVMF/OVMF_CODE.fd</value> + <enum name='type'> + <value>rom</value> + <value>pflash</value> + </enum> + <enum name='readonly'> + <value>yes</value> + <value>no</value> + </enum> + </loader> + </os> + <cpu> + <mode name='host-passthrough' supported='yes'/> + <mode name='host-model' supported='yes'> + <model fallback='allow'>Broadwell</model> + </mode> + <mode name='custom' supported='yes'> + <model usable='unknown'>qemu64</model> + <model usable='unknown'>qemu32</model> + <model usable='unknown'>phenom</model> + <model usable='unknown'>pentium3</model> + <model usable='unknown'>pentium2</model> + <model usable='unknown'>pentium</model> + <model usable='unknown'>n270</model> + <model usable='unknown'>kvm64</model> + <model usable='unknown'>kvm32</model> + <model usable='unknown'>coreduo</model> + <model usable='unknown'>core2duo</model> + <model usable='unknown'>athlon</model> + <model usable='unknown'>Westmere</model> + <model usable='unknown'>Skylake-Client</model> + <model usable='unknown'>SandyBridge</model> + <model usable='unknown'>Penryn</model> + <model usable='unknown'>Opteron_G5</model> + <model usable='unknown'>Opteron_G4</model> + <model usable='unknown'>Opteron_G3</model> + <model usable='unknown'>Opteron_G2</model> + <model usable='unknown'>Opteron_G1</model> + <model usable='unknown'>Nehalem</model> + <model usable='unknown'>IvyBridge</model> + <model usable='unknown'>Haswell</model> + <model usable='unknown'>Haswell-noTSX</model> + <model usable='unknown'>Conroe</model> + <model usable='unknown'>Broadwell</model> + <model usable='unknown'>Broadwell-noTSX</model> + <model usable='unknown'>486</model> + </mode> + </cpu> + <devices> + <disk supported='yes'> + <enum name='diskDevice'> + <value>disk</value> + <value>cdrom</value> + <value>floppy</value> + <value>lun</value> + </enum> + <enum name='bus'> + <value>ide</value> + <value>fdc</value> + <value>scsi</value> + <value>virtio</value> + <value>usb</value> + </enum> + </disk> + <graphics supported='yes'> + <enum name='type'> + <value>sdl</value> + <value>vnc</value> + <value>spice</value> + </enum> + </graphics> + <video supported='yes'> + <enum name='modelType'> + <value>vga</value> + <value>cirrus</value> + <value>vmvga</value> + <value>qxl</value> + <value>virtio</value> + </enum> + </video> + <hostdev supported='yes'> + <enum name='mode'> + <value>subsystem</value> + </enum> + <enum name='startupPolicy'> + <value>default</value> + <value>mandatory</value> + <value>requisite</value> + <value>optional</value> + </enum> + <enum name='subsysType'> + <value>usb</value> + <value>pci</value> + <value>scsi</value> + </enum> + <enum name='capsType'/> + <enum name='pciBackend'> + <value>default</value> + <value>kvm</value> + <value>vfio</value> + </enum> + </hostdev> + </devices> + <features> + <gic supported='no'/> + </features> +</domainCapabilities> diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index e70fa05..fea5120 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -435,6 +435,14 @@ mymain(void) "/usr/bin/qemu-system-ppc64", NULL, "ppc64le", VIR_DOMAIN_VIRT_KVM); + DO_TEST_QEMU("2.8.0", "caps_2.8.0", + "/usr/bin/qemu-system-x86_64", NULL, + "x86_64", VIR_DOMAIN_VIRT_KVM); + + DO_TEST_QEMU("2.8.0-tcg", "caps_2.8.0", + "/usr/bin/qemu-system-x86_64", NULL, + "x86_64", VIR_DOMAIN_VIRT_QEMU); + #endif /* WITH_QEMU */ #if WITH_LIBXL -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:26AM +0100, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- .../domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 116 +++++++++++++++++++++ tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 116 +++++++++++++++++++++ tests/domaincapstest.c | 8 ++ 3 files changed, 240 insertions(+) create mode 100644 tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml create mode 100644 tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
ACK Pavel

QEMU 2.8.0 adds support for unavailable-features in query-cpu-definitions reply. The unavailable-features array lists CPU features which prevent a corresponding CPU model from being usable on current host. It can only be used when all the unavailable features are disabled. Empty array means the CPU model can be used without modifications. We can use unavailable-features for providing CPU model usability info in domain capabilities XML: <domainCapabilities> ... <cpu> <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='yes'> <model fallback='allow'>Skylake-Client</model> ... </mode> <mode name='custom' supported='yes'> <model usable='yes'>qemu64</model> <model usable='yes'>qemu32</model> <model usable='no'>phenom</model> <model usable='yes'>pentium3</model> <model usable='yes'>pentium2</model> <model usable='yes'>pentium</model> <model usable='yes'>n270</model> <model usable='yes'>kvm64</model> <model usable='yes'>kvm32</model> <model usable='yes'>coreduo</model> <model usable='yes'>core2duo</model> <model usable='no'>athlon</model> <model usable='yes'>Westmere</model> <model usable='yes'>Skylake-Client</model> ... </mode> </cpu> ... </domainCapabilities> Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 39 +++++-- src/qemu/qemu_capabilities.h | 3 +- src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 18 ++++ .../domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 58 +++++----- tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 58 +++++----- tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 120 ++++++++++----------- tests/qemumonitorjsontest.c | 27 ++++- tests/qemuxml2argvtest.c | 24 +++-- 9 files changed, 207 insertions(+), 141 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 54253cb..bfeee25 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2346,7 +2346,8 @@ int virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps, virDomainVirtType type, const char **name, - size_t count) + size_t count, + virDomainCapsCPUUsable usable) { size_t i; virDomainCapsCPUModelsPtr cpus = NULL; @@ -2367,8 +2368,7 @@ virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps, } for (i = 0; i < count; i++) { - if (virDomainCapsCPUModelsAdd(cpus, name[i], -1, - VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) + if (virDomainCapsCPUModelsAdd(cpus, name[i], -1, usable) < 0) return -1; } @@ -2784,9 +2784,14 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps, qemuCaps->kvmCPUModels = models; for (i = 0; i < ncpus; i++) { - if (virDomainCapsCPUModelsAddSteal(models, - &cpus[i]->name, - VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) + virDomainCapsCPUUsable usable = VIR_DOMCAPS_CPU_USABLE_UNKNOWN; + + if (cpus[i]->usable == VIR_TRISTATE_BOOL_YES) + usable = VIR_DOMCAPS_CPU_USABLE_YES; + else if (cpus[i]->usable == VIR_TRISTATE_BOOL_NO) + usable = VIR_DOMCAPS_CPU_USABLE_NO; + + if (virDomainCapsCPUModelsAddSteal(models, &cpus[i]->name, usable) < 0) goto cleanup; } @@ -3097,14 +3102,23 @@ virQEMUCapsLoadCPUModels(virQEMUCapsPtr qemuCaps, qemuCaps->tcgCPUModels = cpus; for (i = 0; i < n; i++) { + int usable = VIR_DOMCAPS_CPU_USABLE_UNKNOWN; + + if ((str = virXMLPropString(nodes[i], "usable")) && + (usable = virDomainCapsCPUUsableTypeFromString(str)) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unknown value '%s' in attribute 'usable'"), str); + goto cleanup; + } + VIR_FREE(str); + if (!(str = virXMLPropString(nodes[i], "name"))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing cpu name in QEMU capabilities cache")); goto cleanup; } - if (virDomainCapsCPUModelsAddSteal(cpus, &str, - VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) + if (virDomainCapsCPUModelsAddSteal(cpus, &str, usable) < 0) goto cleanup; } @@ -3383,8 +3397,15 @@ virQEMUCapsFormatCPUModels(virQEMUCapsPtr qemuCaps, return; for (i = 0; i < cpus->nmodels; i++) { + virDomainCapsCPUModelPtr cpu = cpus->models + i; + virBufferAsprintf(buf, "<cpu type='%s' ", typeStr); - virBufferEscapeString(buf, "name='%s'/>\n", cpus->models[i].name); + virBufferEscapeString(buf, "name='%s'", cpu->name); + if (cpu->usable) { + virBufferAsprintf(buf, " usable='%s'", + virDomainCapsCPUUsableTypeToString(cpu->usable)); + } + virBufferAddLit(buf, "/>\n"); } } diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 2f24452..5fa7c5a 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -432,7 +432,8 @@ unsigned int virQEMUCapsGetKVMVersion(virQEMUCapsPtr qemuCaps); int virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps, virDomainVirtType type, const char **name, - size_t count); + size_t count, + virDomainCapsCPUUsable usable); int virQEMUCapsGetCPUDefinitions(virQEMUCapsPtr qemuCaps, virDomainVirtType type, char ***names, diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index a0e5075..a94c8be 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -913,6 +913,7 @@ typedef struct _qemuMonitorCPUDefInfo qemuMonitorCPUDefInfo; typedef qemuMonitorCPUDefInfo *qemuMonitorCPUDefInfoPtr; struct _qemuMonitorCPUDefInfo { + virTristateBool usable; char *name; }; diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 9e06a4d..c070a9b 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -4958,6 +4958,24 @@ qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon, if (VIR_STRDUP(cpu->name, tmp) < 0) goto cleanup; + + if (virJSONValueObjectHasKey(child, "unavailable-features")) { + virJSONValuePtr blockers; + + blockers = virJSONValueObjectGetArray(child, + "unavailable-features"); + if (!blockers) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("unavailable-features in query-cpu-definitions " + "reply data was not an array")); + goto cleanup; + } + + if (virJSONValueArraySize(blockers) > 0) + cpu->usable = VIR_TRISTATE_BOOL_NO; + else + cpu->usable = VIR_TRISTATE_BOOL_YES; + } } ret = n; diff --git a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml index fe598e9..dd92853 100644 --- a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml @@ -24,35 +24,35 @@ <model fallback='allow'>Broadwell</model> </mode> <mode name='custom' supported='yes'> - <model usable='unknown'>qemu64</model> - <model usable='unknown'>qemu32</model> - <model usable='unknown'>phenom</model> - <model usable='unknown'>pentium3</model> - <model usable='unknown'>pentium2</model> - <model usable='unknown'>pentium</model> - <model usable='unknown'>n270</model> - <model usable='unknown'>kvm64</model> - <model usable='unknown'>kvm32</model> - <model usable='unknown'>coreduo</model> - <model usable='unknown'>core2duo</model> - <model usable='unknown'>athlon</model> - <model usable='unknown'>Westmere</model> - <model usable='unknown'>Skylake-Client</model> - <model usable='unknown'>SandyBridge</model> - <model usable='unknown'>Penryn</model> - <model usable='unknown'>Opteron_G5</model> - <model usable='unknown'>Opteron_G4</model> - <model usable='unknown'>Opteron_G3</model> - <model usable='unknown'>Opteron_G2</model> - <model usable='unknown'>Opteron_G1</model> - <model usable='unknown'>Nehalem</model> - <model usable='unknown'>IvyBridge</model> - <model usable='unknown'>Haswell</model> - <model usable='unknown'>Haswell-noTSX</model> - <model usable='unknown'>Conroe</model> - <model usable='unknown'>Broadwell</model> - <model usable='unknown'>Broadwell-noTSX</model> - <model usable='unknown'>486</model> + <model usable='yes'>qemu64</model> + <model usable='yes'>qemu32</model> + <model usable='no'>phenom</model> + <model usable='yes'>pentium3</model> + <model usable='yes'>pentium2</model> + <model usable='yes'>pentium</model> + <model usable='yes'>n270</model> + <model usable='yes'>kvm64</model> + <model usable='yes'>kvm32</model> + <model usable='yes'>coreduo</model> + <model usable='yes'>core2duo</model> + <model usable='yes'>athlon</model> + <model usable='yes'>Westmere</model> + <model usable='no'>Skylake-Client</model> + <model usable='no'>SandyBridge</model> + <model usable='yes'>Penryn</model> + <model usable='no'>Opteron_G5</model> + <model usable='no'>Opteron_G4</model> + <model usable='no'>Opteron_G3</model> + <model usable='yes'>Opteron_G2</model> + <model usable='yes'>Opteron_G1</model> + <model usable='yes'>Nehalem</model> + <model usable='no'>IvyBridge</model> + <model usable='no'>Haswell</model> + <model usable='no'>Haswell-noTSX</model> + <model usable='yes'>Conroe</model> + <model usable='no'>Broadwell</model> + <model usable='no'>Broadwell-noTSX</model> + <model usable='yes'>486</model> </mode> </cpu> <devices> diff --git a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml index 7b8f90e..4c5fffc 100644 --- a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml @@ -24,35 +24,35 @@ <model fallback='allow'>Broadwell</model> </mode> <mode name='custom' supported='yes'> - <model usable='unknown'>qemu64</model> - <model usable='unknown'>qemu32</model> - <model usable='unknown'>phenom</model> - <model usable='unknown'>pentium3</model> - <model usable='unknown'>pentium2</model> - <model usable='unknown'>pentium</model> - <model usable='unknown'>n270</model> - <model usable='unknown'>kvm64</model> - <model usable='unknown'>kvm32</model> - <model usable='unknown'>coreduo</model> - <model usable='unknown'>core2duo</model> - <model usable='unknown'>athlon</model> - <model usable='unknown'>Westmere</model> - <model usable='unknown'>Skylake-Client</model> - <model usable='unknown'>SandyBridge</model> - <model usable='unknown'>Penryn</model> - <model usable='unknown'>Opteron_G5</model> - <model usable='unknown'>Opteron_G4</model> - <model usable='unknown'>Opteron_G3</model> - <model usable='unknown'>Opteron_G2</model> - <model usable='unknown'>Opteron_G1</model> - <model usable='unknown'>Nehalem</model> - <model usable='unknown'>IvyBridge</model> - <model usable='unknown'>Haswell</model> - <model usable='unknown'>Haswell-noTSX</model> - <model usable='unknown'>Conroe</model> - <model usable='unknown'>Broadwell</model> - <model usable='unknown'>Broadwell-noTSX</model> - <model usable='unknown'>486</model> + <model usable='yes'>qemu64</model> + <model usable='yes'>qemu32</model> + <model usable='no'>phenom</model> + <model usable='yes'>pentium3</model> + <model usable='yes'>pentium2</model> + <model usable='yes'>pentium</model> + <model usable='yes'>n270</model> + <model usable='yes'>kvm64</model> + <model usable='yes'>kvm32</model> + <model usable='yes'>coreduo</model> + <model usable='yes'>core2duo</model> + <model usable='no'>athlon</model> + <model usable='yes'>Westmere</model> + <model usable='yes'>Skylake-Client</model> + <model usable='yes'>SandyBridge</model> + <model usable='yes'>Penryn</model> + <model usable='no'>Opteron_G5</model> + <model usable='no'>Opteron_G4</model> + <model usable='no'>Opteron_G3</model> + <model usable='yes'>Opteron_G2</model> + <model usable='yes'>Opteron_G1</model> + <model usable='yes'>Nehalem</model> + <model usable='yes'>IvyBridge</model> + <model usable='yes'>Haswell</model> + <model usable='yes'>Haswell-noTSX</model> + <model usable='yes'>Conroe</model> + <model usable='yes'>Broadwell</model> + <model usable='yes'>Broadwell-noTSX</model> + <model usable='yes'>486</model> </mode> </cpu> <devices> diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml index d5f0ab9..8d68515 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -199,66 +199,66 @@ <kvmVersion>0</kvmVersion> <package> (v2.8.0-rc0-dirty)</package> <arch>x86_64</arch> - <cpu type='kvm' name='host'/> - <cpu type='kvm' name='qemu64'/> - <cpu type='kvm' name='qemu32'/> - <cpu type='kvm' name='phenom'/> - <cpu type='kvm' name='pentium3'/> - <cpu type='kvm' name='pentium2'/> - <cpu type='kvm' name='pentium'/> - <cpu type='kvm' name='n270'/> - <cpu type='kvm' name='kvm64'/> - <cpu type='kvm' name='kvm32'/> - <cpu type='kvm' name='coreduo'/> - <cpu type='kvm' name='core2duo'/> - <cpu type='kvm' name='athlon'/> - <cpu type='kvm' name='Westmere'/> - <cpu type='kvm' name='Skylake-Client'/> - <cpu type='kvm' name='SandyBridge'/> - <cpu type='kvm' name='Penryn'/> - <cpu type='kvm' name='Opteron_G5'/> - <cpu type='kvm' name='Opteron_G4'/> - <cpu type='kvm' name='Opteron_G3'/> - <cpu type='kvm' name='Opteron_G2'/> - <cpu type='kvm' name='Opteron_G1'/> - <cpu type='kvm' name='Nehalem'/> - <cpu type='kvm' name='IvyBridge'/> - <cpu type='kvm' name='Haswell'/> - <cpu type='kvm' name='Haswell-noTSX'/> - <cpu type='kvm' name='Conroe'/> - <cpu type='kvm' name='Broadwell'/> - <cpu type='kvm' name='Broadwell-noTSX'/> - <cpu type='kvm' name='486'/> - <cpu type='tcg' name='host'/> - <cpu type='tcg' name='qemu64'/> - <cpu type='tcg' name='qemu32'/> - <cpu type='tcg' name='phenom'/> - <cpu type='tcg' name='pentium3'/> - <cpu type='tcg' name='pentium2'/> - <cpu type='tcg' name='pentium'/> - <cpu type='tcg' name='n270'/> - <cpu type='tcg' name='kvm64'/> - <cpu type='tcg' name='kvm32'/> - <cpu type='tcg' name='coreduo'/> - <cpu type='tcg' name='core2duo'/> - <cpu type='tcg' name='athlon'/> - <cpu type='tcg' name='Westmere'/> - <cpu type='tcg' name='Skylake-Client'/> - <cpu type='tcg' name='SandyBridge'/> - <cpu type='tcg' name='Penryn'/> - <cpu type='tcg' name='Opteron_G5'/> - <cpu type='tcg' name='Opteron_G4'/> - <cpu type='tcg' name='Opteron_G3'/> - <cpu type='tcg' name='Opteron_G2'/> - <cpu type='tcg' name='Opteron_G1'/> - <cpu type='tcg' name='Nehalem'/> - <cpu type='tcg' name='IvyBridge'/> - <cpu type='tcg' name='Haswell'/> - <cpu type='tcg' name='Haswell-noTSX'/> - <cpu type='tcg' name='Conroe'/> - <cpu type='tcg' name='Broadwell'/> - <cpu type='tcg' name='Broadwell-noTSX'/> - <cpu type='tcg' name='486'/> + <cpu type='kvm' name='host' 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-Client' usable='yes'/> + <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='yes'/> + <cpu type='kvm' name='Haswell-noTSX' usable='yes'/> + <cpu type='kvm' name='Conroe' usable='yes'/> + <cpu type='kvm' name='Broadwell' usable='yes'/> + <cpu type='kvm' name='Broadwell-noTSX' usable='yes'/> + <cpu type='kvm' name='486' usable='yes'/> + <cpu type='tcg' name='host' usable='no'/> + <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-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.8' 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'/> diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index 9f889a9..8bcea93 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -432,10 +432,12 @@ testQemuMonitorJSONGetCPUDefinitions(const void *data) " \"name\": \"qemu64\" " " }, " " { " - " \"name\": \"Opteron_G4\" " + " \"name\": \"Opteron_G4\", " + " \"unavailable-features\": [\"vme\"]" " }, " " { " - " \"name\": \"Westmere\" " + " \"name\": \"Westmere\", " + " \"unavailable-features\": []" " } " " ]" "}") < 0) @@ -451,7 +453,7 @@ testQemuMonitorJSONGetCPUDefinitions(const void *data) goto cleanup; } -#define CHECK(i, wantname) \ +#define CHECK_FULL(i, wantname, Usable) \ do { \ if (STRNEQ(cpus[i]->name, (wantname))) { \ virReportError(VIR_ERR_INTERNAL_ERROR, \ @@ -459,13 +461,28 @@ testQemuMonitorJSONGetCPUDefinitions(const void *data) cpus[i]->name, (wantname)); \ goto cleanup; \ } \ + if (cpus[i]->usable != (Usable)) { \ + virReportError(VIR_ERR_INTERNAL_ERROR, \ + "%s: expecting usable flag %d, got %d", \ + cpus[i]->name, Usable, cpus[i]->usable); \ + goto cleanup; \ + } \ } while (0) +#define CHECK(i, wantname) \ + CHECK_FULL(i, wantname, VIR_TRISTATE_BOOL_ABSENT) + +#define CHECK_USABLE(i, wantname, usable) \ + CHECK_FULL(i, wantname, \ + usable ? VIR_TRISTATE_BOOL_YES : VIR_TRISTATE_BOOL_NO) + CHECK(0, "qemu64"); - CHECK(1, "Opteron_G4"); - CHECK(2, "Westmere"); + CHECK_USABLE(1, "Opteron_G4", false); + CHECK_USABLE(2, "Westmere", true); #undef CHECK +#undef CHECK_USABLE +#undef CHECK_FULL ret = 0; diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index e44912d..754f46e 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -303,31 +303,39 @@ testAddCPUModels(virQEMUCapsPtr caps, bool skipLegacy) if (ARCH_IS_X86(arch)) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, x86Models, - ARRAY_CARDINALITY(x86Models)) < 0 || + ARRAY_CARDINALITY(x86Models), + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0 || virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, x86Models, - ARRAY_CARDINALITY(x86Models)) < 0) + ARRAY_CARDINALITY(x86Models), + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; if (!skipLegacy) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, x86LegacyModels, - ARRAY_CARDINALITY(x86LegacyModels)) < 0 || + ARRAY_CARDINALITY(x86LegacyModels), + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0 || virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, x86LegacyModels, - ARRAY_CARDINALITY(x86LegacyModels)) < 0) + ARRAY_CARDINALITY(x86LegacyModels), + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; } } else if (ARCH_IS_ARM(arch)) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, armModels, - ARRAY_CARDINALITY(armModels)) < 0 || + ARRAY_CARDINALITY(armModels), + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0 || virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, armModels, - ARRAY_CARDINALITY(armModels)) < 0) + ARRAY_CARDINALITY(armModels), + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; } else if (ARCH_IS_PPC64(arch)) { if (virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_KVM, ppc64Models, - ARRAY_CARDINALITY(ppc64Models)) < 0 || + ARRAY_CARDINALITY(ppc64Models), + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0 || virQEMUCapsAddCPUDefinitions(caps, VIR_DOMAIN_VIRT_QEMU, ppc64Models, - ARRAY_CARDINALITY(ppc64Models)) < 0) + ARRAY_CARDINALITY(ppc64Models), + VIR_DOMCAPS_CPU_USABLE_UNKNOWN) < 0) return -1; } -- 2.10.2

On Mon, Nov 21, 2016 at 12:21:27AM +0100, Jiri Denemark wrote:
QEMU 2.8.0 adds support for unavailable-features in query-cpu-definitions reply. The unavailable-features array lists CPU features which prevent a corresponding CPU model from being usable on current host. It can only be used when all the unavailable features are disabled. Empty array means the CPU model can be used without modifications.
We can use unavailable-features for providing CPU model usability info in domain capabilities XML:
<domainCapabilities> ... <cpu> <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='yes'> <model fallback='allow'>Skylake-Client</model> ... </mode> <mode name='custom' supported='yes'> <model usable='yes'>qemu64</model> <model usable='yes'>qemu32</model> <model usable='no'>phenom</model> <model usable='yes'>pentium3</model> <model usable='yes'>pentium2</model> <model usable='yes'>pentium</model> <model usable='yes'>n270</model> <model usable='yes'>kvm64</model> <model usable='yes'>kvm32</model> <model usable='yes'>coreduo</model> <model usable='yes'>core2duo</model> <model usable='no'>athlon</model> <model usable='yes'>Westmere</model> <model usable='yes'>Skylake-Client</model> ... </mode> </cpu> ... </domainCapabilities>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 39 +++++-- src/qemu/qemu_capabilities.h | 3 +- src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 18 ++++ .../domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 58 +++++----- tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 58 +++++----- tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 120 ++++++++++----------- tests/qemumonitorjsontest.c | 27 ++++- tests/qemuxml2argvtest.c | 24 +++-- 9 files changed, 207 insertions(+), 141 deletions(-)
ACK Pavel

On Mon, Nov 21, 2016 at 00:20:56 +0100, Jiri Denemark wrote:
QEMU 2.8.0 adds support for unavailable-features in query-cpu-definitions reply. The unavailable-features array lists CPU features which prevent a corresponding CPU model from being usable on current host. It can only be used when all the unavailable features are disabled. Empty array means the CPU model can be used without modifications.
Changes in v2: - many; the way we probe QEMU was rewritten so that we probe both KVM and TCG capabilities and store them separately whenever we expect them to be different
Big thanks to Andrea Bolognani for providing the updated replies data from aarch64 and ppc64le machines.
I dealt with the suggested changes and pushed this series. Thanks for the review. Jirka
participants (3)
-
Jiri Denemark
-
John Ferlan
-
Pavel Hrdina