Skip to contentSkip to conversation

qmp: remove qmp_cpu

PATCH In review Daniel Henrique Barboza 4 participants 4 messages Dec 20, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 qmp: remove qmp_cpu

'qmp_cpu' was implemented in commit 755f196898 ("qapi: Convert the cpu command") as a functional no-op, a QMP call that does nothing and return success. The idea, apparently, was to provide a counterpart for the HMP 'hmp_cpu' command, introduced in the same commit.

After 6 years of its creation, qmp_cpu remains a functional no-op that does nothing, having no value for any caller/user. A proposal was sent to implement qmp_cpu like hmp_cpu works, but it was denied [1]. The reason is that QMP must be as stateless as possible and a function that changes its state (the current CPU monitor in the case of qmp_cpu) goes against it. Any QMP command that needs a specific monitor CPU setup must provide it in its arguments, instead of relying in the current QMP monitor state.

After discussions that happened in [2] it was decided that a command that does nothing since its birth, no one uses for anything and will not be implemented, should be deprecated and erased. Given that we will *not* provide any replacement for qmp_cpu and we believe that there is no user relying on it, there is no point in adding a deprecation delay for it.

So, this patch nukes qmp_cpu from QEMU code, removing both its blank implementation in qmp.c and its doc in qapi-schema.json.

[1] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg02283.html
[2] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg03696.html

CC Markus Armbruster <[email protected]>
CC Eric Blake <[email protected]>
CC Daniel P. Berrange <[email protected]>
---
 qapi-schema.json | 11 -----------
 qmp.c            |  5 -----
 2 files changed, 16 deletions(-)
qapi-schema.json +0 -11
index 18457954a8..5c29bcd27f 100644
@@ -1046,17 +1046,6 @@
 { 'command': 'system_powerdown' }
 
 ##
-# @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.
-##
-{ 'command': 'cpu', 'data': {'index': 'int'} }
-
-##
 # @cpu-add:
 #
 # Adds CPU with specified ID
qmp.c +0 -5
index e8c303116a..52cfd2d81c 100644
@@ -113,11 +113,6 @@ void qmp_system_powerdown(Error **erp)
     qemu_system_powerdown_request();
 }
 
-void qmp_cpu(int64_t index, Error **errp)
-{
-    /* Just do nothing */
-}
-
 void qmp_cpu_add(int64_t id, Error **errp)
 {
     MachineClass *mc;
Signature · 1 line
2.13.6
Reviewed-by on v1 1/1
#1 lore raw
Quoted 27 lines · Daniel Henrique Barboza

'qmp_cpu' was implemented in commit 755f196898 ("qapi: Convert the cpu command") as a functional no-op, a QMP call that does nothing and return success. The idea, apparently, was to provide a counterpart for the HMP 'hmp_cpu' command, introduced in the same commit.

After 6 years of its creation, qmp_cpu remains a functional no-op that does nothing, having no value for any caller/user. A proposal was sent to implement qmp_cpu like hmp_cpu works, but it was denied [1]. The reason is that QMP must be as stateless as possible and a function that changes its state (the current CPU monitor in the case of qmp_cpu) goes against it. Any QMP command that needs a specific monitor CPU setup must provide it in its arguments, instead of relying in the current QMP monitor state.

After discussions that happened in [2] it was decided that a command that does nothing since its birth, no one uses for anything and will not be implemented, should be deprecated and erased. Given that we will *not* provide any replacement for qmp_cpu and we believe that there is no user relying on it, there is no point in adding a deprecation delay for it.

So, this patch nukes qmp_cpu from QEMU code, removing both its blank implementation in qmp.c and its doc in qapi-schema.json.

[1] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg02283.html
[2] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg03696.html

Quoted 8 lines
CC Markus Armbruster <[email protected]>
CC Eric Blake <[email protected]>
CC Daniel P. Berrange <[email protected]>
---
 qapi-schema.json | 11 -----------
 qmp.c            |  5 -----
 2 files changed, 16 deletions(-)
Quoted 42 lines
qapi-schema.json +0 -11
index 18457954a8..5c29bcd27f 100644
@@ -1046,17 +1046,6 @@
 { 'command': 'system_powerdown' }
 
 ##
-# @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.
-##
-{ 'command': 'cpu', 'data': {'index': 'int'} }
-
-##
 # @cpu-add:
 #
 # Adds CPU with specified ID
qmp.c +0 -5
index e8c303116a..52cfd2d81c 100644
@@ -113,11 +113,6 @@ void qmp_system_powerdown(Error **erp)
     qemu_system_powerdown_request();
 }
 
