From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=44497 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PSBFw-0002Po-Kk for qemu-devel@nongnu.org; Mon, 13 Dec 2010 11:28:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PSBFv-0006jn-Ha for qemu-devel@nongnu.org; Mon, 13 Dec 2010 11:28:08 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51894) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PSBFv-0006jf-60 for qemu-devel@nongnu.org; Mon, 13 Dec 2010 11:28:07 -0500 From: Kevin Wolf Date: Mon, 13 Dec 2010 17:29:03 +0100 Message-Id: <1292257747-10665-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 0/4] block-queue: Delay and batch metadata write List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, stefanha@gmail.com Differences to RFC v3 include proper conversion of qcow2, addressing Stefan's comments and fixing some error cases in which two write requests to the same location might conflict. Also worth noting is that bdrv_aio_pwrite is dropped. It was unsafe with respect to multiple concurrent requests on the same sector and it's impossible to safely emulate byte-wise access with bdrv_aio_readv/writev without introducing yet another queue. Instead we fall back to synchronous bdrv_pwrite now with unaligned requests in block-queue (they are rare). Kevin Wolf (4): Make vm_stop available for block layer Add block-queue Test cases for block-queue qcow2: Use block-queue Makefile | 1 + Makefile.objs | 2 +- block-queue.c | 875 ++++++++++++++++++++++++++++++++++++++++++++++++ block-queue.h | 61 ++++ block/qcow2-cluster.c | 139 +++++---- block/qcow2-refcount.c | 217 +++++++----- block/qcow2-snapshot.c | 106 +++++-- block/qcow2.c | 144 +++++++- block/qcow2.h | 33 ++- check-block-queue.c | 402 ++++++++++++++++++++++ cpus.c | 8 +- qemu-common.h | 3 + qemu-tool.c | 5 + sysemu.h | 1 - 14 files changed, 1793 insertions(+), 204 deletions(-) create mode 100644 block-queue.c create mode 100644 block-queue.h create mode 100644 check-block-queue.c -- 1.7.2.3