Message ID | 1351697456-16107-1-git-send-email-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Paolo Bonzini <pbonzini@redhat.com> writes: > The following changes since commit aee0bf7d8d7564f8f2c40e4501695c492b7dd8d1: > > tap-win32: stubs to fix win32 build (2012-10-30 19:18:53 +0000) > > are available in the git repository at: > > git://github.com/bonzini/qemu.git threadpool > > for you to fetch changes up to f563a5d7a820424756f358e747238f03e866838a: > > Merge remote-tracking branch 'origin/master' into threadpool (2012-10-31 10:42:51 +0100) > > Patches 1 to 12 eliminate the dependencies of qemu-tool.c on the main loop > and AIO infrastructure. Otherwise the build rules for vscclient, tests > and qemu-ga become too hairy. Patches 13 to 30 introduce AioContext > and a new portable AIO API based on EventNotifier. Patches 31 to 38 > introduce a generic threadpool that replaces posix-aio-compat.c. > Patch 39 introduces support for Win32 native AIO. (As usual, Win32 > bits are mostly there as a testbed for the flexibility of the API). > > The patches are based in the remote branch on a known-good commit for > Win32 (because TCG is a bit broken in master). Thus there is a merge > commit at the top to fix the trivial conflicts between patch 1 and the > later introduction of iov_copy. > > Paolo > Pulled. Thanks. Regards, Anthony Liguori > ---------------------------------------------------------------- > > Paolo Bonzini (39): > janitor: move iovector functions out of cutils.c > build: move cutils.o and qemu-timer-common.o to oslib-obj-y > compiler: use weak aliases to provide default definitions > sockets: use weak aliases instead of qemu-tool.c > fdsets: use weak aliases instead of qemu-tool.c/qemu-user.c > iohandler: add weak alias in qemu-sockets.c, for qemu-ga > win32: add weak version of qemu_fd_register > qemu-timer: make initialization functions idempotent > main-loop: unify qemu_init_main_loop between QEMU and tools > qemu-tool: do not depend on qemu-timer.c > build: opts-visitor is not really part of QAPI > build: do not include main loop where it is not actually used > event_notifier: add Win32 implementation > event_notifier: enable it to use pipes > vl: init main loop earlier > 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 > threadpool: do not take lock in event_notifier_ready > 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 | 7 +- > Makefile.objs | 22 +- > aio-posix.c | 268 ++++++++++++++ > aio-win32.c | 215 +++++++++++ > aio.c | 194 ---------- > arch_init.h | 2 +- > async.c | 118 +++++- > block/Makefile.objs | 9 +- > linux-aio.c => block/linux-aio.c | 52 ++- > block/{raw-posix-aio.h => raw-aio.h} | 29 +- > block/raw-posix.c | 308 +++++++++++++++- > block/raw-win32.c | 221 +++++++++--- > block/win32-aio.c | 226 ++++++++++++ > compiler.h | 11 +- > cutils.c | 108 ------ > event_notifier-posix.c | 120 +++++++ > event_notifier-win32.c | 59 +++ > event_notifier.c | 67 ---- > event_notifier.h | 20 +- > hw/hw.h | 1 + > iohandler.c | 1 + > iov.c | 103 ++++++ > main-loop.c | 157 +++----- > main-loop.h | 66 +--- > osdep.c | 30 ++ > oslib-posix.c | 31 -- > oslib-win32.c | 5 + > posix-aio-compat.c | 679 ----------------------------------- > qapi/Makefile.objs | 4 +- > qemu-aio.h | 206 ++++++++++- > qemu-char.h | 1 + > qemu-common.h | 3 +- > qemu-coroutine-lock.c | 2 +- > qemu-os-win32.h | 1 - > qemu-sockets.c | 18 + > qemu-thread-posix.c | 80 +++++ > qemu-thread-posix.h | 5 + > qemu-thread-win32.c | 35 ++ > qemu-thread-win32.h | 4 + > qemu-thread.h | 7 + > qemu-timer.c | 12 +- > qemu-tool.c | 35 +- > qemu-user.c | 20 -- > qmp.c | 3 +- > tests/Makefile | 8 +- > thread-pool.c | 289 +++++++++++++++ > thread-pool.h | 34 ++ > trace-events | 5 + > vl.c | 17 +- > 49 file modificati, 2429 inserzioni(+), 1489 rimozioni(-) > create mode 100644 aio-posix.c > create mode 100644 aio-win32.c > delete mode 100644 aio.c > 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 > 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 > -- > 1.7.12.1