qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 0/9] qom: HMP commands to supersede info qtree


From: Andreas Färber
Subject: [Qemu-devel] [PATCH v2 0/9] qom: HMP commands to supersede info qtree
Date: Thu, 12 Mar 2015 17:43:35 +0100

Hello,

The main patch of this series is an HMP command "info qom-tree",
which displays the machine composition tree. This names all objects,
including those missing in "info qtree" for lack of bus or for not being a 
device.

Properties can be listed with "qom-list" and set with "qom-set", like in QMP.

"qom-get" and displaying properties as part of "info qom-tree" ran into
StringOutputVisitor limitations - this v2 therefore stubs that support out
so that we don't crash.

This series has been around for a year now; I hope to get at least qom-list and
the basic info qom-tree into v2.3, as visualization of my upcoming CPU changes.

Also included are two proposed cleanups of nodes in /machine namespace.
By making it easier to inspect the tree, I hope we'll detect this earlier.

Regards,
Andreas

v1 -> v2:
* Included qom-tree script in series, updating Anthony's email address (Eric)
  and dropping reference to "info qtree" from subject (Paolo);
  script did otherwise not change, so leaving 2013 copyright
* Renamed from "info qom-composition" to "info qom-tree" (Hani/Paolo)
* Renamed functions from do_* to hmp_* according to changed surrounding code
* Simplified qom-list according to Hani's suggestion
* Added warning for ambiguous paths to qom-set (Hani)
* Added patch stubbing out StringOutputVisitor struct support for qom-get (Hani)
* Added documentation for info qom-tree
* Implemented "info qom-tree /foo" and "info qom-tree -v" options
* Added patch cleaning up MemoryRegion nodes from /machine
* Added patch cleaning up IRQ nodes from /machine

$ ./x86_64-softmmu/qemu-system-x86_64 -S -display none -monitor stdio
QEMU 2.0.50 monitor - type 'help' for more information
(qemu) info qom-tree
/machine (pc-i440fx-2.1-machine)
  /peripheral-anon (container)
  /peripheral (container)
  /unattached (container)
    /sysbus (System)
    /device[0] (qemu64-x86_64-cpu)
      /apic (apic)
    /device[1] (kvmvapic)
    /device[2] (i440FX)
    /device[3] (PIIX3)
      /isa.0 (ISA)
    /device[4] (isa-i8259)
    /device[5] (isa-i8259)
    /device[6] (cirrus-vga)
    /device[7] (hpet)
    /device[8] (mc146818rtc)
    /device[9] (isa-pit)
    /device[10] (isa-pcspk)
    /device[11] (isa-serial)
    /device[12] (isa-parallel)
    /device[13] (i8042)
    /device[14] (vmport)
    /device[15] (vmmouse)
    /device[16] (port92)
    /device[17] (isa-fdc)
    /device[18] (e1000)
    /device[19] (piix3-ide)
      /ide.0 (IDE)
      /ide.1 (IDE)
    /device[20] (ide-cd)
    /device[21] (PIIX4_PM)
      /i2c (i2c-bus)
    /device[22] (smbus-eeprom)
    /device[23] (smbus-eeprom)
    /device[24] (smbus-eeprom)
    /device[25] (smbus-eeprom)
    /device[26] (smbus-eeprom)
    /device[27] (smbus-eeprom)
    /device[28] (smbus-eeprom)
    /device[29] (smbus-eeprom)
  /icc-bridge (icc-bridge)
    /icc (icc-bus)
  /fw_cfg (fw_cfg)
  /i440fx (i440FX-pcihost)
    /pci.0 (PCI)
    /ioapic (ioapic)
(qemu) qom-list
/
(qemu) qom-list /
backend (child<container>)
machine (child<pc-i440fx-2.1-machine>)
type (string)
(qemu) qom-list /machine
i440fx (child<i440FX-pcihost>)
fw_cfg (child<fw_cfg>)
icc-bridge (child<icc-bridge>)
unattached (child<container>)
peripheral (child<container>)
peripheral-anon (child<container>)
type (string)
(qemu) qom-get /machine type
"pc-i440fx-2.1-machine"
(qemu) qom-get /machine/unassigned/device[0] realized
Device '/machine/unassigned/device[0]' not found
(qemu) qom-get /machine/unattached/device[0] realized
true
(qemu) qom-set /machine/unattached/device[0] realized true
(qemu) qom-set /machine/unattached/device[0] realized false
(qemu) 

Cc: Hani Benhabiles <address@hidden>
Cc: Luiz Capitulino <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Cc: Markus Armbruster <address@hidden>
Cc: Eric Blake <address@hidden>
Cc: Peter Crosthwaite <address@hidden>

Andreas Färber (9):
  scripts: Add qom-tree script
  qom: Implement qom-list HMP command
  qom: Implement qom-set HMP command
  qom: Implement info qom-tree HMP command
  qapi: Stub out StringOutputVisitor struct support
  qom: Implement qom-get HMP command
  qom: Add verbose option to info qom-tree HMP command
  memory: Move owner-less MemoryRegions to /machine/unattached
  qdev: Move owner-less IRQs to /machine/unattached

 hmp-commands.hx              | 41 ++++++++++++++++++++
 hmp.c                        | 69 +++++++++++++++++++++++++++++++++
 hmp.h                        |  3 ++
 hw/core/qdev.c               |  5 ++-
 include/monitor/qdev.h       |  1 +
 memory.c                     |  2 +-
 monitor.c                    |  7 ++++
 qapi/string-output-visitor.c | 14 +++++++
 qdev-monitor.c               | 92 ++++++++++++++++++++++++++++++++++++++++++++
 scripts/qmp/qom-tree         | 70 +++++++++++++++++++++++++++++++++
 10 files changed, 301 insertions(+), 3 deletions(-)
 create mode 100755 scripts/qmp/qom-tree

-- 
2.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]