diff mbox

[v1,1/1] qmp: marking qmp_cpu as deprecated

Message ID 20171218105318.30367-1-danielhb@linux.vnet.ibm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Henrique Barboza Dec. 18, 2017, 10:53 a.m. UTC
qmp_cpu is a nop that was created a while ago in commit 755f196898
("qapi: Convert the cpu command") for the sake of compatibility,
due to the existence of hmp_cpu.

Today, there is no need or requirement to keep it as is. QMP is
meant to be as stateless as possible, thus any QMP command that
needs a specific monitor CPU setup should provide it in its
arguments, instead of relying in the current QMP monitor state.

This patch flags qmp_cpu as deprecated in qemu-doc.texi and changes
qmp_cpu body to show a deprecation message if used.

Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
---
Although I've changed the behavior of qmp_cpu to return an error
instead of doing nothing, no errors were found in the Travis
build of the patch. Code inspection confirms that qmp_cpu isn't
being used in QEMU.

A quick inspection in Libvirt code shows that there is no reference
to 'qmp_cpu' there either, but to be sure I've CCed Daniel here
so he can comment/confirm if Libvirt does not care for this change.

 qemu-doc.texi | 6 ++++++
 qmp.c         | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

Daniel P. Berrangé Dec. 18, 2017, 10:59 a.m. UTC | #1
On Mon, Dec 18, 2017 at 08:53:18AM -0200, Daniel Henrique Barboza wrote:
> qmp_cpu is a nop that was created a while ago in commit 755f196898
> ("qapi: Convert the cpu command") for the sake of compatibility,
> due to the existence of hmp_cpu.
> 
> Today, there is no need or requirement to keep it as is. QMP is
> meant to be as stateless as possible, thus any QMP command that
> needs a specific monitor CPU setup should provide it in its
> arguments, instead of relying in the current QMP monitor state.
> 
> This patch flags qmp_cpu as deprecated in qemu-doc.texi and changes
> qmp_cpu body to show a deprecation message if used.
> 
> Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
> ---
> Although I've changed the behavior of qmp_cpu to return an error
> instead of doing nothing, no errors were found in the Travis
> build of the patch. Code inspection confirms that qmp_cpu isn't
> being used in QEMU.
> 
> A quick inspection in Libvirt code shows that there is no reference
> to 'qmp_cpu' there either, but to be sure I've CCed Daniel here
> so he can comment/confirm if Libvirt does not care for this change.
> 
>  qemu-doc.texi | 6 ++++++
>  qmp.c         | 2 +-
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/qemu-doc.texi b/qemu-doc.texi
> index f7317dfc66..2b63f9a325 100644
> --- a/qemu-doc.texi
> +++ b/qemu-doc.texi
> @@ -2516,6 +2516,12 @@ subsystem image.
>  The ``convert -s snapshot_id_or_name'' argument is obsoleted
>  by the ``convert -l snapshot_param'' argument instead.
>  
> +@section System emulator machine protocol commands
> +
> +@subsection qmp_cpu (since 2.12.0)
> +
> +The ``qmp_cpu'' command is deprecated. Do not use this command.

Just saying it is deprecated doesn't add any useful info, rather
explain why it is deprecated & what (if anything) to use instead.
e.g.

  The ``qmp_cpu'' command is a functional no-op. There is no reason
  to invoke this command and it will be removed with no replacement.

>  @subsection host_net_add (since 2.10.0)
> diff --git a/qmp.c b/qmp.c
> index e8c303116a..d8543d713d 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -115,7 +115,7 @@ void qmp_system_powerdown(Error **erp)
>  
>  void qmp_cpu(int64_t index, Error **errp)
>  {
> -    /* Just do nothing */
> +    error_setg(errp, "qmp_cpu is deprecated, do not use this command");
>  }
>  
>  void qmp_cpu_add(int64_t id, Error **errp)

Regards,
Daniel
Daniel Henrique Barboza Dec. 18, 2017, 11:55 a.m. UTC | #2
On 12/18/2017 08:59 AM, Daniel P. Berrange wrote:
> On Mon, Dec 18, 2017 at 08:53:18AM -0200, Daniel Henrique Barboza wrote:
>> qmp_cpu is a nop that was created a while ago in commit 755f196898
>> ("qapi: Convert the cpu command") for the sake of compatibility,
>> due to the existence of hmp_cpu.
>>
>> Today, there is no need or requirement to keep it as is. QMP is
>> meant to be as stateless as possible, thus any QMP command that
>> needs a specific monitor CPU setup should provide it in its
>> arguments, instead of relying in the current QMP monitor state.
>>
>> This patch flags qmp_cpu as deprecated in qemu-doc.texi and changes
>> qmp_cpu body to show a deprecation message if used.
>>
>> Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
>> ---
>> Although I've changed the behavior of qmp_cpu to return an error
>> instead of doing nothing, no errors were found in the Travis
>> build of the patch. Code inspection confirms that qmp_cpu isn't
>> being used in QEMU.
>>
>> A quick inspection in Libvirt code shows that there is no reference
>> to 'qmp_cpu' there either, but to be sure I've CCed Daniel here
>> so he can comment/confirm if Libvirt does not care for this change.
>>
>>   qemu-doc.texi | 6 ++++++
>>   qmp.c         | 2 +-
>>   2 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/qemu-doc.texi b/qemu-doc.texi
>> index f7317dfc66..2b63f9a325 100644
>> --- a/qemu-doc.texi
>> +++ b/qemu-doc.texi
>> @@ -2516,6 +2516,12 @@ subsystem image.
>>   The ``convert -s snapshot_id_or_name'' argument is obsoleted
>>   by the ``convert -l snapshot_param'' argument instead.
>>   
>> +@section System emulator machine protocol commands
>> +
>> +@subsection qmp_cpu (since 2.12.0)
>> +
>> +The ``qmp_cpu'' command is deprecated. Do not use this command.
> Just saying it is deprecated doesn't add any useful info, rather
> explain why it is deprecated & what (if anything) to use instead.
> e.g.
>
>    The ``qmp_cpu'' command is a functional no-op. There is no reason
>    to invoke this command and it will be removed with no replacement.

