All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Anthony Liguori <anthony@codemonkey.ws>,
	Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Michael Roth <mdroth@linux.vnet.ibm.com>,
	Andreas Faerber <afaerber@suse.de>,
	Anthony Liguori <aliguori@amazon.com>,
	Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] QOM vs QAPI for QMP APIs
Date: Fri, 21 Feb 2014 14:00:42 -0700	[thread overview]
Message-ID: <5307BE7A.5050007@redhat.com> (raw)
In-Reply-To: <530764B0.40500@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2047 bytes --]

On 02/21/2014 07:37 AM, Paolo Bonzini wrote:
>> I have no objection to introducing a QMP command.
>>
>> I think qom-find-objects-by-class is a reasonable approach but I would
>> also consider just grouping all of the IOThreads in a well known path
>> instead of just having them live in /objects.  So something like
>> /objects/threads/thread0/pid.
> 
> /objects is the namespace for -object, but a similar idea is that
> objects could create links of themselves under other paths.  So you
> would have /threads where you can list iothread objects or /backend/rng
> for RNG backends.
> 
> Still Stefan doesn't like the idea of sending O(n) commands to query the
> thread ID of n iothread objects.

The other burden is documenting what QOM paths to be queried, and
knowing where to find that documentation.  That is, it's another layer
of complexity, but it's also a more powerful expression.

I'm comparing this situation somewhat to libvirt's 'virsh
qemu-monitor-command' vs. other libvirt commands.  qemu-monitor-command
is a more powerful interface (via libvirt, you can issue ANY qmp
command), and is therefore great for development for testing something
that libvirt has not yet supported; but not so nice to the end user
(it's use is explicitly unsupported).  What happens is that as people
say "I had to use qemu-monitor-command to do task A", it is a hint to
libvirt development to say "oh, we need to add an API to make task A
easier to do".

Thus, having qom-find-objects-by-class is a good idea, even if it is
more awkward to use than a dedicated qmp command.  But meanwhile, we
should watch what common patterns it gets used for, and add dedicated
QMP commands for those patterns.  It's much faster to get a chunk of
information in one QMP call already formatted into desired structs than
it is to make a series of QMP calls to learn about the lower-level qom
model one piece at a time.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  reply	other threads:[~2014-02-21 21:01 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-21  9:16 [Qemu-devel] QOM vs QAPI for QMP APIs Stefan Hajnoczi
2014-02-21 14:29 ` Anthony Liguori
2014-02-21 14:37   ` Paolo Bonzini
2014-02-21 21:00     ` Eric Blake [this message]
2014-02-24  8:29       ` Markus Armbruster
2014-02-24 16:08         ` Eric Blake
2014-02-25  8:25           ` Markus Armbruster
2014-02-25  8:30             ` Andreas Färber
2014-02-25  8:30             ` Paolo Bonzini
2014-02-25  8:33               ` Andreas Färber
2014-02-21 14:32 ` Stefan Hajnoczi
2014-02-25  9:46   ` Kevin Wolf
2014-02-25 10:15     ` Stefan Hajnoczi
2014-02-25 10:47       ` Paolo Bonzini
2014-02-25 13:39         ` Kevin Wolf

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=5307BE7A.5050007@redhat.com \
    --to=eblake@redhat.com \
    --cc=afaerber@suse.de \
    --cc=aliguori@amazon.com \
    --cc=anthony@codemonkey.ws \
    --cc=lcapitulino@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.