From: Anthony Liguori <aliguori@us.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>, qemu-devel@nongnu.org
Cc: stefanha@redhat.com
Subject: Re: [Qemu-devel] [PULL v2 00/39] AioContext, thread pool, Win32 AIO
Date: Thu, 01 Nov 2012 14:33:11 -0500 [thread overview]
Message-ID: <87wqy5p18o.fsf@codemonkey.ws> (raw)
In-Reply-To: <1351697456-16107-1-git-send-email-pbonzini@redhat.com>
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
prev parent reply other threads:[~2012-11-01 19:43 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-31 15:30 [Qemu-devel] [PULL v2 00/39] AioContext, thread pool, Win32 AIO Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 01/39] janitor: move iovector functions out of cutils.c Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 02/39] build: move cutils.o and qemu-timer-common.o to oslib-obj-y Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 03/39] compiler: use weak aliases to provide default definitions Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 04/39] sockets: use weak aliases instead of qemu-tool.c Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 05/39] fdsets: use weak aliases instead of qemu-tool.c/qemu-user.c Paolo Bonzini
2012-11-15 18:01 ` Stefan Weil
2012-11-15 20:52 ` Paolo Bonzini
2012-11-15 22:18 ` Stefan Weil
2012-11-16 9:35 ` Paolo Bonzini
2012-11-16 17:15 ` Stefan Weil
2012-11-16 17:39 ` Paolo Bonzini
2012-11-16 17:52 ` Peter Maydell
2012-11-16 17:55 ` Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 06/39] iohandler: add weak alias in qemu-sockets.c, for qemu-ga Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 07/39] win32: add weak version of qemu_fd_register Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 08/39] qemu-timer: make initialization functions idempotent Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 09/39] main-loop: unify qemu_init_main_loop between QEMU and tools Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 10/39] qemu-tool: do not depend on qemu-timer.c Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 11/39] build: opts-visitor is not really part of QAPI Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 12/39] build: do not include main loop where it is not actually used Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 13/39] event_notifier: add Win32 implementation Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 14/39] event_notifier: enable it to use pipes Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 15/39] vl: init main loop earlier Paolo Bonzini
2012-11-02 7:26 ` Jan Kiszka
2012-11-02 9:55 ` Paolo Bonzini
2012-11-02 10:32 ` Jan Kiszka
2012-11-02 11:04 ` Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 16/39] aio: change qemu_aio_set_fd_handler to return void Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 17/39] aio: provide platform-independent API Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 18/39] aio: introduce AioContext, move bottom halves there Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 19/39] aio: add I/O handlers to the AioContext interface Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 20/39] aio: test node->deleted before calling io_flush Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 21/39] aio: add non-blocking variant of aio_wait Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 22/39] aio: prepare for introducing GSource-based dispatch Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 23/39] aio: add Win32 implementation Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 24/39] aio: make AioContexts GSources Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 25/39] aio: add aio_notify Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 26/39] aio: call aio_notify after setting I/O handlers Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 27/39] main-loop: use GSource to poll AIO file descriptors Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 28/39] main-loop: use aio_notify for qemu_notify_event Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 29/39] aio: clean up now-unused functions Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 30/39] linux-aio: use event notifiers Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 31/39] qemu-thread: add QemuSemaphore Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 32/39] aio: add generic thread-pool facility Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 33/39] threadpool: do not take lock in event_notifier_ready Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 34/39] block: switch posix-aio-compat to threadpool Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 35/39] raw: merge posix-aio-compat.c into block/raw-posix.c Paolo Bonzini
2012-11-02 15:00 ` Peter Maydell
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 36/39] raw-posix: rename raw-posix-aio.h, hide unavailable prototypes Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 37/39] raw-win32: add emulated AIO support Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 38/39] raw-posix: move linux-aio.c to block/ Paolo Bonzini
2012-10-31 15:30 ` [Qemu-devel] [PATCH v2 39/39] raw-win32: implement native asynchronous I/O Paolo Bonzini
2012-11-21 13:20 ` Jan Kiszka
2012-11-21 13:25 ` Paolo Bonzini
2012-11-21 13:27 ` Jan Kiszka
2012-11-21 13:33 ` Paolo Bonzini
2012-11-21 13:38 ` Jan Kiszka
2012-11-22 13:34 ` Jan Kiszka
2012-11-22 15:16 ` Paolo Bonzini
2012-11-22 15:53 ` Jan Kiszka
2012-11-01 19:33 ` Anthony Liguori [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wqy5p18o.fsf@codemonkey.ws \
--to=aliguori@us.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).