From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53697) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGvrz-0003pU-EG for qemu-devel@nongnu.org; Sat, 25 Jun 2016 18:16:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bGvrw-0000ut-Qd for qemu-devel@nongnu.org; Sat, 25 Jun 2016 18:16:06 -0400 From: Eric Blake Date: Sat, 25 Jun 2016 16:15:40 -0600 Message-Id: <1466892954-8684-1-git-send-email-eblake@redhat.com> Subject: [Qemu-devel] [PATCH v4 00/14] nbd: efficient write zeroes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, pbonzini@redhat.com The upstream NBD protocol is proposing an extension for efficient write zeroes; having a qemu implementation will be one of the reasons to promote the proposal from experimental to standard: https://github.com/yoe/nbd/blob/extension-write-zeroes/doc/proto.md Some of these patches were previously posted as part of a larger v3 series, so this is labeled v4: https://lists.gnu.org/archive/html/qemu-devel/2016-04/msg03526.html Prerequisites: v1 Auto-fragment large transactions at the block layer: https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg05819.html v1 byte-based block discard: https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg06491.html v1 Switch raw NBD to byte-based https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg07030.html Also available as a tag at: git fetch git://repo.or.cz/qemu/ericb.git nbd-zero-v4 changes since v3: rebasing on lots of intermediate patches that have been applied, particularly related to byte-based block driver performance; and even more protocol compliance 001/15:[down] 'nbd: Fix bad flag detection on server' 002/15:[----] [-C] 'nbd: Add qemu-nbd -D for human-readable description' 003/15:[0002] [FC] 'nbd: Limit nbdflags to 16 bits' 004/15:[0044] [FC] 'nbd: Treat flags vs. command type as separate fields' 005/15:[----] [--] 'nbd: Share common reply-sending code in server' 006/15:[down] 'nbd: Send message along with server NBD_REP_ERR errors' 007/15:[0014] [FC] 'nbd: Share common option-sending code in client' 008/15:[down] 'nbd: Let server know when client gives up negotiation' 009/15:[0002] [FC] 'nbd: Let client skip portions of server reply' 010/15:[0016] [FC] 'nbd: Less allocation during NBD_OPT_LIST' 011/15:[----] [-C] 'nbd: Support shorter handshake' 012/15:[down] 'nbd: Improve server handling of shutdown requests' 013/15:[down] 'tmp enable tracing for qemu-nbd/qemu-io' 014/15:[0003] [FC] 'nbd: Implement NBD_CMD_WRITE_ZEROES on server' 015/15:[0057] [FC] 'nbd: Implement NBD_CMD_WRITE_ZEROES on client' Eric Blake (14): nbd: Fix bad flag detection on server nbd: Add qemu-nbd -D for human-readable description nbd: Limit nbdflags to 16 bits nbd: Treat flags vs. command type as separate fields nbd: Share common reply-sending code in server nbd: Send message along with server NBD_REP_ERR errors nbd: Share common option-sending code in client nbd: Let server know when client gives up negotiation nbd: Let client skip portions of server reply nbd: Less allocation during NBD_OPT_LIST nbd: Support shorter handshake nbd: Improve server handling of shutdown requests nbd: Implement NBD_CMD_WRITE_ZEROES on server nbd: Implement NBD_CMD_WRITE_ZEROES on client block/nbd-client.h | 4 +- include/block/nbd.h | 69 ++++++-- nbd/nbd-internal.h | 12 +- block/nbd-client.c | 44 ++++- block/nbd.c | 4 + nbd/client.c | 500 ++++++++++++++++++++++++++++------------------------ nbd/server.c | 267 +++++++++++++++++++--------- qemu-nbd.c | 16 +- qemu-nbd.texi | 5 +- 9 files changed, 574 insertions(+), 347 deletions(-) -- 2.5.5