qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 11/12 v3] qmp: add cpu-add qmp command
@ 2013-03-26 16:47 Igor Mammedov
  2013-03-26 16:54 ` Eric Blake
  2013-03-27 12:58 ` Luiz Capitulino
  0 siblings, 2 replies; 4+ messages in thread
From: Igor Mammedov @ 2013-03-26 16:47 UTC (permalink / raw)
  To: qemu-devel; +Cc: lcapitulino

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
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>
---
 include/sysemu/sysemu.h |  2 ++
 qapi-schema.json        | 11 +++++++++++
 qmp-commands.hx         | 23 +++++++++++++++++++++++
 qmp.c                   |  5 +++++
 stubs/Makefile.objs     |  1 +
 stubs/do_cpu_hot_add.c  |  7 +++++++
 6 files changed, 49 insertions(+)
 create mode 100644 stubs/do_cpu_hot_add.c

diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 4b8f721..8bcaf26 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -156,6 +156,8 @@ void drive_hot_add(Monitor *mon, const QDict *qdict);
 void qemu_register_cpu_add_notifier(Notifier *notifier);
 void qemu_system_cpu_hotplug_request(uint32_t id);
 
+void do_cpu_hot_add(const int64_t id, Error **errp);
+
 /* pcie aer error injection */
 void pcie_aer_inject_error_print(Monitor *mon, const QObject *data);
 int do_pcie_aer_inject_error(Monitor *mon,
diff --git a/qapi-schema.json b/qapi-schema.json
index af499bd..3a2f273 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1385,6 +1385,17 @@
 { 'command': 'cpu', 'data': {'index': 'int'} }
 
 ##
+# @cpu-add
+#
+# Adds CPU with specified id
+#
+# @id: cpu id of CPU to be created
+#
+# 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 2051fcb..4876393 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -407,6 +407,29 @@ Example:
 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 55b056b..978d956 100644
--- a/qmp.c
+++ b/qmp.c
@@ -108,6 +108,11 @@ void qmp_cpu(int64_t index, Error **errp)
     /* Just do nothing */
 }
 
+void qmp_cpu_add(int64_t id, Error **errp)
+{
+    do_cpu_hot_add(id, errp);
+}
+
 #ifndef CONFIG_VNC
 /* If VNC support is enabled, the "true" query-vnc command is
    defined in the VNC subsystem */
diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
index 6a492f5..4154a2b 100644
--- a/stubs/Makefile.objs
+++ b/stubs/Makefile.objs
@@ -26,3 +26,4 @@ stub-obj-$(CONFIG_WIN32) += fd-register.o
 stub-obj-y += resume_vcpu.o
 stub-obj-y += get_icc_bus.o
 stub-obj-y += qemu_system_cpu_hotplug_request.o
+stub-obj-y += do_cpu_hot_add.o
diff --git a/stubs/do_cpu_hot_add.c b/stubs/do_cpu_hot_add.c
new file mode 100644
index 0000000..1f6d7a6
--- /dev/null
+++ b/stubs/do_cpu_hot_add.c
@@ -0,0 +1,7 @@
+#include "qapi/error.h"
+#include "sysemu/sysemu.h"
+
+void do_cpu_hot_add(const int64_t id, Error **errp)
+{
+    error_setg(errp, "Not implemented");
+}
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH 11/12 v3] qmp: add cpu-add qmp command
  2013-03-26 16:47 [Qemu-devel] [PATCH 11/12 v3] qmp: add cpu-add qmp command Igor Mammedov
@ 2013-03-26 16:54 ` Eric Blake
  2013-03-26 17:03   ` Igor Mammedov
  2013-03-27 12:58 ` Luiz Capitulino
  1 sibling, 1 reply; 4+ messages in thread
From: Eric Blake @ 2013-03-26 16:54 UTC (permalink / raw)
  To: Igor Mammedov; +Cc: qemu-devel, lcapitulino

[-- Attachment #1: Type: text/plain, Size: 1270 bytes --]

On 03/26/2013 10:47 AM, Igor Mammedov wrote:
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> 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>
> ---
>  include/sysemu/sysemu.h |  2 ++
>  qapi-schema.json        | 11 +++++++++++
>  qmp-commands.hx         | 23 +++++++++++++++++++++++
>  qmp.c                   |  5 +++++
>  stubs/Makefile.objs     |  1 +
>  stubs/do_cpu_hot_add.c  |  7 +++++++
>  6 files changed, 49 insertions(+)
>  create mode 100644 stubs/do_cpu_hot_add.c

Reviewed-by: Eric Blake <eblake@redhat.com>

I didn't look at the rest of your series (I guess the remaining patches
were only posted in v1?)

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 621 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH 11/12 v3] qmp: add cpu-add qmp command
  2013-03-26 16:54 ` Eric Blake
