On Thu, Oct 25, 2012 at 01:48:35PM -0500, Anthony Liguori wrote: > On 10/25/2012 11:23 AM, Paolo Bonzini wrote: > >Il 25/10/2012 18:01, Stefan Hajnoczi ha scritto: > >>On Tue, Aug 7, 2012 at 1:17 PM, Paolo Bonzini<[email protected]> wrote: > >>>This patch series is part 2 in my EventNotifier/AIO improvements > >>>for QEMU 1.2. It extends use of EventNotifier to the main loop > >>>and AIO subsystems. A new API using EventNotifier is added to aio.c > >>>and a new portable thread pool is introduced (based on code from > >>>posix-aio-compat.c, mostly) that uses this API. raw-posix.c is > >>>converted to use the new thread pool, and support for asynchronous > >>>I/O is finally added to Win32 as well. > >>> > >>>The network drivers (curl, libiscsi, nbd) have to be disabled > >>>under Windows. They are unlikely to have any users, since they > >>>were broken until 1.0 and (unlike slirp) we never had any report. > >>> > >>>I tested this under Wine, with a RHEL virtual machine booting just as > >>>glacially as before. "info blockstats" does show a slightly higher > >>>overhead, so I would like this to be tested on real Windows hosts. > >>>Even if the result is negative, I would prefer to keep the early > >>>parts (i.e. drop only the last patch) since they are a prerequisite for > >>>improvements to block/raw-posix.c (such as asynchronous discard > >>>support) scheduled for 1.3. The platform independent APIs introduced > >>>by patches 4 and 5 are also useful for native AIO on Win32. > >>> > >>> > >>>Paolo Bonzini (12): > >>> event_notifier: enable it to use pipes > >>> event_notifier: add Win32 implementation > >>> main-loop: use event notifiers > >>> aio: provide platform-independent API > >>> aio: add Win32 implementation > >>> 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 > >>> > >>> Makefile.objs | 12 +- > >>> aio.c => aio-posix.c | 9 + > >>> aio-win32.c | 177 +++++++++ > >>> block/Makefile.objs | 6 +- > >>> block/{raw-posix-aio.h => raw-aio.h} | 19 +- > >>> block/raw-posix.c | 297 ++++++++++++++- > >>> block/raw-win32.c | 187 +++++++--- > >>> event_notifier-posix.c | 118 ++++++ > >>> event_notifier-win32.c | 59 +++ > >>> event_notifier.c | 67 ---- > >>> event_notifier.h | 20 +- > >>> linux-aio.c | 51 ++- > >>> main-loop.c | 106 +----- > >>> oslib-posix.c | 31 -- > >>> posix-aio-compat.c | 679 > >>> ----------------------------------- > >>> qemu-aio.h | 19 +- > >>> qemu-common.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 + > >>> 25 file modificati, 1323 inserzioni(+), 978 rimozioni(-) > >>> rename aio.c => aio-posix.c (92%) > >>> create mode 100644 aio-win32.c > >>> rename block/{raw-posix-aio.h => raw-aio.h} (62%) > >>> create mode 100644 event_notifier-posix.c > >>> create mode 100644 event_notifier-win32.c > >>> delete mode 100644 event_notifier.c > >>> delete mode 100644 posix-aio-compat.c > >>> create mode 100644 thread-pool.c > >>> create mode 100644 thread-pool.h > >> > >>Ping, is there a v3? > > > >No, but I rebased it on top of AioContext in my branch. If you're > >interested I can resubmit it. > > What was the conclusion with 12/12? > > I'm pretty happy with the series. If no one is unhappy about 12/12 > then I think we should apply it.
Yes, pinged because it has useful posix-aio-compat.c clean-ups which I am building on to upstream virtio-blk-data-plane. Would love to see this merged. Stefan
