From: Max Reitz <mreitz@redhat.com>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 1/4] block-commit: Expose granularity
Date: Mon, 07 Apr 2014 21:10:49 +0200 [thread overview]
Message-ID: <5342F839.6030309@redhat.com> (raw)
In-Reply-To: <5342F722.90503@redhat.com>
On 07.04.2014 21:06, Eric Blake wrote:
> On 04/07/2014 11:29 AM, Max Reitz wrote:
>> Allow QMP users to manipulate the granularity used in the block-commit
>> command.
>>
>> Signed-off-by: Max Reitz <mreitz@redhat.com>
>> ---
>> @@ -214,6 +215,13 @@ void commit_start(BlockDriverState *bs, BlockDriverState *base,
>> orig_base_flags = bdrv_get_flags(base);
>> orig_overlay_flags = bdrv_get_flags(overlay_bs);
>>
>> + if (!granularity) {
>> + granularity = COMMIT_BUFFER_SIZE;
>> + }
> Default granularity of 0 becomes buffer size...
>
>> @@ -1876,6 +1876,15 @@ void qmp_block_commit(const char *device,
>> */
>> BlockdevOnError on_error = BLOCKDEV_ON_ERROR_REPORT;
>>
>> + granularity = has_granularity ? granularity : 0;
>> +
>> + if (has_granularity &&
>> + (granularity < BDRV_SECTOR_SIZE || (granularity & (granularity - 1))))
>> + {
>> + error_set(errp, QERR_INVALID_PARAMETER, "granularity");
> ...but this code rejects attempts for me to explicitly set granularity
> to the default. Should it be 'if (granularity &&' instead of your
> current wording?
I intentionally rejected a granularity of 0, as I thought the user were
always capable of dropping this parameter for obtaining the default. But
since you are bringing this up, I guess there may be cases where a user
is forced to give the parameter but wants to keep the default value
nonetheless; I will change it to accept 0 in v2.
> Also, is it worth using qemu-common.h's is_power_of_2 instead of
> inlining it yourself? (I don't care, as I recognize the bit
> manipulations, but other readers might prefer the named version for its
> legibility)
You are right, I will use the function from qemu-common.h.
Max
>> +++ b/qapi-schema.json
>> @@ -2112,6 +2112,9 @@
>> #
>> # @speed: #optional the maximum speed, in bytes per second
>> #
>> +# @granularity: #optional the granularity to be used for the operation, in
>> +# bytes; has to be a power of two and at least 512 (since 2.1)
>> +#
> At least you documented here that an explicit '0' is rejected, even
> though it might be nicer to allow it for the sake of requesting the
> default even if the default later changes in size.
>
> Overall, though, I'm liking this series.
>
next prev parent reply other threads:[~2014-04-07 19:57 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-07 17:29 [Qemu-devel] [PATCH 0/4] qemu-img: Implement commit like QMP Max Reitz
2014-04-07 17:29 ` [Qemu-devel] [PATCH 1/4] block-commit: Expose granularity Max Reitz
2014-04-07 19:06 ` Eric Blake
2014-04-07 19:10 ` Max Reitz [this message]
2014-04-07 17:29 ` [Qemu-devel] [PATCH 2/4] block-commit: speed is an optional parameter Max Reitz
2014-04-07 18:55 ` Eric Blake
2014-04-07 18:56 ` Max Reitz
2014-04-07 17:29 ` [Qemu-devel] [PATCH 3/4] qemu-img: Implement commit like QMP Max Reitz
2014-04-07 19:10 ` Eric Blake
2014-04-07 19:28 ` Max Reitz
2014-04-08 6:49 ` Markus Armbruster
2014-04-08 11:16 ` Max Reitz
2014-04-07 17:30 ` [Qemu-devel] [PATCH 4/4] qemu-img: Enable progress output for commit Max Reitz
2014-04-07 20:06 ` Eric Blake
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=5342F839.6030309@redhat.com \
--to=mreitz@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@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 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).