@ 2013-03-26 17:03   ` Igor Mammedov
  0 siblings, 0 replies; 4+ messages in thread
From: Igor Mammedov @ 2013-03-26 17:03 UTC (permalink / raw)
  To: Eric Blake; +Cc: qemu-devel, lcapitulino

On Tue, 26 Mar 2013 10:54:39 -0600
Eric Blake <eblake@redhat.com> wrote:

> On 03/26/2013 10:47 AM, Igor Mammedov wrote:
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > 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>
> > ---
> >  include/sysemu/sysemu.h |  2 ++
> >  qapi-schema.json        | 11 +++++++++++
> >  qmp-commands.hx         | 23 +++++++++++++++++++++++
> >  qmp.c                   |  5 +++++
> >  stubs/Makefile.objs     |  1 +
> >  stubs/do_cpu_hot_add.c  |  7 +++++++
> >  6 files changed, 49 insertions(+)
> >  create mode 100644 stubs/do_cpu_hot_add.c
> 
> Reviewed-by: Eric Blake <eblake@redhat.com>
> 
> I didn't look at the rest of your series (I guess the remaining patches
> were only posted in v1?)
Yes, remaining patches in RFC v1. Sorry, I've forgot to add
reference when posting this patch to stick it in related mail thread.
Also there is updated git tree
https://github.com/imammedo/qemu/tree/cpu_set.WIP with this patch.

> 
> -- 
> Eric Blake   eblake redhat com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
> 


-- 
Regards,
  Igor

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH 11/12 v3] qmp: add cpu-add qmp command
  2013-03-26 16:47 [Qemu-devel] [PATCH 11/12 v3] qmp: add cpu-add qmp command Igor Mammedov
  2013-03-26 16:54 ` Eric Blake
@ 2013-03-27 12:58 ` Luiz Capitulino
  1 sibling, 0 replies; 4+ messages in thread
From: Luiz Capitulino @ 2013-03-27 12:58 UTC (permalink / raw)
  To: Igor Mammedov; +Cc: qemu-devel

On Tue, 26 Mar 2013 17:47:42 +0100
Igor Mammedov <imammedo@redhat.com> wrote:

> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> 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>
> ---
>  include/sysemu/sysemu.h |  2 ++
>  qapi-schema.json        | 11 +++++++++++
>  qmp-commands.hx         | 23 +++++++++++++++++++++++
>  qmp.c                   |  5 +++++
>  stubs/Makefile.objs     |  1 +
>  stubs/do_cpu_hot_add.c  |  7 +++++++
>  6 files changed, 49 insertions(+)
>  create mode 100644 stubs/do_cpu_hot_add.c

Personally, I'd prefer this patch squashed into the next one, but anyway:

Acked-by: Luiz Capitulino <lcapitulino@redhat.com>

> 
> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
> index 4b8f721..8bcaf26 100644
> --- a/include/sysemu/sysemu.h
> +++ b/include/sysemu/sysemu.h
> @@ -156,6 +156,8 @@ void drive_hot_add(Monitor *mon, const QDict *qdict);
>  void qemu_register_cpu_add_notifier(Notifier *notifier);
>  void qemu_system_cpu_hotplug_request(uint32_t id);
>  
> +void do_cpu_hot_add(const int64_t id, Error **errp);
> +
>  /* pcie aer error injection */
>  void pcie_aer_inject_error_print(Monitor *mon, const QObject *data);
>  int do_pcie_aer_inject_error(Monitor *mon,
> diff --git a/qapi-schema.json b/qapi-schema.json
> index af499bd..3a2f273 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -1385,6 +1385,17 @@
>  { 'command': 'cpu', 'data': {'index': 'int'} }
>  
>  ##
> +# @cpu-add
> +#
> +# Adds CPU with specified id
> +#
> +# @id: cpu id of CPU to be created
> +#
> +# 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 2051fcb..4876393 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -407,6 +407,29 @@ Example:
>  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 55b056b..978d956 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -108,6 +108,11 @@ void qmp_cpu(int64_t index, Error **errp)
>      /* Just do nothing */
>  }
>  
> +void qmp_cpu_add(int64_t id, Error **errp)
> +{
> +    do_cpu_hot_add(id, errp);
> +}
> +
>  #ifndef CONFIG_VNC
>  /* If VNC support is enabled, the "true" query-vnc command is
>     defined in the VNC subsystem */
> diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
> index 6a492f5..4154a2b 100644
> --- a/stubs/Makefile.objs
> +++ b/stubs/Makefile.objs
> @@ -26,3 +26,4 @@ stub-obj-$(CONFIG_WIN32) += fd-register.o
>  stub-obj-y += resume_vcpu.o
>  stub-obj-y += get_icc_bus.o
>  stub-obj-y += qemu_system_cpu_hotplug_request.o
> +stub-obj-y += do_cpu_hot_add.o
> diff --git a/stubs/do_cpu_hot_add.c b/stubs/do_cpu_hot_add.c
> new file mode 100644
> index 0000000..1f6d7a6
> --- /dev/null
> +++ b/stubs/do_cpu_hot_add.c
> @@ -0,0 +1,7 @@
> +#include "qapi/error.h"
> +#include "sysemu/sysemu.h"
> +
> +void do_cpu_hot_add(const int64_t id, Error **errp)
> +{
> +    error_setg(errp, "Not implemented");
> +}

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-03-27 12:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-26 16:47 [Qemu-devel] [PATCH 11/12 v3] qmp: add cpu-add qmp command Igor Mammedov
2013-03-26 16:54 ` Eric Blake
2013-03-26 17:03   ` Igor Mammedov
2013-03-27 12:58 ` Luiz Capitulino

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).