From: Peter Lieven <pl@kamp.de>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com, Peter Lieven <pl@kamp.de>,
stefanha@redhat.com
Subject: [Qemu-devel] [PATCH 1.8 6/6] qemu-img: add option to show progress in sectors
Date: Mon, 25 Nov 2013 14:57:20 +0100 [thread overview]
Message-ID: <1385387840-17307-7-git-send-email-pl@kamp.de> (raw)
In-Reply-To: <1385387840-17307-1-git-send-email-pl@kamp.de>
Signed-off-by: Peter Lieven <pl@kamp.de>
---
qemu-img-cmds.hx | 4 ++--
qemu-img.c | 23 ++++++++++++++++++++---
2 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/qemu-img-cmds.hx b/qemu-img-cmds.hx
index 266cdf3..4190ec1 100644
--- a/qemu-img-cmds.hx
+++ b/qemu-img-cmds.hx
@@ -34,9 +34,9 @@ STEXI
ETEXI
DEF("convert", img_convert,
- "convert [-c] [-p] [-q] [-n] [-a] [-f fmt] [-t cache] [-O output_fmt] [-o options] [-s snapshot_name] [-S sparse_size] [-m iobuf_size] filename [filename2 [...]] output_filename")
+ "convert [-c] [-p|pp] [-q] [-n] [-a] [-f fmt] [-t cache] [-O output_fmt] [-o options] [-s snapshot_name] [-S sparse_size] [-m iobuf_size] filename [filename2 [...]] output_filename")
STEXI
-@item convert [-c] [-p] [-q] [-n] [-a] [-f @var{fmt}] [-t @var{cache}] [-O @var{output_fmt}] [-o @var{options}] [-s @var{snapshot_name}] [-S @var{sparse_size}] [-m @var{iobuf_size}] @var{filename} [@var{filename2} [...]] @var{output_filename}
+@item convert [-c] [-p|pp] [-q] [-n] [-a] [-f @var{fmt}] [-t @var{cache}] [-O @var{output_fmt}] [-o @var{options}] [-s @var{snapshot_name}] [-S @var{sparse_size}] [-m @var{iobuf_size}] @var{filename} [@var{filename2} [...]] @var{output_filename}
ETEXI
DEF("info", img_info,
diff --git a/qemu-img.c b/qemu-img.c
index 9fa8fd4..f58247f 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -99,6 +99,7 @@ static void help(void)
" rebasing in this case (useful for renaming the backing file)\n"
" '-h' with or without a command shows this help and lists the supported formats\n"
" '-p' show progress of command (only certain commands)\n"
+ " '-pp' show progress of command in sectors (only convert command)\n"
" '-q' use Quiet mode - do not print any output (except errors)\n"
" '-S' indicates the consecutive number of bytes (defaults to 4k) that must\n"
" contain only zeros for qemu-img to create a sparse image during\n"
@@ -1124,6 +1125,14 @@ out3:
return ret;
}
+static void print_sector_progress(int progress, int64_t sector_num,
+ int64_t total_sectors)
+{
+ if (progress == 2) {
+ printf("%ld of %ld sectors converted.\r", sector_num, total_sectors);
+ }
+}
+
static int img_convert(int argc, char **argv)
{
int c, n, n1, bs_n, bs_i, compress, cluster_sectors, skip_create;
@@ -1132,7 +1141,7 @@ static int img_convert(int argc, char **argv)
const char *fmt, *out_fmt, *cache, *out_baseimg, *out_filename;
BlockDriver *drv, *proto_drv;
BlockDriverState **bs = NULL, *out_bs = NULL;
- int64_t total_sectors, nb_sectors, sector_num, bs_offset,
+ int64_t total_sectors = 0, nb_sectors, sector_num, bs_offset,
sector_num_next_status = 0;
uint64_t bs_sectors;
uint8_t * buf = NULL;
@@ -1219,7 +1228,7 @@ static int img_convert(int argc, char **argv)
break;
}
case 'p':
- progress = 1;
+ progress++;
break;
case 't':
cache = optarg;
@@ -1245,7 +1254,7 @@ static int img_convert(int argc, char **argv)
out_filename = argv[argc - 1];
/* Initialize before goto out */
- qemu_progress_init(progress, 2.0);
+ qemu_progress_init(progress == 1, 2.0);
if (options && is_help_option(options)) {
ret = print_block_option_help(out_filename, out_fmt);
@@ -1276,6 +1285,8 @@ static int img_convert(int argc, char **argv)
total_sectors += bs_sectors;
}
+ print_sector_progress(progress, 0, total_sectors);
+
if (snapshot_name != NULL) {
if (bs_n > 1) {
error_report("No support for concatenating multiple snapshot");
@@ -1481,6 +1492,7 @@ static int img_convert(int argc, char **argv)
}
sector_num += n;
qemu_progress_print(100.0 * sector_num / total_sectors, 0);
+ print_sector_progress(progress, sector_num, total_sectors);
}
/* signal EOF to align */
bdrv_write_compressed(out_bs, 0, NULL, 0);
@@ -1595,11 +1607,16 @@ static int img_convert(int argc, char **argv)
buf1 += n1 * 512;
}
qemu_progress_print(100.0 * sector_num / total_sectors, 0);
+ print_sector_progress(progress, sector_num, total_sectors);
}
}
out:
if (!ret) {
qemu_progress_print(100, 0);
+ print_sector_progress(progress, total_sectors, total_sectors);
+ }
+ if (progress == 2) {
+ printf("\n");
}
qemu_progress_end();
free_option_parameters(create_options);
--
1.7.9.5
prev parent reply other threads:[~2013-11-25 13:58 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-25 13:57 [Qemu-devel] [PATCH 1.8 0/6] qemu-img convert optimizations Peter Lieven
2013-11-25 13:57 ` [Qemu-devel] [PATCH 1.8 1/6] qemu-img: add support for skipping zeroes in input during convert Peter Lieven
2013-11-25 13:57 ` [Qemu-devel] [PATCH 1.8 2/6] qemu-img: fix usage instruction for qemu-img convert Peter Lieven
2013-11-25 17:21 ` Eric Blake
2013-11-26 7:01 ` Peter Lieven
2013-11-25 13:57 ` [Qemu-devel] [PATCH 1.8 3/6] qemu-img: add option to specify alternate iobuffer size Peter Lieven
2013-11-25 14:54 ` Paolo Bonzini
2013-11-25 15:01 ` Peter Lieven
2013-11-25 15:07 ` Peter Lieven
2013-11-25 15:14 ` Paolo Bonzini
2013-11-25 15:24 ` Peter Lieven
2013-11-25 15:48 ` Paolo Bonzini
2013-11-25 15:56 ` Peter Lieven
2013-11-25 13:57 ` [Qemu-devel] [PATCH 1.8 4/6] block/iscsi: set bdi->cluster_size Peter Lieven
2013-11-25 14:51 ` Paolo Bonzini
2013-11-25 15:02 ` Paolo Bonzini
2013-11-25 13:57 ` [Qemu-devel] [PATCH 1.8 5/6] qemu-img: add option to align writes to cluster_sectors during convert Peter Lieven
2013-11-25 15:11 ` Paolo Bonzini
2013-11-25 15:32 ` Peter Lieven
2013-11-25 15:50 ` Paolo Bonzini
2013-11-25 15:55 ` Peter Lieven
2013-11-25 16:02 ` Paolo Bonzini
2013-11-25 16:11 ` Peter Lieven
2013-11-25 16:34 ` Paolo Bonzini
2013-11-25 13:57 ` Peter Lieven [this message]
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=1385387840-17307-7-git-send-email-pl@kamp.de \
--to=pl@kamp.de \
--cc=kwolf@redhat.com \
--cc=pbonzini@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.