From: Luiz Capitulino <lcapitulino@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: peter.maydell@linaro.org, gleb@redhat.com, mst@redhat.com,
jan.kiszka@siemens.com, qemu-devel@nongnu.org,
blauwirbel@gmail.com, kraxel@redhat.com, quintela@redhat.com,
armbru@redhat.com, yang.z.zhang@intel.com, ehabkost@redhat.com,
stefano.stabellini@eu.citrix.com, aderumier@odiso.com,
anthony.perard@citrix.com, alex.williamson@redhat.com,
rth@twiddle.net, kwolf@redhat.com, aliguori@us.ibm.com,
claudio.fontana@huawei.com, pbonzini@redhat.com,
afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH 21/21] QMP: add cpu-add command
Date: Tue, 23 Apr 2013 09:26:22 -0400 [thread overview]
Message-ID: <20130423092622.23f32b99@redhat.com> (raw)
In-Reply-To: <1366705795-24732-22-git-send-email-imammedo@redhat.com>
On Tue, 23 Apr 2013 10:29:55 +0200
Igor Mammedov <imammedo@redhat.com> wrote:
> 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 <imammedo@redhat.com>
QMP parts (this and the previous patch) is trivial:
Acked-by: Luiz Capitulino <lcapitulino@redhat.com>
Just wondering, no HMP command?
> ---
> v6:
> * added valid values description to qapi schema
> * split out cpu_hot_add hooks introduction into separate patch
> * split out implementation of cpu_hot_add for target-i386
> v5:
> * accept id=[0..max_cpus) range in cpu-add command
> v4:
> * merge "qmp: add cpu-add qmp command" & "target-i386: implement CPU hot-add" patches
> * move notifier call to CPUCLass.realize()
> * add hook cpu_hot_add to QEMUMachine
> * make QEMUMachineInitArgs global and keep default cpu_model there
>
> v3:
> * it appears that 'online/offline' in cpu-set are confusing people
> with what command actually does and users might have to distinguish
> if 'offline' is not implemented by parsing error message. To simplify
> things replace cpu-set with cpu-add command to show more clear what
> command does and just add cpu-del when CPU remove is implemented.
>
> v2:
> * s/cpu_set/cpu-set/
> * qmp doc style fix
> * use bool type instead of opencodding online/offline string
> suggested-by: Eric Blake <eblake@redhat.com>
> ---
> qapi-schema.json | 11 +++++++++++
> qmp-commands.hx | 23 +++++++++++++++++++++++
> qmp.c | 10 ++++++++++
> 3 files changed, 44 insertions(+), 0 deletions(-)
>
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 751d3c2..11a5c82 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -1387,6 +1387,17 @@
> { '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
> +##
> +{ '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 4d65422..1e5d299 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 ed6c7ef..dd34be6 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 */
next prev parent reply other threads:[~2013-04-23 13:26 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-23 8:29 [Qemu-devel] [PATCH 00/21 v5] target-i386: CPU hot-add with cpu-add QMP command Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 01/21] cpu: make kvm-stub.o a part of CPU library Igor Mammedov
2013-04-23 15:06 ` Andreas Färber
2013-04-23 8:29 ` [Qemu-devel] [PATCH 02/21] cpu: call cpu_synchronize_post_init() from CPUClass.realize() if hotplugged Igor Mammedov
2013-04-23 15:59 ` Andreas Färber
2013-04-24 12:08 ` Andreas Färber
2013-04-24 13:34 ` Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 03/21] introduce cpu_resume(), for single CPU Igor Mammedov
2013-04-24 15:21 ` Andreas Färber
2013-04-23 8:29 ` [Qemu-devel] [PATCH 04/21] cpu: resume CPU from CPUClass.cpu_common_realizefn() when it is hot-plugged Igor Mammedov
2013-04-24 15:37 ` Andreas Färber
2013-04-23 8:29 ` [Qemu-devel] [PATCH 05/21] introduce CPU hot-plug notifier Igor Mammedov
2013-04-24 16:52 ` Andreas Färber
2013-04-23 8:29 ` [Qemu-devel] [PATCH 06/21] target-i386: pc: update rtc_cmos on CPU hot-plug Igor Mammedov
2013-04-24 17:03 ` Andreas Färber
2013-04-24 20:04 ` Andreas Färber
2013-04-23 8:29 ` [Qemu-devel] [PATCH 07/21] cpu: introduce get_arch_id() method and override it for target-i386 Igor Mammedov
2013-04-24 17:51 ` Andreas Färber
2013-04-23 8:29 ` [Qemu-devel] [PATCH 08/21] exec: add qemu_for_each_cpu Igor Mammedov
2013-04-25 14:48 ` Andreas Färber
2013-04-23 8:29 ` [Qemu-devel] [PATCH 09/21] cpu: add helper cpu_exists(), to check if CPU with specified id exists Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 10/21] acpi_piix4: add infrastructure to send CPU hot-plug GPE to guest Igor Mammedov
2013-04-23 11:38 ` Juan Quintela
2013-04-23 12:54 ` Igor Mammedov
2013-04-23 13:04 ` Michael S. Tsirkin
2013-04-23 14:51 ` Igor Mammedov
2013-04-23 15:01 ` Michael S. Tsirkin
2013-04-23 13:16 ` Juan Quintela
2013-04-23 15:25 ` Juan Quintela
2013-04-23 15:53 ` Igor Mammedov
2013-04-23 13:43 ` Juan Quintela
2013-04-23 13:58 ` Eduardo Habkost
2013-04-23 14:10 ` Igor Mammedov
2013-04-23 16:27 ` [Qemu-devel] [PATCH 10/21 DISGISED v6] " Igor Mammedov
2013-04-24 15:56 ` Igor Mammedov
2013-04-24 16:03 ` Eduardo Habkost
2013-04-24 16:07 ` Paolo Bonzini
2013-04-24 16:09 ` Andreas Färber
2013-04-24 17:22 ` Igor Mammedov
2013-04-24 15:58 ` [Qemu-devel] [PATCH 08/19 v7] " Igor Mammedov
2013-04-24 16:06 ` Andreas Färber
2013-04-24 17:15 ` Igor Mammedov
2013-04-24 18:57 ` [Qemu-devel] [PATCH 10/21 v8] " Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 11/21] target-i386: introduce apic-id property Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 12/21] target-i386: introduce ICC bus/device/bridge Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 13/21] target-i386: cpu: attach ICC bus to CPU on its creation Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 14/21] target-i386: replace MSI_SPACE_SIZE with APIC_SPACE_SIZE Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 15/21] target-i386: kvmvapic: make expilict dependency on sysbus.h Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 16/21] target-i386: move APIC to ICC bus Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 17/21] introduce memory_region_get_address() and use it in kvm/ioapic Igor Mammedov
2013-04-23 17:02 ` Paolo Bonzini
2013-04-23 17:06 ` Peter Maydell
2013-04-23 17:14 ` Paolo Bonzini
2013-04-23 17:26 ` Peter Maydell
2013-04-23 17:39 ` Jan Kiszka
2013-04-23 18:00 ` Peter Maydell
2013-04-23 21:02 ` Paolo Bonzini
2013-04-23 21:39 ` Peter Maydell
2013-04-23 21:46 ` Paolo Bonzini
2013-04-23 22:00 ` Peter Maydell
2013-04-24 10:22 ` Paolo Bonzini
2013-04-24 10:26 ` Paolo Bonzini
2013-04-24 16:02 ` [Qemu-devel] [PATCH 15/19 v2] extend memory_region_find() " Igor Mammedov
2013-04-25 18:37 ` [Qemu-devel] [PATCH 17/21] introduce memory_region_get_address() " Blue Swirl
2013-04-26 14:17 ` Igor Mammedov
2013-04-26 17:35 ` Blue Swirl
2013-04-26 17:46 ` Igor Mammedov
2013-04-26 22:13 ` Paolo Bonzini
2013-04-27 10:09 ` Blue Swirl
2013-04-27 12:12 ` Paolo Bonzini
2013-04-27 20:57 ` Blue Swirl
2013-04-29 9:49 ` Paolo Bonzini
2013-04-29 9:55 ` Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 18/21] target-i386: move IOAPIC to ICC bus Igor Mammedov
2013-04-23 8:29 ` [Qemu-devel] [PATCH 19/21] add hot_add_cpu hook to QEMUMachine and export machine_args Igor Mammedov
2013-04-24 17:25 ` Andreas Färber
2013-04-24 17:42 ` Igor Mammedov
2013-04-25 16:58 ` Eduardo Habkost
2013-04-23 8:29 ` [Qemu-devel] [PATCH 20/21] target-i386: implement machine->hot_add_cpu hook Igor Mammedov
2013-04-24 17:31 ` Andreas Färber
2013-04-24 19:14 ` Eduardo Habkost
2013-04-23 8:29 ` [Qemu-devel] [PATCH 21/21] QMP: add cpu-add command Igor Mammedov
2013-04-23 13:26 ` Luiz Capitulino [this message]
2013-04-23 14:15 ` Igor Mammedov
2013-04-24 19:44 ` Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130423092622.23f32b99@redhat.com \
--to=lcapitulino@redhat.com \
--cc=aderumier@odiso.com \
--cc=afaerber@suse.de \
--cc=alex.williamson@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=anthony.perard@citrix.com \
--cc=armbru@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=claudio.fontana@huawei.com \
--cc=ehabkost@redhat.com \
--cc=gleb@redhat.com \
--cc=imammedo@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=rth@twiddle.net \
--cc=stefano.stabellini@eu.citrix.com \
--cc=yang.z.zhang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.