diff mbox series

[v3,5/5] qapi: deprecate CpuInfoFast.arch

Message ID 20180427192852.15013-6-lersek@redhat.com
State New
Headers show
Series None | expand

Commit Message

Laszlo Ersek April 27, 2018, 7:28 p.m. UTC
The TARGET_BASE_ARCH values from "configure" don't all map to the
@CpuInfoArch enum constants; in particular "s390x" from the former does
not match @s390 in the latter. Clients are known to rely on the @s390
constant specifically, so we can't change it silently. Instead, deprecate
the @CpuInfoFast.@arch member (in favor of @CpuInfoFast.@target) using the
regular deprecation process.

(No deprecation reminder is added to sysemu_target_to_cpuinfo_arch(): once
@CpuInfoFast.@arch is removed, the assignment expression that calls
sysemu_target_to_cpuinfo_arch() from qmp_query_cpus_fast() will have to
disappear; in turn the static function left without callers will also
break the build, thus it'll have to go.)

Cc: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---

Notes:
    PATCHv3:
    
    - new patch [Markus, Eric]

 qapi/misc.json | 8 ++++----
 qemu-doc.texi  | 5 +++++
 2 files changed, 9 insertions(+), 4 deletions(-)

Comments

Eric Blake April 27, 2018, 7:55 p.m. UTC | #1
On 04/27/2018 02:28 PM, Laszlo Ersek wrote:
> The TARGET_BASE_ARCH values from "configure" don't all map to the
> @CpuInfoArch enum constants; in particular "s390x" from the former does
> not match @s390 in the latter. Clients are known to rely on the @s390
> constant specifically, so we can't change it silently. Instead, deprecate
> the @CpuInfoFast.@arch member (in favor of @CpuInfoFast.@target) using the
> regular deprecation process.
> 
> (No deprecation reminder is added to sysemu_target_to_cpuinfo_arch(): once
> @CpuInfoFast.@arch is removed, the assignment expression that calls
> sysemu_target_to_cpuinfo_arch() from qmp_query_cpus_fast() will have to
> disappear; in turn the static function left without callers will also
> break the build, thus it'll have to go.)
> 
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
> 

Reviewed-by: Eric Blake <eblake@redhat.com>
Markus Armbruster May 2, 2018, 7:56 a.m. UTC | #2
Laszlo Ersek <lersek@redhat.com> writes:

> The TARGET_BASE_ARCH values from "configure" don't all map to the
> @CpuInfoArch enum constants; in particular "s390x" from the former does
> not match @s390 in the latter. Clients are known to rely on the @s390
> constant specifically, so we can't change it silently. Instead, deprecate
> the @CpuInfoFast.@arch member (in favor of @CpuInfoFast.@target) using the
> regular deprecation process.
>
> (No deprecation reminder is added to sysemu_target_to_cpuinfo_arch(): once
> @CpuInfoFast.@arch is removed, the assignment expression that calls
> sysemu_target_to_cpuinfo_arch() from qmp_query_cpus_fast() will have to
> disappear; in turn the static function left without callers will also
> break the build, thus it'll have to go.)
>
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>

Reviewed-by: Markus Armbruster <armbru@redhat.com>
diff mbox series

Patch

diff --git a/qapi/misc.json b/qapi/misc.json
index fa4eec7b6b63..f5988cc0b52d 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -550,27 +550,27 @@ 
 # Information about a virtual CPU
 #
 # @cpu-index: index of the virtual CPU
 #
 # @qom-path: path to the CPU object in the QOM tree
 #
 # @thread-id: ID of the underlying host thread
 #
 # @props: properties describing to which node/socket/core/thread
 #         virtual CPU belongs to, provided if supported by board
 #
-# @arch: base architecture of the cpu
+# @arch: base architecture of the cpu; deprecated since 2.13.0 in favor
+#        of @target
 #
-# @target: the QEMU system emulation target, which is more specific than
-#          @arch and determines which additional fields will be listed
-#          (since 2.13)
+# @target: the QEMU system emulation target, which determines which
+#          additional fields will be listed (since 2.13)
 #
 # Since: 2.12
 #
 ##
 { 'union'         : 'CpuInfoFast',
   'base'          : { 'cpu-index'    : 'int',
                       'qom-path'     : 'str',
                       'thread-id'    : 'int',
                       '*props'       : 'CpuInstanceProperties',
                       'arch'         : 'CpuInfoArch',
                       'target'       : 'SysEmuTarget' },
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 5813d276156a..0ed0f19e6bab 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -2941,22 +2941,27 @@  by the ``convert -l snapshot_param'' argument instead.
 @section QEMU Machine Protocol (QMP) commands
 
 @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)
 
 "autoload" parameter is now ignored. All bitmaps are automatically loaded
 from qcow2 images.
 
 @subsection query-cpus (since 2.12.0)
 
 The ``query-cpus'' command is replaced by the ``query-cpus-fast'' command.
 
+@subsection query-cpus-fast "arch" output member (since 2.13.0)
+
+The ``arch'' output member of the ``query-cpus-fast'' command is
+replaced by the ``target'' output member.
+
 @section System emulator devices
 
 @subsection ivshmem (since 2.6.0)
 
 The ``ivshmem'' device type is replaced by either the ``ivshmem-plain''
 or ``ivshmem-doorbell`` device types.
 
 @subsection Page size support < 4k for embedded PowerPC CPUs (since 2.12.0)
 
 qemu-system-ppcemb will be removed. qemu-system-ppc (or qemu-system-ppc64)
 should be used instead. That means that embedded 4xx PowerPC CPUs will not