-void qmp_cpu(int64_t index, Error **errp)
-{
-    /* Just do nothing */
-}
-
 void qmp_cpu_add(int64_t id, Error **errp)
 {
     MachineClass *mc;
Signature · 1 line
2.13.6

Regards,
Daniel

Signature · 3 lines
|: 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 :|
#2 lore raw
In reply to Daniel Henrique Barboza
Quoted 24 lines · Daniel Henrique Barboza

'qmp_cpu' was implemented in commit 755f196898 ("qapi: Convert the cpu command") as a functional no-op, a QMP call that does nothing and return success. The idea, apparently, was to provide a counterpart for the HMP 'hmp_cpu' command, introduced in the same commit.

After 6 years of its creation, qmp_cpu remains a functional no-op that does nothing, having no value for any caller/user. A proposal was sent to implement qmp_cpu like hmp_cpu works, but it was denied [1]. The reason is that QMP must be as stateless as possible and a function that changes its state (the current CPU monitor in the case of qmp_cpu) goes against it. Any QMP command that needs a specific monitor CPU setup must provide it in its arguments, instead of relying in the current QMP monitor state.

After discussions that happened in [2] it was decided that a command that does nothing since its birth, no one uses for anything and will not be implemented, should be deprecated and erased. Given that we will *not* provide any replacement for qmp_cpu and we believe that there is no user relying on it, there is no point in adding a deprecation delay for it.

So, this patch nukes qmp_cpu from QEMU code, removing both its blank implementation in qmp.c and its doc in qapi-schema.json.

Quoted 7 lines

[1] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg02283.html
[2] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg03696.html

CC Markus Armbruster <[email protected]>
CC Eric Blake <[email protected]>
CC Daniel P. Berrange <[email protected]>

Lovely commit message.

I'll take this through my tree. Thanks!

Reviewed-by on v1 1/1
#3 lore raw
In reply to Daniel Henrique Barboza
Quoted 5 lines · Daniel Henrique Barboza

'qmp_cpu' was implemented in commit 755f196898 ("qapi: Convert the cpu command") as a functional no-op, a QMP call that does nothing and return success. The idea, apparently, was to provide a counterpart for the HMP 'hmp_cpu' command, introduced in the same commit.

Quoted 8 lines

After 6 years of its creation, qmp_cpu remains a functional no-op that does nothing, having no value for any caller/user. A proposal was sent to implement qmp_cpu like hmp_cpu works, but it was denied [1]. The reason is that QMP must be as stateless as possible and a function that changes its state (the current CPU monitor in the case of qmp_cpu) goes against it. Any QMP command that needs a specific monitor CPU setup must provide it in its arguments, instead of relying in the current QMP monitor state.

s/in/on/

Quoted 14 lines

After discussions that happened in [2] it was decided that a command that does nothing since its birth, no one uses for anything and will not be implemented, should be deprecated and erased. Given that we will *not* provide any replacement for qmp_cpu and we believe that there is no user relying on it, there is no point in adding a deprecation delay for it.

So, this patch nukes qmp_cpu from QEMU code, removing both its blank implementation in qmp.c and its doc in qapi-schema.json.

[1] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg02283.html
[2] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg03696.html

Quoted 8 lines
CC Markus Armbruster <[email protected]>
CC Eric Blake <[email protected]>
CC Daniel P. Berrange <[email protected]>
---
  qapi-schema.json | 11 -----------
  qmp.c            |  5 -----
  2 files changed, 16 deletions(-)

Took a while to iterate to this solution, but I love the end result.

Signature · 3 lines
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org