From: Eric Blake <eblake@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
qemu-devel@nongnu.org, qemu-block@nongnu.org
Cc: armbru@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org
Subject: Re: [Qemu-devel] [PATCH 2/7] block: add bdrv_get_format_allocated_size format interface
Date: Thu, 25 May 2017 14:02:45 -0500 [thread overview]
Message-ID: <5c38f770-40d7-ee89-7fd1-edad4a9927b6@redhat.com> (raw)
In-Reply-To: <6d16d9d2-cd5b-a71f-740d-0721845cca96@virtuozzo.com>
[-- Attachment #1: Type: text/plain, Size: 2137 bytes --]
On 05/25/2017 01:19 PM, Vladimir Sementsov-Ogievskiy wrote:
> No, it will not be negative, all OK. I've mistaken. length of
> bs->file->bs will be positive anyway.
>
> Actually, current approach is the following:
>
> a. clusters allocated in qcow2 and after the end of bs->file: unallocated
How often do we actually end up in this situation? I know there are a
few cases where it makes sense (for example, if your image is large
enough to have L1 occupy two clusters, but the guest hasn't written
anything in the second half of the guest-visible area, then the second
cluster of the L1 table can be all zeroes - and depending on allocation
patterns, it is feasible that the L1 table can occupy the end of the
image, where the second cluster of the L1 table thus points beyond
end-of-file of the underlying image while still being a well-formed
qcow2 image). It may also be a common transitory state in how we expand
a qcow2 image; if the expansion is interrupted in the middle, we could
easily have the refcount table saying a cluster has been allocated while
we have not yet actually written to the host file.
> b. clusters allocated in qcow2 and which are holes bs->file: allocated
This may be more common; a typical example is if we have a cluster
marked QCOW2_CLUSTER_NORMAL but which maps to a hole (and therefore
bdrv_get_block_status will report it as BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO).
>
> (a) look inconsistent with b and with commit message and other things.
> But if I just account (a) clusters, it will lead to negative size of
> unallocated and will spoil the whole stat.. Something should be
> adjusted, at least at comment/commit-message level.
Exposing the stat as a difference may not make as much sense as
reporting actual numbers (this image requires an allocation of this many
bytes to fully represent current guest- and meta-data, even if some of
the allocation is currently pointing to holes or beyond the end of the
underlying file).
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2017-05-25 19:02 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-25 15:26 [Qemu-devel] [PATCH 0/7] qemu-img check: unallocated size Vladimir Sementsov-Ogievskiy
2017-05-25 15:26 ` [Qemu-devel] [PATCH 1/7] block: fix comment for bdrv_get_allocated_file_size() Vladimir Sementsov-Ogievskiy
2017-05-25 16:32 ` Eric Blake
2017-05-25 16:34 ` Eric Blake
2017-05-25 17:03 ` Vladimir Sementsov-Ogievskiy
2017-05-25 17:46 ` Eric Blake
2017-05-25 17:56 ` Vladimir Sementsov-Ogievskiy
2017-05-25 15:26 ` [Qemu-devel] [PATCH 2/7] block: add bdrv_get_format_allocated_size format interface Vladimir Sementsov-Ogievskiy
2017-05-25 17:54 ` Eric Blake
2017-05-25 18:07 ` Vladimir Sementsov-Ogievskiy
2017-05-25 18:19 ` Vladimir Sementsov-Ogievskiy
2017-05-25 19:02 ` Eric Blake [this message]
2017-05-25 15:26 ` [Qemu-devel] [PATCH 3/7] qcow2: add .bdrv_get_format_allocated_size Vladimir Sementsov-Ogievskiy
2017-05-25 15:26 ` [Qemu-devel] [PATCH 4/7] common: make get_human_readable_size public Vladimir Sementsov-Ogievskiy
2017-05-25 17:57 ` Eric Blake
2017-05-25 15:26 ` [Qemu-devel] [PATCH 5/7] qemu-img check: add format unallocated size Vladimir Sementsov-Ogievskiy
2017-05-25 17:59 ` Eric Blake
2017-05-25 15:26 ` [Qemu-devel] [PATCH 6/7] qemu-img check: add file-size Vladimir Sementsov-Ogievskiy
2017-05-25 17:59 ` Eric Blake
2017-05-25 15:26 ` [Qemu-devel] [PATCH 7/7] block: rename _get_allocated_file_size() to _get_fs_allocated_size() Vladimir Sementsov-Ogievskiy
2017-05-25 15:34 ` Vladimir Sementsov-Ogievskiy
2017-05-25 18:01 ` 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=5c38f770-40d7-ee89-7fd1-edad4a9927b6@redhat.com \
--to=eblake@redhat.com \
--cc=armbru@redhat.com \
--cc=den@openvz.org \
--cc=kwolf@redhat.com \
--cc=mreitz@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).