Message ID | 1364316462-3383-1-git-send-email-imammedo@redhat.com |
---|---|
State | New |
Headers | show |
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?)
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 >
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"); > +}
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"); +}
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