From: Max Reitz <mreitz@redhat.com>
To: Eric Blake <eblake@redhat.com>, qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
qemu-devel@nongnu.org, Luiz Capitulino <lcapitulino@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 00/16] qapi: Allow blockdev-add for NBD
Date: Tue, 1 Mar 2016 00:37:14 +0100 [thread overview]
Message-ID: <56D4D62A.3060905@redhat.com> (raw)
In-Reply-To: <56D4D314.2070405@redhat.com>
[-- Attachment #1.1: Type: text/plain, Size: 3440 bytes --]
On 01.03.2016 00:24, Eric Blake wrote:
> On 02/29/2016 04:19 PM, Max Reitz wrote:
>> Turns out NBD is not so simple to do if you do it right. Anyway, this
>> series adds blockdev-add support for NBD clients.
>>
>> Patches 1 and 2 add one less and one more complicated QDict function,
>> respectively, which I needed in later NBD patches: Patch 1 for handling
>> legacy options (move "host" to "address.data.host" etc.) and patch 2
>> because I'd like to use the input visitor for transforming the NBD
>> options into a SocketAddress. Unfortunately, the block layer uses
>> flattened QDicts everywhere, so we'll have to unflatten (erect?) them
>> before we can use that visitor.
>
> Dan had a patch proposal that called the operation "crumple"; I need to
> review both proposals and see which one I like.
> https://lists.gnu.org/archive/html/qemu-devel/2016-02/msg04618.html
Well, here I go again, not looking at patches on the list...
Looking at the design, I like his idea of having an escape sequence;
also, his qdict_crumple() can return boths lists and dicts where my
qdict_unflatten() only returns dicts (then again, this is what
qdict_flatten() always works on). And his patch doesn't suffer from as
much indentation as mine does.
What I like more about my patch, however, is that I'm reusing
qdict_array_split() and qdict_array_entries(). That is mostly because my
function modifies the given QDict, where Dan's does not.
>>
>> Patch 3 adds a test for qdict_unflatten().
>>
>> Patches 4, 5, 6, and 7 are minor patches with no functional relation to
>> this series, other than later patches will touch the code they touch,
>> too.
>>
>> Patches 8 and 9 prepare the code for the addition of a new option
>> prefix, which is "address.".
>>
>> Patch 10 makes the NBD client accept a SocketAddress under the "address"
>> option (or rather, a flattened SocketAddress QDict with its keys
>> prefixed by "address."). The old options "host", "port", and "path" are
>> supported as legacy options and translated to the respective
>> SocketAddress representation.
>>
>> Patch 11 drops usage of "host", "port", and "path" outside of
>> nbd_has_filename_options_conflict(),
>> nbd_process_legacy_socket_options(), and nbd_refresh_filename(), making
>> those options nothing but legacy.
>>
>> Patch 12, the goal of this series, is again not very complicated.
>>
>> Patches 13, 14, and 15 are required for the iotest added in patch 16. It
>> will invoke qemu-nbd, so patch 13 is required. Besides qemu-nbd, it will
>> launch an NBD server VM concurrently to the client VM, which is why
>> patch 14 is required. And finally, it will test whether we can add an
>> NBD BDS by passing it a file descriptor, which patch 15 is needed for
>> (so we use the socket_scm_helper to pass sockets to qemu).
>>
>> Patch 16 then adds the iotest for NBD's blockdev-add interface.
>>
>>
>> Note on the relation to v1: As you can see, most of this series is
>> completely new. Patch 5 was patch 1 in v1, and the only thing that has
>> changed is that I removed the full stop at the end of the error message;
>> consequently I kept Eric's R-b.
>
> Looks like my review queue is getting longer because I (like several
> other people) are trying to post last-minute series before soft freeze.
So is mine. :-)
Yes, during the last week I had to prioritize patches over reviewing.
Max
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
next prev parent reply other threads:[~2016-02-29 23:37 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-29 23:19 [Qemu-devel] [PATCH v2 00/16] qapi: Allow blockdev-add for NBD Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 01/16] qdict: Add qdict_change_key() Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 02/16] qdict: Add qdict_unflatten() Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 03/16] check-qdict: Add a test for qdict_unflatten() Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 04/16] block/nbd: Drop trailing "." in error messages Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 05/16] block/nbd: Reject port parameter without host Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 06/16] block/nbd: Default port in nbd_refresh_filename() Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 07/16] block/nbd: Use qdict_put() Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 08/16] block/nbd: Add nbd_has_filename_options_conflict() Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 09/16] block/nbd: "address" in nbd_refresh_filename() Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 10/16] block/nbd: Accept SocketAddress Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 11/16] block/nbd: Use SocketAddress options Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 12/16] qapi: Allow blockdev-add for NBD Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 13/16] iotests.py: Add qemu_nbd function Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 14/16] iotests.py: Allow concurrent qemu instances Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 15/16] socket_scm_helper: Accept fd directly Max Reitz
2016-02-29 23:19 ` [Qemu-devel] [PATCH v2 16/16] iotests: Add test for NBD's blockdev-add interface Max Reitz
2016-02-29 23:24 ` [Qemu-devel] [PATCH v2 00/16] qapi: Allow blockdev-add for NBD Eric Blake
2016-02-29 23:37 ` Max Reitz [this message]
2016-03-01 10:00 ` Daniel P. Berrange
2016-03-01 10:12 ` 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=56D4D62A.3060905@redhat.com \
--to=mreitz@redhat.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@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.