qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Michael Roth <mdroth@linux.vnet.ibm.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH RFC v5 30/32] qapi: New QMP command query-qmp-schema for QMP introspection
Date: Fri, 11 Sep 2015 09:33:53 +0100	[thread overview]
Message-ID: <20150911083353.GA21525@redhat.com> (raw)
In-Reply-To: <87mvwtzbew.fsf@blackfin.pond.sub.org>

On Fri, Sep 11, 2015 at 09:02:15AM +0200, Markus Armbruster wrote:
> Michael Roth <mdroth@linux.vnet.ibm.com> writes:
> 
> > Quoting Markus Armbruster (2015-09-07 05:16:41)
> >> A new test-qmp-input-visitor test case feeds its result for both
> >> tests/qapi-schema/qapi-schema-test.json and qapi-schema.json to a
> >> QmpInputVisitor to verify it actually conforms to the schema.
> >> 
> >> New QMP command query-qmp-schema takes its return value from that
> >> variable.  Its reply is some 85KiBytes for me right now.
> >> 
> >> If this turns out to be too much, we have a couple of options:
> >> 
> >> * We can use shorter names in the JSON.  Not the QMP style.
> >> 
> >> * Optionally return the sub-schema for commands and events given as
> >>   arguments.
> >> 
> >>   Right now qmp_query_schema() sends the string literal computed by
> >>   qmp-introspect.py.  To compute sub-schema at run time, we'd have to
> >>   duplicate parts of qapi-introspect.py in C.  Unattractive.
> >> 
> >> * Let clients cache the output of query-qmp-schema.
> >> 
> >>   It changes only on QEMU upgrades, i.e. rarely.  Provide a command
> >>   query-qmp-schema-hash.  Clients can have a cache indexed by hash,
> >>   and re-query the schema only when they don't have it cached.  Even
> >>   simpler: put the hash in the QMP greeting.
> >
> > Would probably be easier for management to build up their own structure
> > for querying caps, so I think a computed hash seems best. But I don't
> > think either is something that couldn't be added later if need be.
> 
> I also think a hash is the way to go, and I'd like to provide one early,
> but I don't want to delay this series for it.

FWIW, libvirt already caches the results of its query of QEMU and will
only re-query QEMU if the timestamp of the QEMU binary on disk has
changed, or if libvirt itself has changed.  Also when querying the QEMU
capabilities there are quite a few commands we run, we want to cache
the full set, not just query-qmp-schema, so we can avoid launching QEMU
at all. o at least from Libvirt's POV, I don't think we have a need for
a hash of query-qmp-schema.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

  reply	other threads:[~2015-09-11  8:34 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-07 10:16 [Qemu-devel] [PATCH RFC v5 00/32] qapi: QMP introspection Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 01/32] qapi: Rename class QAPISchema to QAPISchemaParser Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 02/32] qapi: New QAPISchema intermediate reperesentation Markus Armbruster
2015-09-08  3:38   ` Eric Blake
2015-09-09  7:47     ` Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 03/32] qapi: QAPISchema code generation helper methods Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 04/32] qapi: New QAPISchemaVisitor Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 05/32] tests/qapi-schema: Convert test harness to QAPISchemaVisitor Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 06/32] qapi: Split up some typedefs to ease review Markus Armbruster
2015-09-08 12:25   ` Eric Blake
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 07/32] qapi: Generate comments to simplify splitting for review Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 08/32] Revert "qapi: Generate comments to simplify splitting for review" Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 09/32] Revert "qapi: Split up some typedefs to ease review" Markus Armbruster
2015-09-08 12:26   ` Eric Blake
2015-09-08 12:58     ` Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 10/32] qapi-types: Convert to QAPISchemaVisitor, fixing flat unions Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 11/32] qapi-visit: Convert to QAPISchemaVisitor, fixing bugs Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 12/32] qapi-commands: Convert to QAPISchemaVisitor Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 13/32] qapi: De-duplicate enum code generation Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 14/32] qapi-event: Eliminate global variable event_enum_value Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 15/32] qapi-event: Convert to QAPISchemaVisitor, fixing data with base Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 16/32] qapi: Generate comments to simplify splitting for review Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 17/32] Revert "qapi: Generate comments to simplify splitting for review" Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 18/32] qapi: Replace dirty is_c_ptr() by method c_null() Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 19/32] qapi: Clean up after recent conversions to QAPISchemaVisitor Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 20/32] qapi-visit: Rearrange code a bit Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 21/32] qapi-commands: Rearrange code Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 22/32] qapi: Rename qmp_marshal_input_FOO() to qmp_marshal_FOO() Markus Armbruster
2015-09-08 14:50   ` Eric Blake
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 23/32] qapi: De-duplicate parameter list generation Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 24/32] qapi-commands: De-duplicate output marshaling functions Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 25/32] qapi: Improve built-in type documentation Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 26/32] qapi: Introduce a first class 'any' type Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 27/32] qom: Don't use 'gen': false for qom-get, qom-set, object-add Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 28/32] qapi-schema: Fix up misleading specification of netdev_add Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 29/32] qapi: Pseudo-type '**' is now unused, drop it Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 30/32] qapi: New QMP command query-qmp-schema for QMP introspection Markus Armbruster
2015-09-08 16:11   ` Eric Blake
2015-09-08 18:48     ` Markus Armbruster
2015-09-08 20:06   ` Eric Blake
2015-09-09  6:31     ` Markus Armbruster
2015-09-10 22:12   ` Michael Roth
2015-09-11  7:02     ` Markus Armbruster
2015-09-11  8:33       ` Daniel P. Berrange [this message]
2015-09-11 13:30         ` Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 31/32] qapi-introspect: Map all integer types to 'int' Markus Armbruster
2015-09-07 10:16 ` [Qemu-devel] [PATCH RFC v5 32/32] qapi-introspect: Hide type names Markus Armbruster
2015-09-11  7:06 ` [Qemu-devel] [PATCH RFC v5 00/32] qapi: QMP introspection Markus Armbruster
2015-09-15 18:13 ` Markus Armbruster

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=20150911083353.GA21525@redhat.com \
    --to=berrange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@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).