From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LjCbE-0006B0-K4 for qemu-devel@nongnu.org; Mon, 16 Mar 2009 09:11:24 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LjCb9-00068y-Mm for qemu-devel@nongnu.org; Mon, 16 Mar 2009 09:11:24 -0400 Received: from [199.232.76.173] (port=41546 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LjCb9-00068a-7k for qemu-devel@nongnu.org; Mon, 16 Mar 2009 09:11:19 -0400 Received: from mx2.redhat.com ([66.187.237.31]:39034) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LjCb8-00023z-L1 for qemu-devel@nongnu.org; Mon, 16 Mar 2009 09:11:18 -0400 From: Avi Kivity Date: Mon, 16 Mar 2009 15:11:06 +0200 Message-Id: <1237209071-26942-1-git-send-email-avi@redhat.com> Subject: [Qemu-devel] [PATCH 0/5] Fix aio cancellation with synthetic aiocbs Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org The block layer will currently break with synthetic aiocbs, since it will forward the cancellation request to the block format driver, which did not generate the synthetic aiocbs. This patchset fixes the problem by associating a cancellation method with synthetic aiocbs through a aio pool data structure. This structure contains information common to a class of aiocbs - size, cancellation method, and free list. Avi Kivity (5): Refactor aio callback allocation to use an aiocb pool Convert vectored aio emulation to use a dedicated pool Implement cancellation method for dma async I/O Use vectored aiocb storage to store vector translation state Move block dma helpers aiocb to store dma state block.c | 79 +++++++++++++++++++++++++++++++++++--------------------- block_int.h | 14 +++++++++- dma-helpers.c | 44 +++++++++++++++++++++---------- dma.h | 1 + vl.c | 1 + 5 files changed, 94 insertions(+), 45 deletions(-)