All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Denis V. Lunev" <den@openvz.org>
To: Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org
Cc: mreitz@redhat.com, eblake@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/5] qemu-img bench: Make start offset configurable
Date: Mon, 6 Jun 2016 13:02:19 +0300	[thread overview]
Message-ID: <57554A2B.3070205@openvz.org> (raw)
In-Reply-To: <1464957021-3469-4-git-send-email-kwolf@redhat.com>

On 06/03/2016 03:30 PM, Kevin Wolf wrote:
> This patch adds an option the specify the offset of the first request
> made by qemu-img bench. This allows to benchmark misaligned requests.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>   qemu-img-cmds.hx |  4 ++--
>   qemu-img.c       | 23 ++++++++++++++++++++---
>   qemu-img.texi    |  5 +++--
>   3 files changed, 25 insertions(+), 7 deletions(-)
>
> diff --git a/qemu-img-cmds.hx b/qemu-img-cmds.hx
> index d651674..b9b521e 100644
> --- a/qemu-img-cmds.hx
> +++ b/qemu-img-cmds.hx
> @@ -10,9 +10,9 @@ STEXI
>   ETEXI
>   
>   DEF("bench", img_bench,
> -    "bench [-c count] [-d depth] [-f fmt] [-n] [-q] [-s buffer_size] [-t cache] [-w] filename")
> +    "bench [-c count] [-d depth] [-f fmt] [-n] [-o offset] [-q] [-s buffer_size] [-t cache] [-w] filename")
>   STEXI
> -@item bench [-c @var{count}] [-d @var{depth}] [-f @var{fmt}] [-n] [-q] [-s @var{buffer_size}] [-t @var{cache}] [-w] @var{filename}
> +@item bench [-c @var{count}] [-d @var{depth}] [-f @var{fmt}] [-n] [-o @var{offset}] [-q] [-s @var{buffer_size}] [-t @var{cache}] [-w] @var{filename}
>   ETEXI
>   
>   DEF("check", img_check,
> diff --git a/qemu-img.c b/qemu-img.c
> index 142efb1..fcac8b8 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -3514,6 +3514,7 @@ static int img_bench(int argc, char **argv)
>       bool is_write = false;
>       int count = 75000;
>       int depth = 64;
> +    int64_t offset = 0;
>       size_t bufsize = 4096;
>       int64_t image_size;
>       BlockBackend *blk = NULL;
> @@ -3529,7 +3530,7 @@ static int img_bench(int argc, char **argv)
>               {"image-opts", no_argument, 0, OPTION_IMAGE_OPTS},
>               {0, 0, 0, 0}
>           };
> -        c = getopt_long(argc, argv, "hc:d:f:nqs:t:w", long_options, NULL);
> +        c = getopt_long(argc, argv, "hc:d:f:no:qs:t:w", long_options, NULL);
>           if (c == -1) {
>               break;
>           }
> @@ -3567,6 +3568,19 @@ static int img_bench(int argc, char **argv)
>           case 'n':
>               flags |= BDRV_O_NATIVE_AIO;
>               break;
> +        case 'o':
> +        {
> +            char *end;
> +            errno = 0;
> +            offset = qemu_strtosz_suffix(optarg, &end,
> +                                         QEMU_STRTOSZ_DEFSUFFIX_B);
> +            if (offset < 0|| *end) {
> +                error_report("Invalid offset specified");
> +                return 1;
> +            }
> +            break;
> +        }
> +            break;
>           case 'q':
>               quiet = true;
>               break;
> @@ -3625,10 +3639,13 @@ static int img_bench(int argc, char **argv)
>           .bufsize    = bufsize,
>           .nrreq      = depth,
>           .n          = count,
> +        .offset     = offset,
>           .write      = is_write,
>       };
> -    printf("Sending %d %s requests, %d bytes each, %d in parallel\n",
> -           data.n, data.write ? "write" : "read", data.bufsize, data.nrreq);
> +    printf("Sending %d %s requests, %d bytes each, %d in parallel "
> +           "(starting at offset %" PRId64 ")\n",
> +           data.n, data.write ? "write" : "read", data.bufsize, data.nrreq,
> +           data.offset);
>   
>       data.buf = blk_blockalign(blk, data.nrreq * data.bufsize);
>       memset(data.buf, 0, data.nrreq * data.bufsize);
> diff --git a/qemu-img.texi b/qemu-img.texi
> index 34e94db..c37380e 100644
> --- a/qemu-img.texi
> +++ b/qemu-img.texi
> @@ -131,13 +131,14 @@ Skip the creation of the target volume
>   Command description:
>   
>   @table @option
> -@item bench [-c @var{count}] [-d @var{depth}] [-f @var{fmt}] [-n] [-q] [-s @var{buffer_size}] [-t @var{cache}] [-w] @var{filename}
> +@item bench [-c @var{count}] [-d @var{depth}] [-f @var{fmt}] [-n] [-o @var{offset}] [-q] [-s @var{buffer_size}] [-t @var{cache}] [-w] @var{filename}
>   
>   Run a simple sequential I/O benchmark on the specified image. If @code{-w} is
>   specified, a write test is performed, otherwise a read test is performed.
>   
>   A total number of @var{count} I/O requests is performed, each @var{buffer_size}
> -bytes in size, and with @var{depth} requests in parallel.
> +bytes in size, and with @var{depth} requests in parallel. The first request
> +starts at the position given by @var{offset}.
>   
>   If @code{-n} is specified, the native AIO backend is used if possible. On
>   Linux, this option only works if @code{-t none} or @code{-t directsync} is
Reviewed-by: Denis V. Lunev <den@openvz.org>

  reply	other threads:[~2016-06-06 10:02 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-03 12:30 [Qemu-devel] [PATCH 0/5] block: Introduce qemu-img bench Kevin Wolf
2016-06-03 12:30 ` [Qemu-devel] [PATCH 1/5] " Kevin Wolf
2016-06-06  9:59   ` Denis V. Lunev
2016-06-03 12:30 ` [Qemu-devel] [PATCH 2/5] qemu-img bench: Sequential writes Kevin Wolf
2016-06-03 14:55   ` Denis V. Lunev
2016-06-03 12:30 ` [Qemu-devel] [PATCH 3/5] qemu-img bench: Make start offset configurable Kevin Wolf
2016-06-06 10:02   ` Denis V. Lunev [this message]
2016-06-03 12:30 ` [Qemu-devel] [PATCH 4/5] qemu-img bench: Implement -S (step size) Kevin Wolf
2016-06-06 10:03   ` Denis V. Lunev
2016-06-03 12:30 ` [Qemu-devel] [PATCH 5/5] qemu-img bench: Add --flush-interval Kevin Wolf
2016-06-03 15:01   ` Denis V. Lunev
2016-06-03 15:16     ` Kevin Wolf
2016-06-06 12:33       ` [Qemu-devel] [Qemu-block] " 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=57554A2B.3070205@openvz.org \
    --to=den@openvz.org \
    --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.