All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luiz Capitulino <lcapitulino@redhat.com>
To: Michal Novotny <minovotn@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Introduce query-cpu-max QMP command and cpu_max HMP counterpart
Date: Thu, 21 Mar 2013 08:51:03 -0400	[thread overview]
Message-ID: <20130321085103.6c684e1a@doriath> (raw)
In-Reply-To: <e3a6017620c95128121a9748d7a81faf526a08f5.1363104087.git.minovotn@redhat.com>

On Tue, 12 Mar 2013 17:03:31 +0100
Michal Novotny <minovotn@redhat.com> wrote:

> This is the patch to introduce the query-cpu-max QMP command to get
> the maximum number of CPUs supported by the currently running emulator
> instance. This may differ machine from machine as defined by -machine
> settings and max_cpus member of QEMUMachine structure.
> 
> It's been tested both using QMP/qmp utility and telnet session on
> the QEMU session.

Patch looks good, but it doesn't build. See below.

> 
> The HMP counterpart called cpu_max has been introduced by this patch
> too.
> 
> Signed-off-by: Michal Novotny <minovotn@redhat.com>
> ---
>  hmp-commands.hx  | 14 ++++++++++++++
>  hmp.c            | 15 +++++++++++++++
>  hmp.h            |  1 +
>  qapi-schema.json | 11 +++++++++++
>  qmp-commands.hx  | 22 ++++++++++++++++++++++
>  vl.c             |  5 +++++
>  6 files changed, 68 insertions(+)
> 
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index 69c707d..b1224e3 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 2f47a8a..742f5c7 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -704,6 +704,21 @@ 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;
> +    Error *errp = NULL;
> +
> +    cpu_max = qmp_query_cpu_max(&errp);
> +    if (errp) {
> +        monitor_printf(mon, "%s\n", error_get_pretty(errp));
> +        error_free(errp);
> +        return;
> +    }
> +
> +    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 30b3c20..f0c3352 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -41,6 +41,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 28b070f..e828839 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 95022e2..d29de4b 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 154f7ba..e04feb0 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -632,6 +632,11 @@ StatusInfo *qmp_query_status(Error **errp)
>      return info;
>  }
>  
> +int qmp_query_cpu_max(Error **errp)

This should be int64_t, otherwise:

/home/lcapitulino/work/src/upstream/qmp-unstable/vl.c:665:5: error: conflicting types for ‘qmp_query_cpu_max’
In file included from /home/lcapitulino/work/src/upstream/qmp-unstable/vl.c:151:0:
./qmp-commands.h:117:9: note: previous declaration of ‘qmp_query_cpu_max’ was here
make: *** [vl.o] Error 1
make: *** Waiting for unfinished jobs....

I wonder why you didn't get this.

Also, as you'll respin, please fix the log message as asked by Markus and
CC us :)

> +{
> +    return current_machine->max_cpus;
> +}
> +
>  /***********************************************************/
>  /* real time host monotonic timer */
>  

  parent reply	other threads:[~2013-03-21 12:51 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-12 16:03 [Qemu-devel] [PATCH] Introduce query-cpu-max QMP command and cpu_max HMP counterpart Michal Novotny
2013-03-13 20:40 ` Eric Blake
2013-03-19 12:28 ` Markus Armbruster
2013-03-19 13:00   ` Michal Novotny
2013-03-19 13:27   ` Andreas Färber
2013-03-19 13:33     ` Michal Novotny
2013-03-21 12:51 ` Luiz Capitulino [this message]
2013-03-25 12:06   ` Michal Novotny
2013-03-25 15:52     ` Luiz Capitulino
2013-03-25 15:59       ` Michal Novotny

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=20130321085103.6c684e1a@doriath \
    --to=lcapitulino@redhat.com \
    --cc=minovotn@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.