From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58672) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YW6DB-0001BX-7n for qemu-devel@nongnu.org; Thu, 12 Mar 2015 12:43:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YW6D5-0001KE-Jg for qemu-devel@nongnu.org; Thu, 12 Mar 2015 12:43:53 -0400 Received: from cantor2.suse.de ([195.135.220.15]:47922 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YW6D5-0001Jx-8u for qemu-devel@nongnu.org; Thu, 12 Mar 2015 12:43:47 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Thu, 12 Mar 2015 17:43:35 +0100 Message-Id: <1426178624-32638-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v2 0/9] qom: HMP commands to supersede info qtree List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Crosthwaite , Markus Armbruster , Luiz Capitulino , Hani Benhabiles , Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= 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 ou= t so that we don't crash. This series has been around for a year now; I hope to get at least qom-li= st and the basic info qom-tree into v2.3, as visualization of my upcoming CPU ch= anges. 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 (E= ric) 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 c= ode * 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) machine (child) type (string) (qemu) qom-list /machine i440fx (child) fw_cfg (child) icc-bridge (child) unattached (child) peripheral (child) peripheral-anon (child) 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)=20 Cc: Hani Benhabiles Cc: Luiz Capitulino Cc: Paolo Bonzini Cc: Markus Armbruster Cc: Eric Blake Cc: Peter Crosthwaite Andreas F=C3=A4rber (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 --=20 2.1.4