From: Paolo Bonzini <pbonzini@redhat.com>
To: Peter Lieven <pl@kamp.de>
Cc: kwolf@redhat.com, ronniesahlberg@gmail.com,
qemu-devel@nongnu.org, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCHv7 00/17] block: logical block provisioning enhancements
Date: Thu, 24 Oct 2013 15:20:21 +0100 [thread overview]
Message-ID: <52692CA5.8080902@redhat.com> (raw)
In-Reply-To: <1382609227-23989-1-git-send-email-pl@kamp.de>
Il 24/10/2013 11:06, Peter Lieven ha scritto:
> this patch adds the ability for targets to stay sparse during
> block migration (if the zero_blocks capability is set) and qemu-img convert
> even if the target does not have has_zero_init = 1.
>
> the series was especially developed for iSCSI, but it should also work
> with other drivers with little or no adjustments. these adjustments
> should be limited to providing block provisioning information through
> get_block_info and/or honouring BDRV_REQ_MAY_UNMAP on writing zeroes.
>
> v6->v7:
> - switched position of "iscsi: set limits in BlockDriverState" and
> "iscsi: simplify iscsi_co_discard". (Paolo)
> - fixed commit message of
> "block/get_block_status: fix BDRV_BLOCK_ZERO for unallocated blocks".
> (Paolo)
> - moved "block/raw: copy BlockLimits on raw_open" right after
> "block: add BlockLimits structure to BlockDriverState". (Paolo)
> - Reworded desciption for -S 0 in
> "qemu-img: add support for fully allocated images" as suggested
> by Paolo.
> - Reworded commit message of:
> "qemu-img: conditionally zero out target on convert".
> regarding iscsi (Paolo)
>
> v5->v6:
> - protected iscsi_co_write_zeroes by the existence of the
> SCSI_SENSE_ASCQ_CAPACITY_DATA_HAS_CHANGED macro. This is ugly
> but necessary because the semantic of iscsi_writesame16_task
> silently changed between libiscsi 1.8.0 and 1.9.0. The above
> macro was the first added after the change. I already contacted
> Ronnie to introduce an API version macro which has to be bumped
> on each new function that will be added. Changes to the parameters
> should not happen at all of course.
>
> v4->v5:
> - new patches 4-6 to move the block provisioning information
> to the BlockDriverInfo.
> - kept 2 wrappers to read the information from the BDI and
> renamed them to make more clear what they do:
>
> bdrv_has_discard_zeroes -> bdrv_unallocated_blocks_are_zero
> bdrv_has_discard_write_zeroes -> bdrv_can_write_zeroes_with_unmap
>
> - added additional information about the 2 flags in the
> BDI struct in block.h
>
> v3->v4:
> - changed BlockLimits struct to typedef (Stefan, Eric)
> - renamed bdrv_zeroize to bdrv_make_zero (Stefan)
> - added comment about the -S flag of qemu-img convert in
> qemu-img.texi (Eric)
> - used struct assignment for bs->bl in raw_open (Stefan, Eric)
> - dropped 3 get_block_status fixes that are independent of
> this series and already partly merged.
>
> v2->v3:
> - fix merge conflict in block/qcow2_cluster.c
> - changed return type of bdrv_has_discard_zeroes and
> bdrv_has_discard_write_zeroes to bool.
> - moved alignment and limits info to a BlockLimits struct (Paolo).
> - added magic constanst for default maximum in bdrv_co_do_write_zeroes
> and bdrv_co_discard (Eric).
> - bdrv_co_do_write_zeroes: allocating the bounce buffer only once (Eric),
> fixed bounce iov_len in the fall back path.
> - bdrv_zeroize: added inline docu (Eric) and do not mask flags passed
> to bdrv_write_zeroes (Eric).
> - qemu-img: changed the default hint for -S (min_sparse) in the usage
> help to 4k. not changing the default as it is unclear why this default
> was set. size suffixes are already supported (Eric).
>
> v1->v2:
> - moved block max_discard and max_write_zeroes to BlockDriverState
> - added discard_alignment and write_zeroes_alignment to BlockDriverState
> - added bdrv_has_discard_zeroes() and bdrv_has_discard_write_zeroes()
> - added logic to bdrv_co_discard and bdrv_co_do_write_zeroes to honour
> limit and alignment info.
> - added support for -S 0 in qemu-img convert.
>
> Peter Lieven (17):
> block: make BdrvRequestFlags public
> block: add flags to bdrv_*_write_zeroes
> block: introduce BDRV_REQ_MAY_UNMAP request flag
> block: add logical block provisioning info to BlockDriverInfo
> block: add wrappers for logical block provisioning information
> block/iscsi: add .bdrv_get_info
> block: add BlockLimits structure to BlockDriverState
> block/raw: copy BlockLimits on raw_open
> block: honour BlockLimits in bdrv_co_do_write_zeroes
> block: honour BlockLimits in bdrv_co_discard
> iscsi: set limits in BlockDriverState
> iscsi: simplify iscsi_co_discard
> iscsi: add bdrv_co_write_zeroes
> block: introduce bdrv_make_zero
> block/get_block_status: fix BDRV_BLOCK_ZERO for unallocated blocks
> qemu-img: add support for fully allocated images
> qemu-img: conditionally zero out target on convert
>
> block-migration.c | 3 +-
> block.c | 200 +++++++++++++++++++++++++++++++++++++--------
> block/backup.c | 3 +-
> block/iscsi.c | 150 +++++++++++++++++++++++++---------
> block/qcow2-cluster.c | 2 +-
> block/qcow2.c | 2 +-
> block/qed.c | 3 +-
> block/raw_bsd.c | 6 +-
> block/vmdk.c | 3 +-
> include/block/block.h | 35 +++++++-
> include/block/block_int.h | 19 ++++-
> qemu-img.c | 20 ++++-
> qemu-img.texi | 6 ++
> qemu-io-cmds.c | 2 +-
> 14 files changed, 366 insertions(+), 88 deletions(-)
>
This looks good to me.
Paolo
next prev parent reply other threads:[~2013-10-24 14:21 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-24 10:06 [Qemu-devel] [PATCHv7 00/17] block: logical block provisioning enhancements Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 01/17] block: make BdrvRequestFlags public Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 02/17] block: add flags to bdrv_*_write_zeroes Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 03/17] block: introduce BDRV_REQ_MAY_UNMAP request flag Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 04/17] block: add logical block provisioning info to BlockDriverInfo Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 05/17] block: add wrappers for logical block provisioning information Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 06/17] block/iscsi: add .bdrv_get_info Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 07/17] block: add BlockLimits structure to BlockDriverState Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 08/17] block/raw: copy BlockLimits on raw_open Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 09/17] block: honour BlockLimits in bdrv_co_do_write_zeroes Peter Lieven
2013-10-24 10:06 ` [Qemu-devel] [PATCHv7 10/17] block: honour BlockLimits in bdrv_co_discard Peter Lieven
2013-11-11 13:20 ` Kevin Wolf
2013-11-12 8:53 ` Peter Lieven
2013-11-12 9:19 ` Paolo Bonzini
2013-11-12 9:21 ` Peter Lieven
2013-11-12 9:45 ` Kevin Wolf
2013-10-24 10:07 ` [Qemu-devel] [PATCHv7 11/17] iscsi: set limits in BlockDriverState Peter Lieven
2013-10-24 10:07 ` [Qemu-devel] [PATCHv7 12/17] iscsi: simplify iscsi_co_discard Peter Lieven
2013-10-24 10:07 ` [Qemu-devel] [PATCHv7 13/17] iscsi: add bdrv_co_write_zeroes Peter Lieven
2013-10-24 10:07 ` [Qemu-devel] [PATCHv7 14/17] block: introduce bdrv_make_zero Peter Lieven
2013-10-24 10:07 ` [Qemu-devel] [PATCHv7 15/17] block/get_block_status: fix BDRV_BLOCK_ZERO for unallocated blocks Peter Lieven
2013-10-24 10:07 ` [Qemu-devel] [PATCHv7 16/17] qemu-img: add support for fully allocated images Peter Lieven
2013-10-24 10:07 ` [Qemu-devel] [PATCHv7 17/17] qemu-img: conditionally zero out target on convert Peter Lieven
2013-10-24 14:20 ` Paolo Bonzini [this message]
2013-11-06 13:08 ` [Qemu-devel] [PATCHv7 00/17] block: logical block provisioning enhancements Stefan Hajnoczi
2013-11-06 13:09 ` Paolo Bonzini
2013-11-06 19:38 ` Peter Lieven
2013-11-06 21:16 ` Paolo Bonzini
2013-11-08 17:52 ` ronnie sahlberg
2013-11-08 18:03 ` ronnie sahlberg
2013-11-08 19:29 ` Peter Lieven
2013-11-08 19:28 ` Peter Lieven
2013-11-06 19:36 ` Peter Lieven
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=52692CA5.8080902@redhat.com \
--to=pbonzini@redhat.com \
--cc=kwolf@redhat.com \
--cc=pl@kamp.de \
--cc=qemu-devel@nongnu.org \
--cc=ronniesahlberg@gmail.com \
--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.