Skip to content

Commit

Permalink
qmp: Deprecate 'singlestep' member of StatusInfo
Browse files Browse the repository at this point in the history
The 'singlestep' member of StatusInfo has never done what the QMP
documentation claims it does.  What it actually reports is whether
TCG is working in "one guest instruction per translation block" mode.

We no longer need this field for the HMP 'info status' command, as
we've moved that information to 'info jit'.  It seems unlikely that
anybody is monitoring the state of this obscure TCG setting via QMP,
especially since QMP provides no means for changing the setting.  So
simply deprecate the field, without providing any replacement.

Until we do eventually delete the member, correct the misstatements
in the QAPI documentation about it.

If we do find that there are users for this, then the most likely way
we would provide replacement access to the information would be to
put the accelerator QOM object at a well-known path such as
/machine/accel, which could then be used with the existing qom-set
and qom-get commands.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 20230417164041.684562-11-peter.maydell@linaro.org
  • Loading branch information
pm215 committed May 2, 2023
1 parent 6d916ba commit c5ecfb8
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
14 changes: 14 additions & 0 deletions docs/about/deprecated.rst
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,20 @@ accepted incorrect commands will return an error. Users should make sure that
all arguments passed to ``device_add`` are consistent with the documented
property types.

``StatusInfo`` member ``singlestep`` (since 8.1)
''''''''''''''''''''''''''''''''''''''''''''''''

The ``singlestep`` member of the ``StatusInfo`` returned from the
``query-status`` command is deprecated. This member has a confusing
name and it never did what the documentation claimed or what its name
suggests. We do not believe that anybody is actually using the
information provided in this member.

The information it reports is whether the TCG JIT is in "one
instruction per translated block" mode (which can be set on the
command line or via the HMP, but not via QMP). The information remains
available via the HMP 'info jit' command.

Human Monitor Protocol (HMP) commands
-------------------------------------

Expand Down
14 changes: 11 additions & 3 deletions qapi/run-state.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,16 +104,24 @@
#
# @running: true if all VCPUs are runnable, false if not runnable
#
# @singlestep: true if VCPUs are in single-step mode
# @singlestep: true if using TCG with one guest instruction
# per translation block
#
# @status: the virtual machine @RunState
#
# Features:
# @deprecated: Member 'singlestep' is deprecated (with no replacement).
#
# Since: 0.14
#
# Notes: @singlestep is enabled through the GDB stub
# Notes: @singlestep is enabled on the command line with
# '-accel tcg,one-insn-per-tb=on', or with the HMP
# 'one-insn-per-tb' command.
##
{ 'struct': 'StatusInfo',
'data': {'running': 'bool', 'singlestep': 'bool', 'status': 'RunState'} }
'data': {'running': 'bool',
'singlestep': { 'type': 'bool', 'features': [ 'deprecated' ]},
'status': 'RunState'} }

##
# @query-status:
Expand Down

0 comments on commit c5ecfb8

Please sign in to comment.