All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ivan Ren <renyime@gmail.com>
To: mreitz@redhat.com
Cc: eblake@redhat.com, qemu-devel@nongnu.org, kwolf@redhat.com,
	qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] qemu-img: return allocated size for block device with qcow2 format
Date: Fri, 04 May 2018 15:57:45 +0000	[thread overview]
Message-ID: <CA+6E1==3AYrwy2zu=caUM6hWKqgfXB-qnTf9u6TX0rcCtiS4JQ@mail.gmail.com> (raw)
In-Reply-To: <325f0743-7fca-0aab-c0f2-1ab46f94864b@redhat.com>

> Yeah, well, then you use qemu-img check to repair it.  The refcount
> structure is there to know which clusters are allocated, so we should
> use it when we want to know that and not assume it's broken.  If the
> user thinks it may be broken, they are free to run qemu-img check to
check.

Yea, it is right. It makes things easy.


> Oh, I've just seen that your patch doesn't even get the allocated size,
> it actually determines the highest allocated offset.  Well, those are
> two different things.  You should not return this value via
> qcow2_get_allocated_file_size().  I'm not sure where it should go
> (probably wr_highest_offset?) and how it should be presented in
> qemu-img, though.
>
> Also note that bdrv_get_allocated_file_size() is called by QMP's
> query-named-block-nodes and query-block, both of which are online
> synchronous functions.  It should not take a long time, specifically it
> should not scan the whole qcow2 file.

Yes, My original idea was to get the highest allocated offset on the block
device and regard it as currently max allocated size(ignore the hole lower
than it).
Through the discuss, I think it is better to count how many clusters with
non-0 refcount as the real allocated size.
I'll try to get a new version patch to implement this.

On Fri, May 4, 2018 at 10:35 PM Max Reitz <mreitz@redhat.com> wrote:

> On 2018-05-03 15:06, 叶残风 wrote:
> >
> > Thanks for your review, Eric.
> > Yes, the wr_highest_offset can tell the end offset at runtime, and
> > write_threshold similar to it. But in my situation, I need to know
> > the allocated end without a vm running.
>
> Oh, I've just seen that your patch doesn't even get the allocated size,
> it actually determines the highest allocated offset.  Well, those are
> two different things.  You should not return this value via
> qcow2_get_allocated_file_size().  I'm not sure where it should go
> (probably wr_highest_offset?) and how it should be presented in
> qemu-img, though.
>
> Also note that bdrv_get_allocated_file_size() is called by QMP's
> query-named-block-nodes and query-block, both of which are online
> synchronous functions.  It should not take a long time, specifically it
> should not scan the whole qcow2 file.
>
> Max
>
>

  reply	other threads:[~2018-05-04 15:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-02 13:34 [Qemu-devel] [PATCH] qemu-img: return allocated size for block device with qcow2 format Ivan Ren
2018-05-02 14:02 ` Eric Blake
2018-05-03 13:06   ` 叶残风
2018-05-04 14:35     ` Max Reitz
2018-05-04 15:57       ` Ivan Ren [this message]
2018-05-02 14:37 ` Max Reitz
2018-05-02 15:01   ` Eric Blake
2018-05-02 15:13     ` Max Reitz
2018-05-02 15:19       ` Eric Blake
2018-05-02 15:33         ` Max Reitz
2018-05-03 13:08   ` 叶残风
2018-05-04 14:27     ` 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='CA+6E1==3AYrwy2zu=caUM6hWKqgfXB-qnTf9u6TX0rcCtiS4JQ@mail.gmail.com' \
    --to=renyime@gmail.com \
    --cc=eblake@redhat.com \
    --cc=kwolf@redhat.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.