[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 00/16] AioContext fine-grained locking, part 1 of
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH v2 00/16] AioContext fine-grained locking, part 1 of 3, including bdrv_drain rewrite |
Date: |
Wed, 16 Mar 2016 15:16:41 +0100 |
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
- [Qemu-devel] [PATCH v2 00/16] AioContext fine-grained locking, part 1 of 3, including bdrv_drain rewrite,
Paolo Bonzini <=
- [Qemu-devel] [PATCH v2 01/16] block: make bdrv_start_throttled_reqs return void, Paolo Bonzini, 2016/03/16
- [Qemu-devel] [PATCH v2 03/16] block: introduce bdrv_no_throttling_begin/end, Paolo Bonzini, 2016/03/16
- [Qemu-devel] [PATCH v2 02/16] block: move restarting of throttled reqs to block/throttle-groups.c, Paolo Bonzini, 2016/03/16
- [Qemu-devel] [PATCH v2 04/16] block: plug whole tree at once, introduce bdrv_io_unplugged_begin/end, Paolo Bonzini, 2016/03/16
- [Qemu-devel] [PATCH v2 06/16] block: add BDS field to count in-flight requests, Paolo Bonzini, 2016/03/16
- [Qemu-devel] [PATCH v2 05/16] mirror: use bottom half to re-enter coroutine, Paolo Bonzini, 2016/03/16