From: Max Reitz <mreitz@redhat.com>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com,
Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
Alberto Garcia <berto@igalia.com>,
qemu-block@nongnu.org
Subject: Re: [PATCH v2 3/4] qcow2: Avoid feature name extension on small cluster size
Date: Wed, 25 Mar 2020 13:42:33 +0100 [thread overview]
Message-ID: <d28f2dfc-1f85-1157-0a57-341894205883@redhat.com> (raw)
In-Reply-To: <20200324174233.1622067-4-eblake@redhat.com>
[-- Attachment #1.1: Type: text/plain, Size: 2460 bytes --]
On 24.03.20 18:42, Eric Blake wrote:
> As the feature name table can be quite large (over 9k if all 64 bits
> of all three feature fields have names; a mere 8 features leaves only
> 8 bytes for a backing file name in a 512-byte cluster), it is unwise
> to emit this optional header in images with small cluster sizes.
>
> Update iotest 036 to skip running on small cluster sizes; meanwhile,
> note that iotest 061 never passed on alternative cluster sizes
> (however, I limited this patch to tests with output affected by adding
> feature names, rather than auditing for other tests that are not
> robust to alternative cluster sizes).
That’s a bit more brave than necessary, considering I don’t think anyone
has ever run the iotests with the cluster_size option. (I certainly
don’t, and I don’t plan to, because I don’t think it’s that important to
test that.) There are certainly many other iotests that fail with a
non-default cluster size.
Not that it’s wrong care about it. On the opposite, I’m happy you do. :)
> Signed-off-by: Eric Blake <eblake@redhat.com>
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> Reviewed-by: Alberto Garcia <berto@igalia.com>
> ---
> block/qcow2.c | 11 +++++++++--
> tests/qemu-iotests/036 | 6 ++++--
> tests/qemu-iotests/061 | 6 ++++--
> 3 files changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 67b0c214fba4..9475ace57163 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -2823,8 +2823,15 @@ int qcow2_update_header(BlockDriverState *bs)
> buflen -= ret;
> }
>
> - /* Feature table */
> - if (s->qcow_version >= 3) {
> + /*
> + * Feature table. A mere 8 feature names occupies 392 bytes, and
> + * when coupled with the v3 minimum header of 104 bytes plus the
> + * 8-byte end-of-extension marker, that would leave only 8 bytes
> + * for a backing file name in an image with 512-byte clusters.
> + * Thus, we choose to omit this header for cluster sizes 4k and
> + * smaller.
Can’t we do this decision more dynamically? Like, always omit it when
cluster_size - sizeof(features) < 2k/3k/...?
Max
> + */
> + if (s->qcow_version >= 3 && s->cluster_size > 4096) {
> static const Qcow2Feature features[] = {
> {
> .type = QCOW2_FEAT_TYPE_INCOMPATIBLE,
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2020-03-25 12:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-24 17:42 [PATCH for-5.0 v2 0/4] bug fixes extracted from larger qcow2 zero bit work Eric Blake
2020-03-24 17:42 ` [PATCH v2 1/4] qcow2: Comment typo fixes Eric Blake
2020-03-24 17:42 ` [PATCH v2 2/4] qcow2: List autoclear bit names in header Eric Blake
2020-03-24 17:42 ` [PATCH v2 3/4] qcow2: Avoid feature name extension on small cluster size Eric Blake
2020-03-25 12:42 ` Max Reitz [this message]
2020-03-25 13:18 ` Eric Blake
2020-03-25 13:52 ` Max Reitz
2020-03-25 14:01 ` Eric Blake
2020-03-24 17:42 ` [PATCH v2 4/4] sheepdog: Consistently set bdrv_has_zero_init_truncate Eric Blake
2020-03-24 19:33 ` John Snow
2020-03-25 14:45 ` [PATCH-for-5.0 " Philippe Mathieu-Daudé
2020-03-26 13:32 ` [PATCH for-5.0 v2 0/4] bug fixes extracted from larger qcow2 zero bit work Max Reitz
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=d28f2dfc-1f85-1157-0a57-341894205883@redhat.com \
--to=mreitz@redhat.com \
--cc=berto@igalia.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=vsementsov@virtuozzo.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).