qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max
@ 2013-03-25 16:31 Michal Novotny
  2013-03-25 18:37 ` Luiz Capitulino
  2013-03-26  7:14 ` Paolo Bonzini
  0 siblings, 2 replies; 5+ messages in thread
From: Michal Novotny @ 2013-03-25 16:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michal Novotny, lcapitulino

These commands return the maximum number of CPUs supported by the
currently running emulator instance, as defined in its QEMUMachine
struct.

Signed-off-by: Michal Novotny <minovotn@redhat.com>
---
 hmp-commands.hx  | 14 ++++++++++++++
 hmp.c            |  8 ++++++++
 hmp.h            |  1 +
 qapi-schema.json | 11 +++++++++++
 qmp-commands.hx  | 22 ++++++++++++++++++++++
 vl.c             |  5 +++++
 6 files changed, 61 insertions(+)

diff --git a/hmp-commands.hx b/hmp-commands.hx
index df44906..c976459 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -690,6 +690,20 @@ Set the default CPU.
 ETEXI
 
     {
+        .name       = "cpu_max",
+        .args_type  = "",
+        .params     = "",
+        .help       = "Get maximum number of VCPUs supported by machine",
+        .mhandler.cmd = hmp_query_cpu_max,
+    },
+
+STEXI
+@item cpu_max
+@findex cpu_max
+Returns the number of CPUs supported by the machine being emulated.
+ETEXI
+
+    {
         .name       = "mouse_move",
         .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
         .params     = "dx dy [dz]",
diff --git a/hmp.c b/hmp.c
index b0a861c..205db8f 100644
--- a/hmp.c
+++ b/hmp.c
@@ -748,6 +748,14 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
     g_free(data);
 }
 
