Skip to content

qdev path reworks & basic device state visualization

Jan Kiszka qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v4 Latest23 patches 22 repliesIn review

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/23qdev: Rework qtree path abbreviationshw/qdev.c qerror.c qerror.h+4 -252 replies
2/23qdev: Restrict direct bus addressing via its namehw/qdev.c+7 -153 replies
3/23qdev: Drop ID matching from qtree pathshw/qdev.c+4 -124 replies
4/23qdev: Allow device addressing via 'driver.instance'docs/qdev-device-use.txt hw/qdev.c+51 -101 reply
5/23qdev: Convert device and bus lists to QTAILQhw/acpi_piix4.c hw/i2c.c hw/pci-hotplug.c +3 more+31 -300 replies
6/23qdev: Push QMP mode checks into qbus_list_bus/devhw/qdev.c+8 -60 replies
7/23qdev: Allow device specification by qtree path for device_delhw/qdev.c qemu-monitor.hx+65 -201 reply
8/23qdev: Introduce qdev_iterate_recursivehw/qdev.c hw/qdev.h+28 -41 reply
9/23monitor: Fix leakage during completion processingmonitor.c+15 -80 replies
10/23monitor: Fix command completion vs. boolean switchesmonitor.c+1 -10 replies
11/23monitor: Add completion support for option listsmonitor.c qemu-monitor.hx+58 -127 replies
12/23monitor: Add completion for qdev pathshw/qdev.c hw/qdev.h monitor.c +1 more+129 -121 reply
13/23monitor: Allow to specify HMP-specifc command argumentsmonitor.c+3 -21 reply
14/23monitor: return length of printed string via monitor_[v]printfmonitor.c monitor.h qemu-tool.c+21 -121 reply
15/23monitor: Establish cmd flags and convert the async tagmonitor.c monitor.h qemu-monitor.hx+7 -40 replies
16/23monitor: Allow to exclude commands from QMPmonitor.c monitor.h+16 -30 replies
17/23Add base64 encoder/decoderMakefile.objs base64.c base64.h+222 -10 replies
18/23QMP: Reserve namespace for complex object classesQMP/qmp-spec.txt+13 -30 replies
19/23QMP: Add QBufferMakefile Makefile.objs QMP/qmp-spec.txt +6 more+351 -50 replies
20/23monitor: Add basic device state visualizationhw/hw.h hw/qdev.c hw/qdev.h +3 more+279 -00 replies
21/23QMP: Teach basic capability negotiation to python exampleQMP/qmp-shell QMP/vm-info+2 -00 replies
22/23QMP: Fix python helper /wrt long return stringsQMP/qmp.py+5 -10 replies
23/23QMP: Add support for buffer class to qmp python helperQMP/qmp.py+23 -20 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v4 yet.

Read the v4 thread

Cover letter [Qemu-devel] [PATCH v4 00/23] qdev path reworks & basic device state visualization

This is v4 of this series. Besides small fixes, it's main focus is on the groundwork for the visualization command: qdev path usability.

The significant changes are:
- drop many of the inconsistent or ambiguous qtree abbreviations
- devices can now be address via unique ID (no '/' allowed here) or an absolute path (must start with '/')
- buses remain addressable via their ambiguous local name (mostly to avoid libvirt breakages) or their absolute path
- the per-bus instance numbers introduced in this series are now printed consistently
- monitor command completion inside option lists is added (allows to expand "device_add ...,bus=" and "drive=")
- HMP commands can now have their own argument set (not yet urgently needed for device_show but likely already useful for other commands)

Git url as usual:

git://git.kiszka.org/qemu.git queues/device-show

Thanks once again for comments. Hope we can soon agree on a mergable version for 0.13.

Jan Kiszka (23):
qdev: Rework qtree path abbreviations
qdev: Restrict direct bus addressing via its name
qdev: Drop ID matching from qtree paths
qdev: Allow device addressing via 'driver.instance'
qdev: Convert device and bus lists to QTAILQ
qdev: Push QMP mode checks into qbus_list_bus/dev
qdev: Allow device specification by qtree path for device_del
qdev: Introduce qdev_iterate_recursive
monitor: Fix leakage during completion processing
monitor: Fix command completion vs. boolean switches
monitor: Add completion support for option lists
monitor: Add completion for qdev paths
monitor: Allow to specify HMP-specifc command arguments
monitor: return length of printed string via monitor_[v]printf
monitor: Establish cmd flags and convert the async tag
monitor: Allow to exclude commands from QMP
Add base64 encoder/decoder
QMP: Reserve namespace for complex object classes
QMP: Add QBuffer
monitor: Add basic device state visualization
QMP: Teach basic capability negotiation to python example
QMP: Fix python helper /wrt long return strings
QMP: Add support for buffer class to qmp python helper

 Makefile                 |    5 +-
 Makefile.objs            |    4 +-
 QMP/qmp-shell            |    1 +
 QMP/qmp-spec.txt         |   24 ++-
 QMP/qmp.py               |   29 +++-
 QMP/vm-info              |    1 +
 base64.c                 |  202 +++++++++++++++++++
 base64.h                 |   19 ++
 check-qbuffer.c          |  172 ++++++++++++++++
 configure                |    2 +-
 docs/qdev-device-use.txt |   13 ++-
 hw/acpi_piix4.c          |    2 +-
 hw/hw.h                  |    2 +
 hw/i2c.c                 |    2 +-
 hw/pci-hotplug.c         |    2 +-
 hw/qdev.c                |  488 ++++++++++++++++++++++++++++++++++++++--------
 hw/qdev.h                |   16 ++-
 hw/ssi.c                 |    6 +-
 monitor.c                |  258 +++++++++++++++++++++----
 monitor.h                |    8 +-
 qbuffer.c                |  116 +++++++++++
 qbuffer.h                |   33 +++
 qemu-monitor.hx          |   34 +++-
 qemu-tool.c              |    6 +-
 qerror.c                 |    8 +-
 qerror.h                 |    6 +-
 qjson.c                  |   15 ++
 qobject.h                |    1 +
 28 files changed, 1315 insertions(+), 160 deletions(-)
 create mode 100644 base64.c
 create mode 100644 base64.h
 create mode 100644 check-qbuffer.c
 create mode 100644 qbuffer.c
 create mode 100644 qbuffer.h