[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/25] AioContext & threadpool
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 00/25] AioContext & threadpool |
Date: |
Tue, 30 Oct 2012 20:15:34 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Oct 26, 2012 at 04:05:30PM +0200, Paolo Bonzini wrote:
> 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
Posted a few small comments. Otherwise looks good.
Stefan
- [Qemu-devel] [PATCH 16/25] aio: clean up now-unused functions, (continued)
- [Qemu-devel] [PATCH 16/25] aio: clean up now-unused functions, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 14/25] main-loop: use GSource to poll AIO file descriptors, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 19/25] aio: add generic thread-pool facility, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 22/25] raw-posix: rename raw-posix-aio.h, hide unavailable prototypes, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 25/25] raw-win32: implement native asynchronous I/O, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 23/25] raw-win32: add emulated AIO support, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 20/25] block: switch posix-aio-compat to threadpool, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 21/25] raw: merge posix-aio-compat.c into block/raw-posix.c, Paolo Bonzini, 2012/10/26
- [Qemu-devel] [PATCH 24/25] raw-posix: move linux-aio.c to block/, Paolo Bonzini, 2012/10/26
- Re: [Qemu-devel] [PATCH 00/25] AioContext & threadpool,
Stefan Hajnoczi <=