From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38071) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bF8n6-0006JU-A3 for qemu-devel@nongnu.org; Mon, 20 Jun 2016 19:39:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bF8n0-0002TW-FP for qemu-devel@nongnu.org; Mon, 20 Jun 2016 19:39:39 -0400 Received: from resqmta-po-07v.sys.comcast.net ([2001:558:fe16:19:96:114:154:166]:59866) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bF8n0-0002TR-90 for qemu-devel@nongnu.org; Mon, 20 Jun 2016 19:39:34 -0400 From: Eric Blake Date: Mon, 20 Jun 2016 17:39:24 -0600 Message-Id: <1466465969-25315-1-git-send-email-eblake@redhat.com> Subject: [Qemu-devel] [PATCH 0/5] Auto-fragment large transactions at the block layer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, kwolf@redhat.com We have max_transfer documented in BlockLimits, but while we honor it during pwrite_zeroes, we were blindly ignoring it during pwritev and preadv, leading to multiple drivers having to implement fragmentation themselves. This series moves fragmentation to the block layer, then fixes the NBD driver to use it; if you like this but it needs a v2, you can request that I further do other drivers (I know at least iscsi and qcow2 do some self-fragmenting and/or error reporting that can be simplified by deferring fragmentation to the block layer). Prequisite: Kevin's block branch, plus my work on byte-based block limits (v2 at the moment): https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg04006.html Also available as a tag at: git fetch git://repo.or.cz/qemu/ericb.git nbd-fragment-v1 Eric Blake (5): block: Fragment reads to max transfer length block: Fragment writes to max transfer length raw_bsd: Don't advertise flags not supported by protocol layer nbd: Rely on block layer to break up large requests nbd: Drop unused offset parameter include/block/nbd.h | 1 - nbd/nbd-internal.h | 4 +-- block/io.c | 84 +++++++++++++++++++++++++++++++++++++++-------------- block/nbd-client.c | 78 ++++++++++++++----------------------------------- block/nbd.c | 12 ++------ block/raw_bsd.c | 6 ++-- nbd/common.c | 3 +- 7 files changed, 95 insertions(+), 93 deletions(-) -- 2.5.5