提交 6cdff51f 编写于 作者: P Peter Krempa 提交者: Cole Robinson

qemu: Implement new QMP command for cpu hotplug

This patch implements support for the "cpu-add" QMP command that plugs
CPUs into a live guest. The "cpu-add" command was introduced in QEMU
1.5. For the hotplug to work machine type "pc-i440fx-1.5" is required.

(cherry picked from commit c12b2be5)
上级 ad02b248
...@@ -2086,9 +2086,42 @@ cleanup: ...@@ -2086,9 +2086,42 @@ cleanup:
int qemuMonitorJSONSetCPU(qemuMonitorPtr mon, int qemuMonitorJSONSetCPU(qemuMonitorPtr mon,
int cpu, int online) int cpu, int online)
{ {
/* XXX Update to use QMP, if QMP ever adds support for cpu hotplug */ int ret = -1;
virJSONValuePtr cmd = NULL;
virJSONValuePtr reply = NULL;
if (online) {
cmd = qemuMonitorJSONMakeCommand("cpu-add",
"i:id", cpu,
NULL);
} else {
/* offlining is not yet implemented in qmp */
goto fallback;
}
if (!cmd)
goto cleanup;
if ((ret = qemuMonitorJSONCommand(mon, cmd, &reply)) < 0)
goto cleanup;
if (qemuMonitorJSONHasError(reply, "CommandNotFound"))
goto fallback;
else
ret = qemuMonitorJSONCheckError(cmd, reply);
/* this function has non-standard return values, so adapt it */
if (ret == 0)
ret = 1;
cleanup:
virJSONValueFree(cmd);
virJSONValueFree(reply);
return ret;
fallback:
VIR_DEBUG("no QMP support for cpu_set, trying HMP"); VIR_DEBUG("no QMP support for cpu_set, trying HMP");
return qemuMonitorTextSetCPU(mon, cpu, online); ret = qemuMonitorTextSetCPU(mon, cpu, online);
goto cleanup;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册