Thanks, I'll add more info in qemu-doc.texi in the next version.

Also, just checked that I didn't touch qapi-schema.json. This is how
it reads about qmp_cpu:


# This command is a nop that is only provided for the purposes of 
compatibility.
#
# Since: 0.14.0
#
# Notes: Do not use this command.

Should we change it to mention that the command is deprecated, something 
like:

# Notes: Do not use this command - it is deprecated and will disappear 
in the future.


Or just adding the deprecation note in qemu-doc.texi is enough?




>
>>   @subsection host_net_add (since 2.10.0)
>> diff --git a/qmp.c b/qmp.c
>> index e8c303116a..d8543d713d 100644
>> --- a/qmp.c
>> +++ b/qmp.c
>> @@ -115,7 +115,7 @@ void qmp_system_powerdown(Error **erp)
>>   
>>   void qmp_cpu(int64_t index, Error **errp)
>>   {
>> -    /* Just do nothing */
>> +    error_setg(errp, "qmp_cpu is deprecated, do not use this command");
>>   }
>>   
>>   void qmp_cpu_add(int64_t id, Error **errp)
> Regards,
> Daniel
Daniel P. Berrangé Dec. 18, 2017, 12:01 p.m. UTC | #3
On Mon, Dec 18, 2017 at 09:55:55AM -0200, Daniel Henrique Barboza wrote:
> 
> 
> On 12/18/2017 08:59 AM, Daniel P. Berrange wrote:
> > On Mon, Dec 18, 2017 at 08:53:18AM -0200, Daniel Henrique Barboza wrote:
> > > qmp_cpu is a nop that was created a while ago in commit 755f196898
> > > ("qapi: Convert the cpu command") for the sake of compatibility,
> > > due to the existence of hmp_cpu.
> > > 
> > > Today, there is no need or requirement to keep it as is. QMP is
> > > meant to be as stateless as possible, thus any QMP command that
> > > needs a specific monitor CPU setup should provide it in its
> > > arguments, instead of relying in the current QMP monitor state.
> > > 
> > > This patch flags qmp_cpu as deprecated in qemu-doc.texi and changes
> > > qmp_cpu body to show a deprecation message if used.
> > > 
> > > Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
> > > ---
> > > Although I've changed the behavior of qmp_cpu to return an error
> > > instead of doing nothing, no errors were found in the Travis
> > > build of the patch. Code inspection confirms that qmp_cpu isn't
> > > being used in QEMU.
> > > 
> > > A quick inspection in Libvirt code shows that there is no reference
> > > to 'qmp_cpu' there either, but to be sure I've CCed Daniel here
> > > so he can comment/confirm if Libvirt does not care for this change.
> > > 
> > >   qemu-doc.texi | 6 ++++++
> > >   qmp.c         | 2 +-
> > >   2 files changed, 7 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/qemu-doc.texi b/qemu-doc.texi
> > > index f7317dfc66..2b63f9a325 100644
> > > --- a/qemu-doc.texi
> > > +++ b/qemu-doc.texi
> > > @@ -2516,6 +2516,12 @@ subsystem image.
> > >   The ``convert -s snapshot_id_or_name'' argument is obsoleted
> > >   by the ``convert -l snapshot_param'' argument instead.
> > > +@section System emulator machine protocol commands
> > > +
> > > +@subsection qmp_cpu (since 2.12.0)
> > > +
> > > +The ``qmp_cpu'' command is deprecated. Do not use this command.
> > Just saying it is deprecated doesn't add any useful info, rather
> > explain why it is deprecated & what (if anything) to use instead.
> > e.g.
> > 
> >    The ``qmp_cpu'' command is a functional no-op. There is no reason
> >    to invoke this command and it will be removed with no replacement.
> 
> Thanks, I'll add more info in qemu-doc.texi in the next version.
> 
> Also, just checked that I didn't touch qapi-schema.json. This is how
> it reads about qmp_cpu:
> 
> 
> # This command is a nop that is only provided for the purposes of
> compatibility.
> #
> # Since: 0.14.0
> #
> # Notes: Do not use this command.
> 
> Should we change it to mention that the command is deprecated, something
> like:
> 
> # Notes: Do not use this command - it is deprecated and will disappear in
> the future.
> 
> 
> Or just adding the deprecation note in qemu-doc.texi is enough?

