* [Qemu-devel] [PATCH v2] New QMP command query-cpu-max and HMP command cpu_max
@ 2013-03-25 15:58 Michal Novotny
2013-03-25 16:13 ` Luiz Capitulino
0 siblings, 1 reply; 5+ messages in thread
From: Michal Novotny @ 2013-03-25 15:58 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 | 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 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..6d5674f 100644
--- a/hmp.c
+++ b/hmp.c
@@ -748,6 +748,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 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 v2] New QMP command query-cpu-max and HMP command cpu_max
2013-03-25 15:58 [Qemu-devel] [PATCH v2] New QMP command query-cpu-max and HMP command cpu_max Michal Novotny
@ 2013-03-25 16:13 ` Luiz Capitulino
2013-03-25 16:24 ` Michal Novotny
0 siblings, 1 reply; 5+ messages in thread
From: Luiz Capitulino @ 2013-03-25 16:13 UTC (permalink / raw)
To: Michal Novotny; +Cc: qemu-devel
On Mon, 25 Mar 2013 16:58:50 +0100
Michal Novotny <minovotn@redhat.com> wrote:
> These commands return the maximum number of CPUs supported by the
/These commands/This command
> currently running emulator instance, as defined in its QEMUMachine
> struct.
>
> 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 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..6d5674f 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -748,6 +748,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;
> + }
Sorry for not noticing this before, but you can pass NULL to
qmp_query_cpu_max(), as it never fails.
> +
> + 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 v2] New QMP command query-cpu-max and HMP command cpu_max
2013-03-25 16:13 ` Luiz Capitulino
@ 2013-03-25 16:24 ` Michal Novotny
2013-03-25 16:27 ` Luiz Capitulino
0 siblings, 1 reply; 5+ messages in thread
From: Michal Novotny @ 2013-03-25 16:24 UTC (permalink / raw)
To: Luiz Capitulino; +Cc: qemu-devel
On 03/25/2013 05:13 PM, Luiz Capitulino wrote:
> On Mon, 25 Mar 2013 16:58:50 +0100
> Michal Novotny <minovotn@redhat.com> wrote:
>
>> These commands return the maximum number of CPUs supported by the
> /These commands/This command
I meant both of them - both QMP (query-cpu-max) one HMP (cpu_max) one.
>
>> currently running emulator instance, as defined in its QEMUMachine
>> struct.
>>
>> 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 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..6d5674f 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -748,6 +748,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;
>> + }
> Sorry for not noticing this before, but you can pass NULL to
> qmp_query_cpu_max(), as it never fails.
Ok, I just went according to the docs and there was no mention about
it's possible to pass NULL. I don't know what magic qemu does with that
one so I rather don't pass NULL. However, respin necessary?
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
* Re: [Qemu-devel] [PATCH v2] New QMP command query-cpu-max and HMP command cpu_max
2013-03-25 16:24 ` Michal Novotny
@ 2013-03-25 16:27 ` Luiz Capitulino
2013-03-25 16:31 ` Michal Novotny
0 siblings, 1 reply; 5+ messages in thread
From: Luiz Capitulino @ 2013-03-25 16:27 UTC (permalink / raw)
To: Michal Novotny; +Cc: qemu-devel
On Mon, 25 Mar 2013 17:24:02 +0100
Michal Novotny <minovotn@redhat.com> wrote:
> >> +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;
> >> + }
> > Sorry for not noticing this before, but you can pass NULL to
> > qmp_query_cpu_max(), as it never fails.
>
>
> Ok, I just went according to the docs and there was no mention about
> it's possible to pass NULL. I don't know what magic qemu does with that
> one so I rather don't pass NULL. However, respin necessary?
If you look in hmp.c you'll see examples of this. Please respin, otherwise
we'll be committing code that is never used.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v2] New QMP command query-cpu-max and HMP command cpu_max
2013-03-25 16:27 ` Luiz Capitulino
@ 2013-03-25 16:31 ` Michal Novotny
0 siblings, 0 replies; 5+ messages in thread
From: Michal Novotny @ 2013-03-25 16:31 UTC (permalink / raw)
To: Luiz Capitulino; +Cc: qemu-devel
Version 3 sent to both you and list.
Michal
On 03/25/2013 05:27 PM, Luiz Capitulino wrote:
> On Mon, 25 Mar 2013 17:24:02 +0100
> Michal Novotny <minovotn@redhat.com> wrote:
>
>>>> +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;
>>>> + }
>>> Sorry for not noticing this before, but you can pass NULL to
>>> qmp_query_cpu_max(), as it never fails.
>>
>> Ok, I just went according to the docs and there was no mention about
>> it's possible to pass NULL. I don't know what magic qemu does with that
>> one so I rather don't pass NULL. However, respin necessary?
> If you look in hmp.c you'll see examples of this. Please respin, otherwise
> we'll be committing code that is never used.
--
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-25 22:17 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-25 15:58 [Qemu-devel] [PATCH v2] New QMP command query-cpu-max and HMP command cpu_max Michal Novotny
2013-03-25 16:13 ` Luiz Capitulino
2013-03-25 16:24 ` Michal Novotny
2013-03-25 16:27 ` Luiz Capitulino
2013-03-25 16:31 ` Michal Novotny
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).