qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP comman


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PATCH v3] New QMP command query-cpu-max and HMP command cpu_max
Date: Mon, 25 Mar 2013 14:37:06 -0400

On Mon, 25 Mar 2013 17:31:33 +0100
Michal Novotny <address@hidden> 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 <address@hidden>
> ---
>  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
> address@hidden cpu_max
> address@hidden 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 */
>  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]