From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:54683) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXwwX-00012C-W5 for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:28:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXwwT-0000CU-4c for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:28:29 -0500 Received: from mail-iy0-f173.google.com ([209.85.210.173]:40617) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXwwT-0000A8-07 for qemu-devel@nongnu.org; Tue, 06 Dec 2011 10:28:25 -0500 Received: by iafj26 with SMTP id j26so193361iaf.4 for ; Tue, 06 Dec 2011 07:28:24 -0800 (PST) Sender: Paolo Bonzini From: Paolo Bonzini Date: Tue, 6 Dec 2011 16:27:27 +0100 Message-Id: <1323185272-2610-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 00/25] nbd asynchronous operation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Here is my NBD asynchronous operation series, including asynchronous server. Patches 1-5 add asynchronous operation to the client. Patches 6-9 add new features for flush/FUA and discard (trim). Patches 10-25 add asynchronous operation to the server. Chunyan Liu (1): Update ioctl order in nbd_init() to detect EBUSY Paolo Bonzini (24): add qemu_send_full and qemu_recv_full sheepdog: move coroutine send/recv function to generic code nbd: switch to asynchronous operation nbd: split requests nbd: allow multiple in-flight requests nbd: fix error handling in the server nbd: add support for NBD_CMD_FLAG_FUA nbd: add support for NBD_CMD_FLUSH nbd: add support for NBD_CMD_TRIM qemu-nbd: remove offset argument to nbd_trip qemu-nbd: remove data_size argument to nbd_trip move corking functions to osdep.c qemu-nbd: simplify nbd_trip qemu-nbd: introduce nbd_do_send_reply qemu-nbd: more robust handling of invalid requests qemu-nbd: introduce nbd_do_receive_request qemu-nbd: introduce NBDExport qemu-nbd: introduce NBDRequest link the main loop and its dependencies into the tools qemu-nbd: use common main loop qemu-nbd: move client handling to nbd.c qemu-nbd: add client pointer to NBDRequest qemu-nbd: asynchronous operation qemu-nbd: throttle requests Makefile | 5 +- Makefile.objs | 2 +- block/nbd.c | 319 ++++++++++++++++++++++++++++++------- block/sheepdog.c | 250 +++-------------------------- cutils.c | 111 +++++++++++++ main-loop.h | 6 + nbd.c | 439 ++++++++++++++++++++++++++++++++++++++++----------- nbd.h | 14 ++- os-posix.c | 42 ----- os-win32.c | 5 - osdep.c | 76 +++++++++ oslib-posix.c | 43 +++++ oslib-win32.c | 5 + qemu-common.h | 34 ++++ qemu-coroutine-io.c | 96 +++++++++++ qemu-nbd.c | 120 +++++--------- qemu-tool.c | 42 +++--- qemu_socket.h | 1 + 18 files changed, 1080 insertions(+), 530 deletions(-) create mode 100644 qemu-coroutine-io.c -- 1.7.7.1