All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org,
	Kevin Wolf <kwolf@redhat.com>, Max Reitz <mreitz@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Michael Roth <mdroth@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH v1 0/6] Report format specific info for LUKS block driver
Date: Tue, 7 Jun 2016 15:35:48 +0100	[thread overview]
Message-ID: <20160607143548.GF20196@redhat.com> (raw)
In-Reply-To: <5756B854.9080600@redhat.com>

On Tue, Jun 07, 2016 at 06:04:36AM -0600, Eric Blake wrote:
> On 06/07/2016 04:11 AM, Daniel P. Berrange wrote:
> >         uuid: 6ddee74b-3a22-408c-8909-6789d4fa2594
> >         slots:
> >             [0]:
> >                 active: true
> >                 iters: 572706
> >                 stripes: 4000
> >                 key-offset: 8
> >             [1]:
> >                 active: false
> >                 iters: 0
> >                 stripes: 4000
> >                 key-offset: 264
> >             [2]:
> >                 active: false
> >                 iters: 0
> >                 stripes: 4000
> >                 key-offset: 520
> 
> Is it worth making iters/stripes optional, and present only when active
> is true?  key-offset, on the other hand, should always be present.

NB stripes is actually fixed at time of creation even if the slot is
not active, but agre we could omit it, not least since it'll be the
same for every slot anyway.

> > The remaining 4 patches are improvements to QAPI and the core
> > block layer to fix a problem whereby struct fields are output
> > in (apparently) random ordering. This is because the QAPI type
> > is converted into a QObject for pretty-printing, thus throwing
> > away any struct field ordering information.
> > 
> > To address this I created a new TextOutputVisitor which can
> > directly pretty-print QAPI types. I then changed the code
> > generator to create qapi_stringify_TYPENAME() methods for
> > all QAPI types. Finally I changed the block layer over to
> > use this stringify approach instead.
> 
> Umm, how much does that duplicate my work on adding the JSON pretty
> printer, which DOES print JSON in the same order as the underlying QAPI
> struct?  I still need to address Markus' latest reviews, but suspect we
> may be able to combine efforts rather than duplicating.

Looking at your code, it seems we've basically got a similar
kind of structure to our visitors, but of course you're using
the qstring routines to format in JSON, where as my visitor
is doing a pretty-plain text formatting that's intended to be
identical to what "qemu-img info" currently reports in plain
text mode.

> > I'm not sure if QAPI maintainers will find the idea of adding
> > qapi_stringify_TYPENAME() methods desirable or not. It is of
> > course valid to directly use the TextOutputVisitor from the
> > block layer. I felt there might be some use in debugging to
> > have a convenient qapi_stringify_TYPENAME() method around
> > though - personally I often find it helpful to be able to
> > easily dump an QAPI object or any QObject to a humand friendly
> > format for debugging and the less code I need write to add
> > this temporary debug output the better.
> 
> I agree with that sentiment, but being able to dump directly to JSON
> without going through an intermediate QObject may already be what you want.

We'd have to write something that took the JSON string, parsed it
and then pretty-printed in plain text. This actally sounds like
more work than a visitor that directly outputs pretty plain text.

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:[~2016-06-07 14:36 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-07 10:11 [Qemu-devel] [PATCH v1 0/6] Report format specific info for LUKS block driver Daniel P. Berrange
2016-06-07 10:11 ` [Qemu-devel] [PATCH v1 1/6] crypto: add support for querying parameters for block encryption Daniel P. Berrange
2016-06-07 14:17   ` Eric Blake
2016-06-07 10:11 ` [Qemu-devel] [PATCH v1 2/6] block: export LUKS specific data to qemu-img info Daniel P. Berrange
2016-06-07 15:36   ` Eric Blake
2016-06-07 15:51     ` Daniel P. Berrange
2016-06-07 16:11       ` Eric Blake
2016-06-07 10:11 ` [Qemu-devel] [PATCH v1 3/6] qapi: assert that visitor impls have required callbacks Daniel P. Berrange
2016-06-07 15:40   ` Eric Blake
2016-06-07 15:46     ` Daniel P. Berrange
2016-06-07 10:11 ` [Qemu-devel] [PATCH v1 4/6] qapi: add a text output visitor for pretty printing types Daniel P. Berrange
2016-06-07 16:09   ` Eric Blake
2016-06-07 16:20     ` Daniel P. Berrange
2016-06-07 16:40       ` Eric Blake
2016-06-07 16:45         ` Daniel P. Berrange
2016-06-07 10:11 ` [Qemu-devel] [PATCH v1 5/6] qapi: generate a qapi_stringify_TYPENAME method for all types Daniel P. Berrange
2016-06-07 16:23   ` Eric Blake
2016-06-07 10:11 ` [Qemu-devel] [PATCH v1 6/6] block: convert to use qapi_stringify_ImageInfoSpecific Daniel P. Berrange
2016-06-07 16:59   ` Eric Blake
2016-06-07 12:04 ` [Qemu-devel] [PATCH v1 0/6] Report format specific info for LUKS block driver Eric Blake
2016-06-07 14:35   ` Daniel P. Berrange [this message]
2016-06-14 13:56 ` Max Reitz
2016-06-14 14:05   ` Daniel P. Berrange

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=20160607143548.GF20196@redhat.com \
    --to=berrange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=eblake@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --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 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.