All of lore.kernel.org
 help / color / mirror / Atom feed
From: Max Reitz <mreitz@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 4/6] qemu-img: Enable progress output for commit
Date: Thu, 10 Apr 2014 16:37:20 +0200	[thread overview]
Message-ID: <5346ACA0.3090701@redhat.com> (raw)
In-Reply-To: <20140408153452.GF6262@noname.str.redhat.com>

On 08.04.2014 17:34, Kevin Wolf wrote:
> Am 08.04.2014 um 14:50 hat Max Reitz geschrieben:
>> Implement progress output for the commit command by querying the
>> progress of the block job.
>>
>> Signed-off-by: Max Reitz <mreitz@redhat.com>
>> Reviewed-by: Eric Blake <eblake@redhat.com>
>> ---
>>   qemu-img-cmds.hx |  4 ++--
>>   qemu-img.c       | 33 +++++++++++++++++++++++++++++++--
>>   qemu-img.texi    |  2 +-
>>   3 files changed, 34 insertions(+), 5 deletions(-)
>>
>> diff --git a/qemu-img-cmds.hx b/qemu-img-cmds.hx
>> index d029609..8bc55cd 100644
>> --- a/qemu-img-cmds.hx
>> +++ b/qemu-img-cmds.hx
>> @@ -22,9 +22,9 @@ STEXI
>>   ETEXI
>>   
>>   DEF("commit", img_commit,
>> -    "commit [-q] [-f fmt] [-t cache] filename")
>> +    "commit [-q] [-f fmt] [-t cache] [-p] filename")
>>   STEXI
>> -@item commit [-q] [-f @var{fmt}] [-t @var{cache}] @var{filename}
>> +@item commit [-q] [-f @var{fmt}] [-t @var{cache}] [-p] @var{filename}
>>   ETEXI
>>   
>>   DEF("compare", img_compare,
>> diff --git a/qemu-img.c b/qemu-img.c
>> index e86911f..0a9eff7 100644
>> --- a/qemu-img.c
>> +++ b/qemu-img.c
>> @@ -690,12 +690,27 @@ static void dummy_block_job_cb(void *opaque, int ret)
>>   static void run_block_job(BlockJob *job, Error **errp)
>>   {
>>       BlockJobInfo *info;
>> +    uint64_t mod_offset = 0;
>>   
>>       do {
>>           aio_poll(qemu_get_aio_context(), true);
>>   
>>           info = block_job_query(job);
>>   
>> +        if (info->offset) {
>> +            if (!mod_offset) {
> On a fully populated image this doesn't look entirely right. I think the
> first 2 MB (or whatever the buffer size is) will be disregarded in the
> calculation, even though they are real work that is done.

Hm, right. I'll see how I get it included into this supposedly common 
function.

Max

>> +                /* Some block jobs (at least "commit") will only work on a
>> +                 * subset of the image file and therefore basically skip many
>> +                 * sectors at the start (processing them apparently
>> +                 * instantaneously). These sectors should be ignored when
>> +                 * calculating the progress. */
>> +                mod_offset = info->offset;
>> +            }
>> +
>> +            qemu_progress_print((float)(info->offset - mod_offset) /
>> +                                (info->len - mod_offset) * 100.f, 0);
>> +        }
>> +
>>           if (!info->busy && info->offset < info->len) {
>>               block_job_resume(job);
>>           }
> Kevin

  parent reply	other threads:[~2014-04-10 14:37 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-08 12:50 [Qemu-devel] [PATCH v2 0/6] qemu-img: Implement commit like QMP Max Reitz
2014-04-08 12:50 ` [Qemu-devel] [PATCH v2 1/6] block-commit: Expose granularity Max Reitz
2014-04-08 15:09   ` Kevin Wolf
2014-04-08 16:20   ` Eric Blake
2014-04-10 14:40     ` Max Reitz
2014-04-08 12:50 ` [Qemu-devel] [PATCH v2 2/6] block-commit: speed is an optional parameter Max Reitz
2014-04-08 15:07   ` Kevin Wolf
2014-04-10 14:41     ` Max Reitz
2014-04-08 16:24   ` Eric Blake
2014-04-08 12:50 ` [Qemu-devel] [PATCH v2 3/6] qemu-img: Implement commit like QMP Max Reitz
2014-04-08 15:14   ` Kevin Wolf
2014-04-08 16:39     ` Eric Blake
2014-04-10 14:32     ` Max Reitz
2014-04-11 12:54       ` Kevin Wolf
2014-04-08 12:50 ` [Qemu-devel] [PATCH v2 4/6] qemu-img: Enable progress output for commit Max Reitz
2014-04-08 15:34   ` Kevin Wolf
2014-04-08 16:53     ` Eric Blake
2014-04-09  8:27       ` Kevin Wolf
2014-04-10 14:37     ` Max Reitz [this message]
2014-04-08 12:50 ` [Qemu-devel] [PATCH v2 5/6] qemu-img: Specify backing file " Max Reitz
2014-04-08 17:01   ` Eric Blake
2014-04-10 14:42     ` Max Reitz
2014-04-10  9:05   ` Fam Zheng
2014-04-10 14:45     ` Max Reitz
2014-04-08 12:50 ` [Qemu-devel] [PATCH v2 6/6] iotests: Commit tests for two-layer backing chains Max Reitz
2014-04-08 17:10   ` 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=5346ACA0.3090701@redhat.com \
    --to=mreitz@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 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.