qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>,
	qemu-devel@nongnu.org, stefanha@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 1/4] block: add image fragmentation statistics to qemu-img
Date: Mon, 12 Mar 2012 14:14:38 +0100	[thread overview]
Message-ID: <4F5DF6BE.7020707@redhat.com> (raw)
In-Reply-To: <CAJSP0QXdAb590-kJKk-ieFBapHWf0vLR7hx8kMc30wvX9kOuLg@mail.gmail.com>

Am 12.03.2012 14:07, schrieb Stefan Hajnoczi:
> On Wed, Mar 7, 2012 at 9:22 AM, Dong Xu Wang <wdongxu@linux.vnet.ibm.com> wrote:
>> From: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
>>
>> Discussion can be found at:
>> http://patchwork.ozlabs.org/patch/128730/
>>
>> This patch add image fragmentation statistics while using qemu-img info.
>>
>> Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
>> ---
>>  block.c     |   13 +++++++++++++
>>  block.h     |    7 +++++++
>>  block_int.h |    1 +
>>  qemu-img.c  |    9 +++++++++
>>  4 files changed, 30 insertions(+), 0 deletions(-)
>>
>> diff --git a/block.c b/block.c
>> index 52ffe14..947607b 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -2588,6 +2588,19 @@ int bdrv_get_info(BlockDriverState *bs, BlockDriverInfo *bdi)
>>     return drv->bdrv_get_info(bs, bdi);
>>  }
>>
>> +int bdrv_get_fragment(BlockDriverState *bs, BlockFragInfo *bfi)
> 
> bdrv_get_fraginfo() makes it clearer that this function gets a summary
> of fragmentation information.  bdrv_get_fragment() makes me think it
> gets one specific "fragment".
> 
>> +{
>> +    BlockDriver *drv = bs->drv;
>> +    if (!drv) {
>> +        return -ENOMEDIUM;
>> +    }
>> +    if (!drv->bdrv_get_fragment) {
>> +        return -ENOTSUP;
>> +    }
>> +    memset(bfi, 0, sizeof(*bfi));
>> +    return drv->bdrv_get_fragment(bs, bfi);
> 
> For now this .drv_get_fraginfo() interface makes sense but if we merge
> the QCOW2<->QED in-place conversion patch series in the future it will
> be possible to implement this in a generic way because image formats
> will expose their guest -> host mapping.

We can probably resurrect Devin's patches for this part even now instead
of introducing an interface that we don't really want.

> 
>> @@ -1126,6 +1127,14 @@ static int img_info(int argc, char **argv)
>>             printf("cluster_size: %d\n", bdi.cluster_size);
>>         }
>>     }
>> +    if (bdrv_get_fragment(bs, &bfi) >= 0) {
> 
> I think we need a separate sub-command for fragmentation info:
> 
> qemu-img fraginfo <image-file>
> 
> Utilities that invoke qemu-img info want it to be fast.  Reading all
> metadata from a large image can take several seconds.  Since many
> qemu-img info users don't need to see the fragmentation information,
> it makes sense to put it in a new sub-command.

Yes. If we wanted to merge it into an existing qemu-img subcommand, I
think check would be the one, as it scans the whole image already today
and fragmentation is something that could be added fairly easily.

Kevin

  reply	other threads:[~2012-03-12 13:11 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-07  9:22 [Qemu-devel] [PATCH 1/4] block: add image fragmentation statistics to qemu-img Dong Xu Wang
2012-03-07  9:22 ` [Qemu-devel] [PATCH 2/4] block: image fragmentation statistics for qed Dong Xu Wang
2012-03-12 12:58   ` Stefan Hajnoczi
2012-03-07  9:22 ` [Qemu-devel] [PATCH 3/4 v2 RESEND] block: add dirty flag status to qemu-img Dong Xu Wang
2012-03-12 18:18   ` Stefan Hajnoczi
2012-03-13  9:03     ` Kevin Wolf
2012-03-13  9:33       ` Stefan Hajnoczi
2012-03-13 10:10         ` Kevin Wolf
2012-03-07  9:22 ` [Qemu-devel] [PATCH 4/4 v2 RESEND] block: track dirty flag status in qed Dong Xu Wang
2012-03-12 13:07 ` [Qemu-devel] [PATCH 1/4] block: add image fragmentation statistics to qemu-img Stefan Hajnoczi
2012-03-12 13:14   ` Kevin Wolf [this message]
2012-03-12 13:26     ` Stefan Hajnoczi
2012-03-12 13:36       ` 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=4F5DF6BE.7020707@redhat.com \
    --to=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=stefanha@linux.vnet.ibm.com \
    --cc=wdongxu@linux.vnet.ibm.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).