[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 22/29] QMP: Add cpu-add command
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PATCH 22/29] QMP: Add cpu-add command |
Date: |
Thu, 2 May 2013 15:35:48 +0200 |
From: Igor Mammedov <address@hidden>
Adds "cpu-add id=xxx" QMP command.
cpu-add's "id" argument is a CPU number in a range [0..max-cpus)
Example QMP command:
-> { "execute": "cpu-add", "arguments": { "id": 2 } }
<- { "return": {} }
Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: Luiz Capitulino <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
---
qapi-schema.json | 13 +++++++++++++
qmp-commands.hx | 23 +++++++++++++++++++++++
qmp.c | 10 ++++++++++
3 files changed, 46 insertions(+)
diff --git a/qapi-schema.json b/qapi-schema.json
index 65be8f4..7797400 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1390,6 +1390,19 @@
{ 'command': 'cpu', 'data': {'index': 'int'} }
##
+# @cpu-add
+#
+# Adds CPU with specified ID
+#
+# @id: ID of CPU to be created, valid values [0..max_cpus)
+#
+# Returns: Nothing on success
+#
+# Since 1.5
+##
+{ 'command': 'cpu-add', 'data': {'id': 'int'} }
+
+##
# @memsave:
#
# Save a portion of guest memory to a file.
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 0e89132..ed99eb8 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -385,6 +385,29 @@ Note: CPUs' indexes are obtained with the 'query-cpus'
command.
EQMP
{
+ .name = "cpu-add",
+ .args_type = "id:i",
+ .mhandler.cmd_new = qmp_marshal_input_cpu_add,
+ },
+
+SQMP
+cpu-add
+-------
+
+Adds virtual cpu
+
+Arguments:
+
+- "id": cpu id (json-int)
+
+Example:
+
+-> { "execute": "cpu-add", "arguments": { "id": 2 } }
+<- { "return": {} }
+
+EQMP
+
+ {
.name = "memsave",
.args_type = "val:l,size:i,filename:s,cpu:i?",
.mhandler.cmd_new = qmp_marshal_input_memsave,
diff --git a/qmp.c b/qmp.c
index 4676993..4c149b3 100644
--- a/qmp.c
+++ b/qmp.c
@@ -24,6 +24,7 @@
#include "hw/qdev.h"
#include "sysemu/blockdev.h"
#include "qom/qom-qobject.h"
+#include "hw/boards.h"
NameInfo *qmp_query_name(Error **errp)
{
@@ -108,6 +109,15 @@ void qmp_cpu(int64_t index, Error **errp)
/* Just do nothing */
}
+void qmp_cpu_add(int64_t id, Error **errp)
+{
+ if (current_machine->hot_add_cpu) {
+ current_machine->hot_add_cpu(id, errp);
+ } else {
+ error_setg(errp, "Not supported");
+ }
+}
+
#ifndef CONFIG_VNC
/* If VNC support is enabled, the "true" query-vnc command is
defined in the VNC subsystem */
--
1.8.1.4
- [Qemu-devel] [PATCH 05/29] cpu: Introduce CPU hot-plug notifier, (continued)
- [Qemu-devel] [PATCH 05/29] cpu: Introduce CPU hot-plug notifier, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 09/29] cpus: Use qemu_for_each_cpu() in TCG thread, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 04/29] cpu: Resume CPU from DeviceClass::realize() if hot-plugged, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 08/29] cpu: Add qemu_for_each_cpu(), Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 21/29] Add hot_add_cpu hook to QEMUMachine, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 14/29] target-i386: Do not allow to set apic-id once CPU is realized, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 03/29] cpu: Introduce cpu_resume(), for single CPU, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 11/29] acpi_piix4: Add infrastructure to send CPU hot-plug GPE to guest, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 06/29] pc: Update rtc_cmos on CPU hot-plug, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 19/29] target-i386: Attach ICC bus to CPU on its creation, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 22/29] QMP: Add cpu-add command,
Andreas Färber <=
- [Qemu-devel] [PATCH 23/29] pc: Implement QEMUMachine::hot_add_cpu hook, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 29/29] Drop redundant resume_all_vcpus() from main(), Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 18/29] target-i386: Introduce ICC bus/device/bridge, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 28/29] cpus: Fix pausing TCG CPUs while in vCPU thread, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 16/29] kvmvapic: Make dependency on sysbus.h explicit, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 25/29] target-i386/kvm.c: Code formatting changes, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 07/29] cpu: Introduce get_arch_id() method and override it for X86CPU, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 15/29] target-i386: Replace MSI_SPACE_SIZE with APIC_SPACE_SIZE, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 24/29] target-i386: Group together level, xlevel, xlevel2 fields, Andreas Färber, 2013/05/02
- [Qemu-devel] [PATCH 26/29] target-i386: Break CPUID feature definition lines, Andreas Färber, 2013/05/02