Steve Sistare <steven.sist...@oracle.com> writes: > Use qom-list-get to speed up the qom-tree command. > > Signed-off-by: Steve Sistare <steven.sist...@oracle.com>
Quick test... Differences in output before and after match expectations (see appended diff). New version: real 0m0.446s user 0m0.062s sys 0m0.017s Old version barfs a stack backtrace (appended), and is ~18x slower: real 0m8.176s user 0m0.395s sys 0m0.126s Did you see the stack backtrace, too? Regardless Acked-by: Markus Armbruster <arm...@redhat.com> $ diff old new 59c59 < rtc-time: {'tm_year': 125, 'tm_sec': 24, 'tm_hour': 14, 'tm_min': 39, 'tm_mon': 6, 'tm_mday': 11} (struct tm) --- > rtc-time: {'tm_year': 125, 'tm_sec': 28, 'tm_hour': 14, 'tm_min': 40, > 'tm_mon': 6, 'tm_mday': 11} (struct tm) 486c486 < date: {'tm_year': 125, 'tm_sec': 25, 'tm_hour': 14, 'tm_min': 39, 'tm_mon': 6, 'tm_mday': 11} (struct tm) --- > date: {'tm_year': 125, 'tm_sec': 28, 'tm_hour': 14, 'tm_min': 40, 'tm_mon': > 6, 'tm_mday': 11} (struct tm) 832c832 < legacy-memory: <EXCEPTION: Property 'qemu64-x86_64-cpu.legacy-memory' is not readable> (str) --- > legacy-memory: <EXCEPTION: property could not be read> (str) 1109c1109 < crash-information: <EXCEPTION: No crash occurred> (GuestPanicInformation) --- > crash-information: <EXCEPTION: property could not be read> > (GuestPanicInformation) 1554c1554 < legacy-i8042: <EXCEPTION: Property 'vmmouse.legacy-i8042' is not readable> (str) --- > legacy-i8042: <EXCEPTION: property could not be read> (str) 2436c2436 < legacy-iothread: <EXCEPTION: Property 'virtio-blk-device.legacy-iothread' is not readable> (str) --- > legacy-iothread: <EXCEPTION: property could not be read> (str) 2493c2493 < legacy-iothread: <EXCEPTION: Property 'virtio-blk-device.legacy-iothread' is not readable> (str) --- > legacy-iothread: <EXCEPTION: property could not be read> (str) Exception ignored in: <function QEMUMonitorProtocol.__del__ at 0x7fcfcd080d60> Traceback (most recent call last): File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/legacy.py", line 310, in __del__ self.close() File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/legacy.py", line 281, in close self._sync( File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/legacy.py", line 102, in _sync return self._aloop.run_until_complete( File "/usr/lib64/python3.13/asyncio/base_events.py", line 719, in run_until_complete return future.result() File "/usr/lib64/python3.13/asyncio/tasks.py", line 507, in wait_for return await fut File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/protocol.py", line 399, in disconnect await self._wait_disconnect() File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/protocol.py", line 719, in _wait_disconnect await all_defined_tasks # Raise Exceptions from the bottom half. File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/protocol.py", line 870, in _bh_loop_forever await async_fn() RuntimeError: cannot reuse already awaited coroutine