|
From: | Mark Cave-Ayland |
Subject: | Re: Examining device state via monitor for debugging |
Date: | Tue, 11 Jun 2024 07:09:56 +0100 |
User-agent: | Mozilla Thunderbird |
On 11/06/2024 06:49, Markus Armbruster wrote:
Philippe Mathieu-Daudé <philmd@linaro.org> writes:Officialise the QMP command, use the existing hmp_info_human_readable_text() helper.I'm not sure "officialise" is a word :) Taking a step back... "info via" and its new QMP counterpart x-query-mos6522-devices dump device state. I understand why examining device state via monitor can be useful for debugging. However, we have more than 2000 devices in the tree. Clearly, we don't want 2000 device state queries. Not even 100. Could we have more generic means instead? We could use QOM (read-only) properties to expose device state. If we use one QOM property per "thing", examining device state becomes quite tedious. Also, you'd have to stop the guest to get a consistent view, and adding lots of QOM properties bloats the code. If we use a single, object-valued property for the entire state, we get to define the objects in QAPI. Differently tedious, and bloats the generated code. We could use a single string-valued property. Too much of an abuse of QOM? We could add an optional "dump state for debugging" method to QOM, and have a single query command that calls it if present. Thoughts?
I agree that there should be a better way of doing things here. The aim of the original "info via" series was to allow the command to be contained completely within mos6522.c, but unfortunately due to the way that qemu-options.hx works then you end up with #ifdef-fery or stubs to make all configuration combinations work.
As you point out ideally there should be a way for a QOM object to dynamically register its own monitor commands, which I think should help with this.
IIRC in the original thread Daniel or David proposed a new "debug" monitor command such that a device could register its own debug <foo> commands either via DeviceClass or a function called during realize that would return a HumanReadableText via QMP.
In terms of "info via" it is only used by developers for the 68k and PPC Mac machines so if it were to change from "info via" to "debug via" I don't see there would be a big problem with this.
ATB, Mark.
[Prev in Thread] | Current Thread | [Next in Thread] |