All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nir Soffer <nsoffer@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org
Cc: Eric Blake <eblake@redhat.com>, Kevin Wolf <kwolf@redhat.com>,
	Maor Lipchuk <mlipchuk@redhat.com>,
	"Daniel P. Berrange" <berrange@redhat.com>,
	Alberto Garcia <berto@igalia.com>, John Snow <jsnow@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v3 0/8] qemu-img: add measure sub-command
Date: Wed, 22 Mar 2017 19:29:07 +0000	[thread overview]
Message-ID: <CAMRbyysE0+GPze8mFZyaWqTywGMW67t+JKV1xX_CvX_dcu5q7A@mail.gmail.com> (raw)
In-Reply-To: <20170322111608.31230-1-stefanha@redhat.com>

On Wed, Mar 22, 2017 at 2:28 PM Stefan Hajnoczi <stefanha@redhat.com> wrote:

> v3:
>  * Drop RFC, this is ready to go for QEMU 2.10
>  * Use "required size" instead of "required bytes" in qemu-img output for
>    consistency [Nir]
>  * Clarify BlockMeasureInfo semantics [Max]
>  * Clarify bdrv_measure() opts argument and error handling [Nir]
>  * Handle -o backing_file= for qcow2 [Max]
>  * Handle snapshot options in qemu-img measure
>  * Probe input image for allocated data clusters for qcow2.  Didn't
> centralize
>    this because there are format-specific aspects such as the
> cluster_size.  It
>    may make sense to centralize it later (with a bit more complexity) if
>    support is added to more formats.
>  * Add qemu-img(1) man page section for 'measure' sub-command [Max]
>  * Extend test case to cover additional scenarios [Nir]
>
> RFCv2:
>  * Publishing RFC again to discuss the new user-visible interfaces.  Code
> has
>    changed quite a bit, I have not kept any Reviewed-by tags.
>  * Rename qemu-img sub-command "measure" and API bdrv_measure() [Nir]
>  * Report both "required bytes" and "fully allocated bytes" to handle the
> empty
>    image file and prealloc use cases [Nir and Dan]
>  * Use bdrv_getlength() instead of bdrv_nb_sectors() [Berto]
>  * Rename "err" label "out" in qemu-img-cmds.c [Nir]
>  * Add basic qcow2 support, doesn't support qemu-img convert from existing
> files yet
>
> RFCv1:
>  * Publishing patch series with just raw support, no qcow2 yet.  Please
> review
>    the command-line interface and let me know if you are happy with this
>    approach.
>
> Users and management tools sometimes need to know the size required for a
> new
> disk image so that an LVM volume, SAN LUN, etc can be allocated ahead of
> time.
> Image formats like qcow2 have non-trivial metadata that makes it hard to
> estimate the exact size without knowledge of file format internals.
>
> This patch series introduces a new qemu-img sub-command that calculates the
> required size for both image creation and conversion scenarios.
>
> The conversion scenario is:
>
>   $ qemu-img measure -f raw -O qcow2 input.img
>   required size: 1327680
>   fully allocated size: 1074069504
>
> Here an existing image file is taken and the output includes the space
> required
> for data from the input image file.
>
> The creation scenario is:
>
>   $ qemu-img measure -O qcow2 --size 5G
>   required size: 327680
>   fully allocated size: 1074069504
>
> Stefan Hajnoczi (8):
>   block: add bdrv_measure() API
>   raw-format: add bdrv_measure() support
>   qcow2: extract preallocation calculation function
>   qcow2: extract image creation option parsing
>   qcow2: add bdrv_measure() support
>   qemu-img: add measure subcommand
>   qemu-iotests: support per-format golden output files
>   iotests: add test 178 for qemu-img measure
>
>  qapi/block-core.json             |  25 +++
>  include/block/block.h            |   4 +
>  include/block/block_int.h        |   2 +
>  block.c                          |  35 ++++
>  block/qcow2.c                    | 362
> +++++++++++++++++++++++++++++----------
>  block/raw-format.c               |  22 +++
>  qemu-img.c                       | 227 ++++++++++++++++++++++++
>  qemu-img-cmds.hx                 |   6 +
>  qemu-img.texi                    |  25 +++
>  tests/qemu-iotests/178           | 144 ++++++++++++++++
>  tests/qemu-iotests/178.out.qcow2 | 242 ++++++++++++++++++++++++++
>  tests/qemu-iotests/178.out.raw   | 130 ++++++++++++++
>  tests/qemu-iotests/check         |   5 +
>  tests/qemu-iotests/group         |   1 +
>  14 files changed, 1136 insertions(+), 94 deletions(-)
>  create mode 100755 tests/qemu-iotests/178
>  create mode 100644 tests/qemu-iotests/178.out.qcow2
>  create mode 100644 tests/qemu-iotests/178.out.raw
>
> --
> 2.9.3
>

Stefan, is this available in some public git repo?

I would like to test it,  and downloading and applying 8 patches is lot of
work.
(I'm probably not using the right tools for this).

Nir

  parent reply	other threads:[~2017-03-22 19:29 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-22 11:16 [Qemu-devel] [PATCH v3 0/8] qemu-img: add measure sub-command Stefan Hajnoczi
2017-03-22 11:16 ` [Qemu-devel] [PATCH v3 1/8] block: add bdrv_measure() API Stefan Hajnoczi
2017-03-30 12:23   ` Alberto Garcia
2017-03-22 11:16 ` [Qemu-devel] [PATCH v3 2/8] raw-format: add bdrv_measure() support Stefan Hajnoczi
2017-03-30 12:26   ` Alberto Garcia
2017-03-22 11:16 ` [Qemu-devel] [PATCH v3 3/8] qcow2: extract preallocation calculation function Stefan Hajnoczi
2017-03-30 12:35   ` Alberto Garcia
2017-03-22 11:16 ` [Qemu-devel] [PATCH v3 4/8] qcow2: extract image creation option parsing Stefan Hajnoczi
2017-03-30 13:01   ` Alberto Garcia
2017-03-22 11:16 ` [Qemu-devel] [PATCH v3 5/8] qcow2: add bdrv_measure() support Stefan Hajnoczi
2017-03-22 11:16 ` [Qemu-devel] [PATCH v3 6/8] qemu-img: add measure subcommand Stefan Hajnoczi
2017-03-22 11:16 ` [Qemu-devel] [PATCH v3 7/8] qemu-iotests: support per-format golden output files Stefan Hajnoczi
2017-03-22 11:16 ` [Qemu-devel] [PATCH v3 8/8] iotests: add test 178 for qemu-img measure Stefan Hajnoczi
2017-03-22 19:29 ` Nir Soffer [this message]
2017-03-23 18:01   ` [Qemu-devel] [PATCH v3 0/8] qemu-img: add measure sub-command Stefan Hajnoczi
2017-03-27 15:02     ` Maor Lipchuk
2017-03-28 15:20       ` Stefan Hajnoczi

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=CAMRbyysE0+GPze8mFZyaWqTywGMW67t+JKV1xX_CvX_dcu5q7A@mail.gmail.com \
    --to=nsoffer@redhat.com \
    --cc=berrange@redhat.com \
    --cc=berto@igalia.com \
    --cc=eblake@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mlipchuk@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.