Lets modify the QAPI file too, since you never know what users will read
first !

Regards,
Daniel
satheesh rajendran Dec. 18, 2017, 3:05 p.m. UTC | #4
On Mon, Dec 18, 2017 at 12:01:44PM +0000, Daniel P. Berrange wrote:
> On Mon, Dec 18, 2017 at 09:55:55AM -0200, Daniel Henrique Barboza wrote:
> > 
> > 
> > On 12/18/2017 08:59 AM, Daniel P. Berrange wrote:
> > > On Mon, Dec 18, 2017 at 08:53:18AM -0200, Daniel Henrique Barboza wrote:
> > > > qmp_cpu is a nop that was created a while ago in commit 755f196898
> > > > ("qapi: Convert the cpu command") for the sake of compatibility,
> > > > due to the existence of hmp_cpu.
> > > > 
> > > > Today, there is no need or requirement to keep it as is. QMP is
> > > > meant to be as stateless as possible, thus any QMP command that
> > > > needs a specific monitor CPU setup should provide it in its
> > > > arguments, instead of relying in the current QMP monitor state.
> > > > 
> > > > This patch flags qmp_cpu as deprecated in qemu-doc.texi and changes
> > > > qmp_cpu body to show a deprecation message if used.
> > > > 
> > > > Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
> > > > ---
> > > > Although I've changed the behavior of qmp_cpu to return an error
> > > > instead of doing nothing, no errors were found in the Travis
> > > > build of the patch. Code inspection confirms that qmp_cpu isn't
> > > > being used in QEMU.
> > > > 
> > > > A quick inspection in Libvirt code shows that there is no reference
> > > > to 'qmp_cpu' there either, but to be sure I've CCed Daniel here
> > > > so he can comment/confirm if Libvirt does not care for this change.
> > > > 
> > > >   qemu-doc.texi | 6 ++++++
> > > >   qmp.c         | 2 +-
> > > >   2 files changed, 7 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/qemu-doc.texi b/qemu-doc.texi
> > > > index f7317dfc66..2b63f9a325 100644
> > > > --- a/qemu-doc.texi
> > > > +++ b/qemu-doc.texi
> > > > @@ -2516,6 +2516,12 @@ subsystem image.
> > > >   The ``convert -s snapshot_id_or_name'' argument is obsoleted
> > > >   by the ``convert -l snapshot_param'' argument instead.
> > > > +@section System emulator machine protocol commands
> > > > +
> > > > +@subsection qmp_cpu (since 2.12.0)
> > > > +
> > > > +The ``qmp_cpu'' command is deprecated. Do not use this command.
> > > Just saying it is deprecated doesn't add any useful info, rather
> > > explain why it is deprecated & what (if anything) to use instead.
> > > e.g.
> > > 
> > >    The ``qmp_cpu'' command is a functional no-op. There is no reason
> > >    to invoke this command and it will be removed with no replacement.
> > 
> > Thanks, I'll add more info in qemu-doc.texi in the next version.
> > 
> > Also, just checked that I didn't touch qapi-schema.json. This is how
> > it reads about qmp_cpu:
> > 
> > 
> > # This command is a nop that is only provided for the purposes of
> > compatibility.
> > #
> > # Since: 0.14.0
> > #
> > # Notes: Do not use this command.
> > 
> > Should we change it to mention that the command is deprecated, something
> > like:
> > 
> > # Notes: Do not use this command - it is deprecated and will disappear in
> > the future.
> > 
> > 
> > Or just adding the deprecation note in qemu-doc.texi is enough?
> 
> Lets modify the QAPI file too, since you never know what users will read
> first !
+1

Regards,
-Satheesh.
> 
> Regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
>
diff mbox

Patch

diff --git a/qemu-doc.texi b/qemu-doc.texi
index f7317dfc66..2b63f9a325 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -2516,6 +2516,12 @@  subsystem image.
 The ``convert -s snapshot_id_or_name'' argument is obsoleted
 by the ``convert -l snapshot_param'' argument instead.
 
+@section System emulator machine protocol commands
+
+@subsection qmp_cpu (since 2.12.0)
+
+The ``qmp_cpu'' command is deprecated. Do not use this command.
+
 @section System emulator human monitor commands
 
 @subsection host_net_add (since 2.10.0)
diff --git a/qmp.c b/qmp.c
index e8c303116a..d8543d713d 100644
--- a/qmp.c
+++ b/qmp.c
@@ -115,7 +115,7 @@  void qmp_system_powerdown(Error **erp)
 
 void qmp_cpu(int64_t index, Error **errp)
 {
-    /* Just do nothing */
+    error_setg(errp, "qmp_cpu is deprecated, do not use this command");
 }
 
 void qmp_cpu_add(int64_t id, Error **errp)