From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:36162) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R1wtj-0001xw-H1 for qemu-devel@nongnu.org; Fri, 09 Sep 2011 04:57:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R1wti-0001Fz-DE for qemu-devel@nongnu.org; Fri, 09 Sep 2011 04:57:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48749) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R1wti-0001Fq-6G for qemu-devel@nongnu.org; Fri, 09 Sep 2011 04:57:18 -0400 Message-ID: <4E69D595.8090000@redhat.com> Date: Fri, 09 Sep 2011 11:00:05 +0200 From: Kevin Wolf MIME-Version: 1.0 References: <1315495505-28906-1-git-send-email-pbonzini@redhat.com> In-Reply-To: <1315495505-28906-1-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 00/12] nbd improvements List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org, Nicholas Thomas Am 08.09.2011 17:24, schrieb Paolo Bonzini: > I find nbd quite useful to test migration, but it is limited: > it can only do synchronous operation, it is not safe because it > does not support flush, and it has no discard either. qemu-nbd > is also limited to 1MB requests, and the nbd block driver does > not take this into account. > > Luckily, flush/FUA support is being worked out by upstream, > and discard can also be added with the same framework (patches > 1 to 6). > > Asynchronous support is also very similar to what sheepdog is > already doing (patches 7 to 12). > > Paolo Bonzini (12): > nbd: support feature negotiation > nbd: sync API definitions with upstream > nbd: support NBD_SET_FLAGS ioctl > nbd: add support for NBD_CMD_FLUSH > nbd: add support for NBD_CMD_FLAG_FUA > nbd: support NBD_CMD_TRIM in the server > sheepdog: add coroutine_fn markers > add socket_set_block > sheepdog: move coroutine send/recv function to generic code > block: add bdrv_co_flush support > nbd: switch to asynchronous operation > nbd: split requests > > block.c | 53 ++++++++++--- > block/nbd.c | 225 ++++++++++++++++++++++++++++++++++++++++++++-------- > block/sheepdog.c | 235 +++++++----------------------------------------------- > block_int.h | 1 + > cutils.c | 108 +++++++++++++++++++++++++ > nbd.c | 80 +++++++++++++++++-- > nbd.h | 20 ++++- > oslib-posix.c | 7 ++ > oslib-win32.c | 6 ++ > qemu-common.h | 3 + > qemu-coroutine.c | 71 ++++++++++++++++ > qemu-coroutine.h | 26 ++++++ > qemu-nbd.c | 13 ++-- > qemu_socket.h | 1 + > 14 files changed, 580 insertions(+), 269 deletions(-) There is anonther patch enabling AIO for NBD on the list [1], by Nicholas Thomas (CCed), that lacked review so far. Can you guys please review each others approach and then converge on a solution? I guess Paolo's patches 1-7 can be applied in any case, probably causing minor conflicts, but for the rest we need to decide which one to pick. Kevin [1] http://www.mail-archive.com/qemu-devel@nongnu.org/msg74711.html