From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agCFz-0002hB-VH for qemu-devel@nongnu.org; Wed, 16 Mar 2016 10:17:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1agCFw-0005u2-PK for qemu-devel@nongnu.org; Wed, 16 Mar 2016 10:17:03 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57854) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agCFw-0005tx-KH for qemu-devel@nongnu.org; Wed, 16 Mar 2016 10:17:00 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 35E4120A9A for ; Wed, 16 Mar 2016 14:17:00 +0000 (UTC) From: Paolo Bonzini Date: Wed, 16 Mar 2016 15:16:41 +0100 Message-Id: <1458137817-15383-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH v2 00/16] AioContext fine-grained locking, part 1 of 3, including bdrv_drain rewrite List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: famz@redhat.com, stefanha@redhat.com Now that the current dataplane failure has been isolated to an unwanted reentrancy in virtio, I can post v2 of these patches. Please review, as I would like to get part 2 in QEMU 2.6 as well (I plan to send it out tomorrow, since I hope there will be no comments on this one and I have already tested both of them). The changes from v1 are minor and all correspond to Fam's review (I've pointed them out in the single patches - patch 2,5,7,9,13). Paolo Paolo Bonzini (16): block: make bdrv_start_throttled_reqs return void block: move restarting of throttled reqs to block/throttle-groups.c block: introduce bdrv_no_throttling_begin/end block: plug whole tree at once, introduce bdrv_io_unplugged_begin/end mirror: use bottom half to re-enter coroutine block: add BDS field to count in-flight requests block: change drain to look only at one child at a time blockjob: introduce .drain callback for jobs block: wait for all pending I/O when doing synchronous requests nfs: replace aio_poll with bdrv_drain sheepdog: disable dataplane aio: introduce aio_context_in_iothread block: only call aio_poll from iothread iothread: release AioContext around aio_poll qemu-thread: introduce QemuRecMutex aio: convert from RFifoLock to QemuRecMutex async.c | 28 +--- block.c | 4 +- block/backup.c | 7 + block/io.c | 276 ++++++++++++++++++++++++---------------- block/linux-aio.c | 13 +- block/mirror.c | 38 +++++- block/nfs.c | 50 +++++--- block/qed-table.c | 16 +-- block/raw-aio.h | 2 +- block/raw-posix.c | 16 +-- block/sheepdog.c | 19 +++ block/throttle-groups.c | 20 +++ blockjob.c | 16 ++- docs/multiple-iothreads.txt | 40 +++--- include/block/aio.h | 13 +- include/block/block.h | 3 +- include/block/block_int.h | 22 +++- include/block/blockjob.h | 7 + include/block/throttle-groups.h | 1 + include/qemu/rfifolock.h | 54 -------- include/qemu/thread-posix.h | 6 + include/qemu/thread-win32.h | 10 ++ include/qemu/thread.h | 3 + iothread.c | 20 +-- stubs/Makefile.objs | 1 + stubs/iothread.c | 8 ++ tests/.gitignore | 1 - tests/Makefile | 2 - tests/qemu-iotests/060 | 8 +- tests/qemu-iotests/060.out | 4 +- tests/test-aio.c | 22 ++-- tests/test-rfifolock.c | 92 -------------- util/Makefile.objs | 1 - util/qemu-thread-posix.c | 13 ++ util/qemu-thread-win32.c | 25 ++++ util/rfifolock.c | 78 ------------ 36 files changed, 461 insertions(+), 478 deletions(-) delete mode 100644 include/qemu/rfifolock.h create mode 100644 stubs/iothread.c delete mode 100644 tests/test-rfifolock.c delete mode 100644 util/rfifolock.c -- 1.8.3.1