[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/25] AioContext & threadpool
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 00/25] AioContext & threadpool |
Date: |
Fri, 26 Oct 2012 16:05:30 +0200 |
Since half of the patches are in common between the two series, here
are both of them together. Under Wine I see a performance regression
due to AIO, but I wouldn't be surprised if it is an emulation artifact
(especially since attempts to use native AIO are converted by Wine to
synchronous I/O + the overhead of signaling). If testing gives the same
results on native Windows it can be reverted later.
Anthony, please let me know if you want to apply this before or after
the rename.
Paolo
Paolo Bonzini (25):
event_notifier: add Win32 implementation
event_notifier: enable it to use pipes
aio: change qemu_aio_set_fd_handler to return void
aio: provide platform-independent API
aio: introduce AioContext, move bottom halves there
aio: add I/O handlers to the AioContext interface
aio: test node->deleted before calling io_flush
aio: add non-blocking variant of aio_wait
aio: prepare for introducing GSource-based dispatch
aio: add Win32 implementation
aio: make AioContexts GSources
aio: add aio_notify
aio: call aio_notify after setting I/O handlers
main-loop: use GSource to poll AIO file descriptors
main-loop: use aio_notify for qemu_notify_event
aio: clean up now-unused functions
linux-aio: use event notifiers
qemu-thread: add QemuSemaphore
aio: add generic thread-pool facility
block: switch posix-aio-compat to threadpool
raw: merge posix-aio-compat.c into block/raw-posix.c
raw-posix: rename raw-posix-aio.h, hide unavailable prototypes
raw-win32: add emulated AIO support
raw-posix: move linux-aio.c to block/
raw-win32: implement native asynchronous I/O
Makefile.objs | 10 +-
aio.c => aio-posix.c | 172 +++++---
aio.c => aio-win32.c | 197 +++++----
async.c | 118 ++++-
block/Makefile.objs | 9 +-
linux-aio.c => block/linux-aio.c | 51 +--
block/{raw-posix-aio.h => raw-aio.h} | 29 +-
block/raw-posix.c | 301 ++++++++++++-
block/raw-win32.c | 221 +++++++---
block/win32-aio.c | 226 ++++++++++
event_notifier-posix.c | 120 +++++
event_notifier.c => event_notifier-win32.c | 48 +-
event_notifier.h | 20 +-
hw/hw.h | 1 +
iohandler.c | 1 +
main-loop.c | 160 +++----
main-loop.h | 56 +--
oslib-posix.c | 31 --
posix-aio-compat.c | 679 -----------------------------
qemu-aio.h | 206 ++++++++-
qemu-char.h | 1 +
qemu-common.h | 2 +-
qemu-coroutine-lock.c | 2 +-
qemu-os-win32.h | 1 -
qemu-thread-posix.c | 74 ++++
qemu-thread-posix.h | 5 +
qemu-thread-win32.c | 35 ++
qemu-thread-win32.h | 4 +
qemu-thread.h | 7 +
thread-pool.c | 279 ++++++++++++
thread-pool.h | 34 ++
trace-events | 5 +
32 file modificati, 1926 inserzioni(+), 1179 rimozioni(-)
copy aio.c => aio-posix.c (44%)
rename aio.c => aio-win32.c (42%)
rename linux-aio.c => block/linux-aio.c (82%)
rename block/{raw-posix-aio.h => raw-aio.h} (71%)
create mode 100644 block/win32-aio.c
create mode 100644 event_notifier-posix.c
rename event_notifier.c => event_notifier-win32.c (49%)
delete mode 100644 posix-aio-compat.c
create mode 100644 thread-pool.c
create mode 100644 thread-pool.h
--
1.7.12.1
- [Qemu-devel] [PATCH 00/25] AioContext & threadpool,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 01/25] event_notifier: add Win32 implementation, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 03/25] aio: change qemu_aio_set_fd_handler to return void, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 04/25] aio: provide platform-independent API, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 05/25] aio: introduce AioContext, move bottom halves there, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 07/25] aio: test node->deleted before calling io_flush, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 11/25] aio: make AioContexts GSources, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 08/25] aio: add non-blocking variant of aio_wait, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 06/25] aio: add I/O handlers to the AioContext interface, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 02/25] event_notifier: enable it to use pipes, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 09/25] aio: prepare for introducing GSource-based dispatch, Paolo Bonzini, 2012/10/26