From: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Cc: "Markus Armbruster" <armbru@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
qemu-devel@nongnu.org,
"Dr. David Alan Gilbert" <dave@treblig.org>,
"Daniel P.Berrangé" <berrange@redhat.com>,
qemu-ppc@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Peter Maydell" <peter.maydell@linaro.org>
Subject: Re: Examining device state via monitor for debugging
Date: Tue, 11 Jun 2024 09:58:12 +0300 [thread overview]
Message-ID: <CAAjaMXad7b7SvAkAmvt+4RuLqZoTGCpELN0YMoVu7xGazwPRug@mail.gmail.com> (raw)
In-Reply-To: <e0d03597-a9d1-4386-83b4-519aae23f679@ilande.co.uk>
On Tue, 11 Jun 2024 at 09:11, Mark Cave-Ayland
<mark.cave-ayland@ilande.co.uk> wrote:
>
> 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.
This is starting to sound like OOP: A Monitor interface defines
monitor commands, and QOM type classes can implement/define their own.
A Debug interface would do this.
next prev parent reply other threads:[~2024-06-11 6:59 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-10 15:07 [PATCH 0/2] hw/misc/mos6522: Do not open-code hmp_info_human_readable_text() Philippe Mathieu-Daudé
2024-06-10 15:07 ` [PATCH 1/2] hw/misc/mos6522: Expose x-query-mos6522-devices QMP command Philippe Mathieu-Daudé
2024-06-10 17:08 ` Daniel P. Berrangé
2024-06-11 5:36 ` Markus Armbruster
2024-06-10 15:07 ` [PATCH 2/2] hw/misc/mos6522: Do not open-code hmp_info_human_readable_text() Philippe Mathieu-Daudé
2024-06-10 17:09 ` Daniel P. Berrangé
2024-06-11 5:49 ` Examining device state via monitor for debugging (was: [PATCH 0/2] hw/misc/mos6522: Do not open-code hmp_info_human_readable_text()) Markus Armbruster
2024-06-11 6:09 ` Examining device state via monitor for debugging Mark Cave-Ayland
2024-06-11 6:58 ` Manos Pitsidianakis [this message]
2024-06-11 8:06 ` Mark Cave-Ayland
2024-06-11 7:57 ` Examining device state via monitor for debugging (was: [PATCH 0/2] hw/misc/mos6522: Do not open-code hmp_info_human_readable_text()) Daniel P. Berrangé
2024-06-11 8:13 ` Examining device state via monitor for debugging Mark Cave-Ayland
2024-06-11 8:46 ` Daniel P. Berrangé
2024-06-11 8:30 ` Examining device state via monitor for debugging (was: [PATCH 0/2] hw/misc/mos6522: Do not open-code hmp_info_human_readable_text()) Peter Maydell
2024-06-11 12:23 ` Dr. David Alan Gilbert
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=CAAjaMXad7b7SvAkAmvt+4RuLqZoTGCpELN0YMoVu7xGazwPRug@mail.gmail.com \
--to=manos.pitsidianakis@linaro.org \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dave@treblig.org \
--cc=eduardo@habkost.net \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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).