From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Peter Crosthwaite" <peter.crosthwaite@xilinx.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Luiz Capitulino" <lcapitulino@redhat.com>,
"Hani Benhabiles" <hani@linux.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: [Qemu-devel] [PATCH v2 0/9] qom: HMP commands to supersede info qtree
Date: Thu, 12 Mar 2015 17:43:35 +0100 [thread overview]
Message-ID: <1426178624-32638-1-git-send-email-afaerber@suse.de> (raw)
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 <hani@linux.com>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
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
next reply other threads:[~2015-03-12 16:43 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-12 16:43 Andreas Färber [this message]
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 1/9] scripts: Add qom-tree script Andreas Färber
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 2/9] qom: Implement qom-list HMP command Andreas Färber
2015-03-13 1:32 ` Gonglei
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 3/9] qom: Implement qom-set " Andreas Färber
2015-03-13 1:34 ` Gonglei
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 4/9] qom: Implement info qom-tree " Andreas Färber
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 5/9] qapi: Stub out StringOutputVisitor struct support Andreas Färber
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 6/9] qom: Implement qom-get HMP command Andreas Färber
2015-03-13 1:36 ` Gonglei
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 7/9] qom: Add verbose option to info qom-tree " Andreas Färber
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 8/9] memory: Move owner-less MemoryRegions to /machine/unattached Andreas Färber
2015-03-12 18:05 ` Paolo Bonzini
2015-03-12 19:16 ` Andreas Färber
2015-03-12 16:43 ` [Qemu-devel] [PATCH v2 9/9] qdev: Move owner-less IRQs " Andreas Färber
2015-03-13 1:30 ` [Qemu-devel] [PATCH v2 0/9] qom: HMP commands to supersede info qtree Gonglei
2015-03-17 5:15 ` Alistair Francis
2015-03-17 7:33 ` Markus Armbruster
2015-03-17 17:17 ` Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1426178624-32638-1-git-send-email-afaerber@suse.de \
--to=afaerber@suse.de \
--cc=armbru@redhat.com \
--cc=hani@linux.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).