From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58815) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b8DPB-00020z-Us for qemu-devel@nongnu.org; Wed, 01 Jun 2016 17:10:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b8DPA-0008A4-8D for qemu-devel@nongnu.org; Wed, 01 Jun 2016 17:10:21 -0400 From: Eric Blake Date: Wed, 1 Jun 2016 15:10:00 -0600 Message-Id: <1464815413-613-1-git-send-email-eblake@redhat.com> Subject: [Qemu-devel] [PATCH v2 00/13] Kill sector-based write_zeroes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, qemu-block@nongnu.org Kevin pointed out that my recent change to byte-based instead of sector-based blk_write_zeroes() (commit 983a1600) makes life harder as long as bdrv_write_zeroes is still sector-based, and where the compiler doesn't flag any change in parameter types. Complete the conversion, by making all write_zeroes operations nominally take bytes. Depends on: https://lists.gnu.org/archive/html/qemu-devel/2016-05/msg04636.html Available as a tag here: git fetch git://repo.or.cz/qemu/ericb.git nbd-zero-v2 Changes from v1: - Original patch 1 already landed - Rebase to other changes that have landed, as well as to proposed qcow2 changes [multiple, especially patch 6] - Fix calculation bugs in iscsi [new patch 1, patch 5] - Allow granularity of 1, rather than forcing a minimum of 512 [patch 3] - Implement bdrv_pwrite_zeroes() atop bdrv_prwv_co() [patch 4] - Drop some useless variables, but don't drop qiov from raw-posix [patches 8, 10, 12] - Fix qed to use fallback on unaligned request even without backing file [patch 9] Ideas for future series: Audit for using uint32_t instead of int for length Track all block limits in bytes rather than sectors Convert discard to byte-based interface Switch drivers to byte-based read/write 001/13:[down] 'iscsi: Use block size as minimum zero/discard alignment' 002/13:[0060] [FC] 'block: Track write zero limits in bytes' 003/13:[0037] [FC] 'block: Add .bdrv_co_pwrite_zeroes()' 004/13:[0028] [FC] 'block: Switch bdrv_write_zeroes() to byte interface' 005/13:[0003] [FC] 'iscsi: Convert to bdrv_co_pwrite_zeroes()' 006/13:[0071] [FC] 'qcow2: Convert to bdrv_co_pwrite_zeroes()' 007/13:[----] [--] 'blkreplay: Convert to bdrv_co_pwrite_zeroes()' 008/13:[0003] [FC] 'gluster: Convert to bdrv_co_pwrite_zeroes()' 009/13:[0012] [FC] 'qed: Convert to bdrv_co_pwrite_zeroes()' 010/13:[0019] [FC] 'raw-posix: Convert to bdrv_co_pwrite_zeroes()' 011/13:[----] [--] 'raw_bsd: Convert to bdrv_co_pwrite_zeroes()' 012/13:[0003] [FC] 'vmdk: Convert to bdrv_co_pwrite_zeroes()' 013/13:[----] [--] 'block: Kill bdrv_co_write_zeroes()' Eric Blake (13): iscsi: Use block size as minimum zero/discard alignment block: Track write zero limits in bytes block: Add .bdrv_co_pwrite_zeroes() block: Switch bdrv_write_zeroes() to byte interface iscsi: Convert to bdrv_co_pwrite_zeroes() qcow2: Convert to bdrv_co_pwrite_zeroes() blkreplay: Convert to bdrv_co_pwrite_zeroes() gluster: Convert to bdrv_co_pwrite_zeroes() qed: Convert to bdrv_co_pwrite_zeroes() raw-posix: Convert to bdrv_co_pwrite_zeroes() raw_bsd: Convert to bdrv_co_pwrite_zeroes() vmdk: Convert to bdrv_co_pwrite_zeroes() block: Kill bdrv_co_write_zeroes() include/block/block.h | 16 +++---- include/block/block_int.h | 16 ++++--- block/blkreplay.c | 8 ++-- block/gluster.c | 14 +++--- block/io.c | 114 +++++++++++++++++++++++++--------------------- block/iscsi.c | 70 ++++++++++++++++------------ block/parallels.c | 4 +- block/qcow2-cluster.c | 3 +- block/qcow2.c | 48 +++++++++---------- block/qed.c | 35 +++++++------- block/raw-posix.c | 34 +++++++------- block/raw_bsd.c | 10 ++-- block/vmdk.c | 18 ++++---- migration/block.c | 5 +- tests/qemu-iotests/034 | 2 +- tests/qemu-iotests/154 | 2 +- trace-events | 10 ++-- 17 files changed, 216 insertions(+), 193 deletions(-) -- 2.5.5