+void hmp_query_cpu_max(Monitor *mon, const QDict *qdict)
+{
+    int cpu_max;
+
+    cpu_max = qmp_query_cpu_max(NULL);
+    monitor_printf(mon, "Maximum number of CPUs is %d\n", cpu_max);
+}
+
 static void hmp_cont_cb(void *opaque, int err)
 {
     if (!err) {
diff --git a/hmp.h b/hmp.h
index 95fe76e..80e8b41 100644
--- a/hmp.h
+++ b/hmp.h
@@ -42,6 +42,7 @@ void hmp_stop(Monitor *mon, const QDict *qdict);
 void hmp_system_reset(Monitor *mon, const QDict *qdict);
 void hmp_system_powerdown(Monitor *mon, const QDict *qdict);
 void hmp_cpu(Monitor *mon, const QDict *qdict);
+void hmp_query_cpu_max(Monitor *mon, const QDict *qdict);
 void hmp_memsave(Monitor *mon, const QDict *qdict);
 void hmp_pmemsave(Monitor *mon, const QDict *qdict);
 void hmp_ringbuf_write(Monitor *mon, const QDict *qdict);
diff --git a/qapi-schema.json b/qapi-schema.json
index 088f4e1..a8187fd 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1832,6 +1832,17 @@
 { 'command': 'query-migrate-cache-size', 'returns': 'int' }
 
 ##
+## @query-cpu-max
+##
+## query maximum number of CPUs supported by machine
+##
+## Returns: number of CPUs
+##
+## Since: 1.5
+###
+{ 'command': 'query-cpu-max', 'returns': 'int' }
+
+##
 # @ObjectPropertyInfo:
 #
 # @name: the name of the property
diff --git a/qmp-commands.hx b/qmp-commands.hx
index b370060..9c6b802 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -385,6 +385,28 @@ Note: CPUs' indexes are obtained with the 'query-cpus' command.
 EQMP
 
     {
+        .name       = "query-cpu-max",
+        .args_type  = "",
+        .mhandler.cmd_new = qmp_marshal_input_query_cpu_max,
+    },
+
+SQMP
+query-cpu-max
+-------------
+
+Get the maximum CPUs supported by the machine being currently
+emulated.
+
+Returns json-int.
+
+Example:
+
+-> { "execute": "query-cpu-max" }
+<- { "return": 255 }
+
+EQMP
+
+    {
         .name       = "memsave",
         .args_type  = "val:l,size:i,filename:s,cpu:i?",
         .mhandler.cmd_new = qmp_marshal_input_memsave,
diff --git a/vl.c b/vl.c
index aeed7f4..7643f16 100644
--- a/vl.c
+++ b/vl.c
@@ -662,6 +662,11 @@ StatusInfo *qmp_query_status(Error **errp)
     return info;
 }
 
+int64_t qmp_query_cpu_max(Error **errp)
+{
+    return current_machine->max_cpus;
+}
+
 /***********************************************************/
 /* real time host monotonic timer */
 
-- 
1.7.11.7

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

* Re: [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max
  2013-03-25 16:31 [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max Michal Novotny
@ 2013-03-25 18:37 ` Luiz Capitulino
  2013-03-26 10:48   ` Michal Novotny
  2013-03-26  7:14 ` Paolo Bonzini
  1 sibling, 1 reply; 5+ messages in thread
From: Luiz Capitulino @ 2013-03-25 18:37 UTC (permalink / raw)
  To: Michal Novotny; +Cc: qemu-devel

On Mon, 25 Mar 2013 17:31:33 +0100
Michal Novotny <minovotn@redhat.com> wrote:

> These commands return the maximum number of CPUs supported by the
> currently running emulator instance, as defined in its QEMUMachine
> struct.

I've applied this patch to the QMP tree, but with one change (see below).

> 
> Signed-off-by: Michal Novotny <minovotn@redhat.com>
> ---
>  hmp-commands.hx  | 14 ++++++++++++++
>  hmp.c            |  8 ++++++++
>  hmp.h            |  1 +
>  qapi-schema.json | 11 +++++++++++
>  qmp-commands.hx  | 22 ++++++++++++++++++++++
>  vl.c             |  5 +++++
>  6 files changed, 61 insertions(+)
> 
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index df44906..c976459 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -690,6 +690,20 @@ Set the default CPU.
>  ETEXI
>  
>      {
> +        .name       = "cpu_max",
> +        .args_type  = "",
> +        .params     = "",
> +        .help       = "Get maximum number of VCPUs supported by machine",
> +        .mhandler.cmd = hmp_query_cpu_max,
> +    },
> +
> +STEXI
> +@item cpu_max
> +@findex cpu_max
> +Returns the number of CPUs supported by the machine being emulated.
> +ETEXI

What you really want is an info command, like 'info cpu_max'. As I didn't
spot this in my first review (looks like I'm still sleeping, although it's
afternoon) I've made that change myself and applied the patch to the qmp tree.

Now, if you disagree I can drop it and we discuss the matter :)

> +
> +    {
>          .name       = "mouse_move",
>          .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
>          .params     = "dx dy [dz]",
> diff --git a/hmp.c b/hmp.c
> index b0a861c..205db8f 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -748,6 +748,14 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
>      g_free(data);
>  }
>  
> +void hmp_query_cpu_max(Monitor *mon, const QDict *qdict)
> +{
> +    int cpu_max;
> +
> +    cpu_max = qmp_query_cpu_max(NULL);
> +    monitor_printf(mon, "Maximum number of CPUs is %d\n", cpu_max);
> +}
> +
>  static void hmp_cont_cb(void *opaque, int err)
>  {
>      if (!err) {
> diff --git a/hmp.h b/hmp.h
> index 95fe76e..80e8b41 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -42,6 +42,7 @@ void hmp_stop(Monitor *mon, const QDict *qdict);
>  void hmp_system_reset(Monitor *mon, const QDict *qdict);
>  void hmp_system_powerdown(Monitor *mon, const QDict *qdict);
>  void hmp_cpu(Monitor *mon, const QDict *qdict);
> +void hmp_query_cpu_max(Monitor *mon, const QDict *qdict);
>  void hmp_memsave(Monitor *mon, const QDict *qdict);
>  void hmp_pmemsave(Monitor *mon, const QDict *qdict);
>  void hmp_ringbuf_write(Monitor *mon, const QDict *qdict);
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 088f4e1..a8187fd 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -1832,6 +1832,17 @@
>  { 'command': 'query-migrate-cache-size', 'returns': 'int' }
>  
>  ##
> +## @query-cpu-max
> +##
> +## query maximum number of CPUs supported by machine
> +##
> +## Returns: number of CPUs
> +##
> +## Since: 1.5
> +###
> +{ 'command': 'query-cpu-max', 'returns': 'int' }
> +
> +##
>  # @ObjectPropertyInfo:
>  #
>  # @name: the name of the property
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index b370060..9c6b802 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -385,6 +385,28 @@ Note: CPUs' indexes are obtained with the 'query-cpus' command.
>  EQMP
>  
>      {
> +        .name       = "query-cpu-max",
> +        .args_type  = "",
> +        .mhandler.cmd_new = qmp_marshal_input_query_cpu_max,
> +    },
> +
> +SQMP
> +query-cpu-max
> +-------------
> +
> +Get the maximum CPUs supported by the machine being currently
> +emulated.
> +
> +Returns json-int.
> +
> +Example:
> +
> +-> { "execute": "query-cpu-max" }
> +<- { "return": 255 }
> +
> +EQMP
> +
> +    {
>          .name       = "memsave",
>          .args_type  = "val:l,size:i,filename:s,cpu:i?",
>          .mhandler.cmd_new = qmp_marshal_input_memsave,
> diff --git a/vl.c b/vl.c
> index aeed7f4..7643f16 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -662,6 +662,11 @@ StatusInfo *qmp_query_status(Error **errp)
>      return info;
>  }
>  
> +int64_t qmp_query_cpu_max(Error **errp)
> +{
> +    return current_machine->max_cpus;
> +}
> +
>  /***********************************************************/
>  /* real time host monotonic timer */
>  

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

* Re: [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max
  2013-03-25 16:31 [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max Michal Novotny
  2013-03-25 18:37 ` Luiz Capitulino
@ 2013-03-26  7:14 ` Paolo Bonzini
  2013-03-26  7:24   ` Paolo Bonzini
  1 sibling, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2013-03-26  7:14 UTC (permalink / raw)
  To: Michal Novotny; +Cc: qemu-devel, lcapitulino

Il 25/03/2013 17:31, Michal Novotny ha scritto:
> These commands return the maximum number of CPUs supported by the
> currently running emulator instance, as defined in its QEMUMachine
> struct.

For HMP, I think the output could be added to "info cpus".

Paolo

> Signed-off-by: Michal Novotny <minovotn@redhat.com>
> ---
>  hmp-commands.hx  | 14 ++++++++++++++
>  hmp.c            |  8 ++++++++
>  hmp.h            |  1 +
>  qapi-schema.json | 11 +++++++++++
>  qmp-commands.hx  | 22 ++++++++++++++++++++++
>  vl.c             |  5 +++++
>  6 files changed, 61 insertions(+)
> 
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index df44906..c976459 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -690,6 +690,20 @@ Set the default CPU.
>  ETEXI
>  
>      {
> +        .name       = "cpu_max",
> +        .args_type  = "",
> +        .params     = "",
> +        .help       = "Get maximum number of VCPUs supported by machine",
> +        .mhandler.cmd = hmp_query_cpu_max,
> +    },
> +
> +STEXI
> +@item cpu_max
> +@findex cpu_max
> +Returns the number of CPUs supported by the machine being emulated.
> +ETEXI
> +
> +    {
>          .name       = "mouse_move",
>          .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
>          .params     = "dx dy [dz]",
> diff --git a/hmp.c b/hmp.c
> index b0a861c..205db8f 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -748,6 +748,14 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
>      g_free(data);
>  }
>  
> +void hmp_query_cpu_max(Monitor *mon, const QDict *qdict)
> +{
> +    int cpu_max;
> +
> +    cpu_max = qmp_query_cpu_max(NULL);
> +    monitor_printf(mon, "Maximum number of CPUs is %d\n", cpu_max);
> +}
> +
>  static void hmp_cont_cb(void *opaque, int err)
>  {
>      if (!err) {
> diff --git a/hmp.h b/hmp.h
> index 95fe76e..80e8b41 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -42,6 +42,7 @@ void hmp_stop(Monitor *mon, const QDict *qdict);
>  void hmp_system_reset(Monitor *mon, const QDict *qdict);
>  void hmp_system_powerdown(Monitor *mon, const QDict *qdict);
>  void hmp_cpu(Monitor *mon, const QDict *qdict);
> +void hmp_query_cpu_max(Monitor *mon, const QDict *qdict);
>  void hmp_memsave(Monitor *mon, const QDict *qdict);
>  void hmp_pmemsave(Monitor *mon, const QDict *qdict);
>  void hmp_ringbuf_write(Monitor *mon, const QDict *qdict);
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 088f4e1..a8187fd 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -1832,6 +1832,17 @@
>  { 'command': 'query-migrate-cache-size', 'returns': 'int' }
>  
>  ##
> +## @query-cpu-max
> +##
> +## query maximum number of CPUs supported by machine
> +##
> +## Returns: number of CPUs
> +##
> +## Since: 1.5
> +###
> +{ 'command': 'query-cpu-max', 'returns': 'int' }
> +
> +##
>  # @ObjectPropertyInfo:
>  #
>  # @name: the name of the property
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index b370060..9c6b802 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -385,6 +385,28 @@ Note: CPUs' indexes are obtained with the 'query-cpus' command.
>  EQMP
>  
>      {
> +        .name       = "query-cpu-max",
> +        .args_type  = "",
> +        .mhandler.cmd_new = qmp_marshal_input_query_cpu_max,
> +    },
> +
> +SQMP
> +query-cpu-max
> +-------------
> +
> +Get the maximum CPUs supported by the machine being currently
> +emulated.
> +
> +Returns json-int.
> +
> +Example:
> +
> +-> { "execute": "query-cpu-max" }
> +<- { "return": 255 }
> +
> +EQMP
> +
> +    {
>          .name       = "memsave",
>          .args_type  = "val:l,size:i,filename:s,cpu:i?",
>          .mhandler.cmd_new = qmp_marshal_input_memsave,
> diff --git a/vl.c b/vl.c
> index aeed7f4..7643f16 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -662,6 +662,11 @@ StatusInfo *qmp_query_status(Error **errp)
>      return info;
>  }
>  
> +int64_t qmp_query_cpu_max(Error **errp)
> +{
> +    return current_machine->max_cpus;
> +}
> +
>  /***********************************************************/
>  /* real time host monotonic timer */
>  
> 

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

* Re: [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max
  2013-03-26  7:14 ` Paolo Bonzini
@ 2013-03-26  7:24   ` Paolo Bonzini
  0 siblings, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2013-03-26  7:24 UTC (permalink / raw)
  Cc: Michal Novotny, qemu-devel, lcapitulino

Il 26/03/2013 08:14, Paolo Bonzini ha scritto:
>> > These commands return the maximum number of CPUs supported by the
>> > currently running emulator instance, as defined in its QEMUMachine
>> > struct.
> For HMP, I think the output could be added to "info cpus".

Just saw Luiz's solution, that's also good of course.

Paolo

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

* Re: [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max
  2013-03-25 18:37 ` Luiz Capitulino
@ 2013-03-26 10:48   ` Michal Novotny
  0 siblings, 0 replies; 5+ messages in thread
From: Michal Novotny @ 2013-03-26 10:48 UTC (permalink / raw)
  To: Luiz Capitulino; +Cc: qemu-devel


On 03/25/2013 07:37 PM, Luiz Capitulino wrote:
> On Mon, 25 Mar 2013 17:31:33 +0100
> Michal Novotny <minovotn@redhat.com> wrote:
>
>> These commands return the maximum number of CPUs supported by the
>> currently running emulator instance, as defined in its QEMUMachine
>> struct.
> I've applied this patch to the QMP tree, but with one change (see below).
>
>> Signed-off-by: Michal Novotny <minovotn@redhat.com>
>> ---
>>  hmp-commands.hx  | 14 ++++++++++++++
>>  hmp.c            |  8 ++++++++
>>  hmp.h            |  1 +
>>  qapi-schema.json | 11 +++++++++++
>>  qmp-commands.hx  | 22 ++++++++++++++++++++++
>>  vl.c             |  5 +++++
>>  6 files changed, 61 insertions(+)
>>
>> diff --git a/hmp-commands.hx b/hmp-commands.hx
>> index df44906..c976459 100644
>> --- a/hmp-commands.hx
>> +++ b/hmp-commands.hx
>> @@ -690,6 +690,20 @@ Set the default CPU.
>>  ETEXI
>>  
>>      {
>> +        .name       = "cpu_max",
>> +        .args_type  = "",
>> +        .params     = "",
>> +        .help       = "Get maximum number of VCPUs supported by machine",
>> +        .mhandler.cmd = hmp_query_cpu_max,
>> +    },
>> +
>> +STEXI
>> +@item cpu_max
>> +@findex cpu_max
>> +Returns the number of CPUs supported by the machine being emulated.
>> +ETEXI
> What you really want is an info command, like 'info cpu_max'. As I didn't
> spot this in my first review (looks like I'm still sleeping, although it's
> afternoon) I've made that change myself and applied the patch to the qmp tree.
>
> Now, if you disagree I can drop it and we discuss the matter :)

I'm fine with that :-)

Michal


-- 
Michal Novotny <minovotn@redhat.com>, RHCE, Red Hat
Virtualization | libvirt-php bindings | php-virt-control.org

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

end of thread, other threads:[~2013-03-26 10:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-25 16:31 [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max Michal Novotny
2013-03-25 18:37 ` Luiz Capitulino
2013-03-26 10:48   ` Michal Novotny
2013-03-26  7:14 ` Paolo Bonzini
2013-03-26  7:24   ` Paolo Bonzini

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).