qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL v2 00/39] AioContext, thread pool, Win32 AIO


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PULL v2 00/39] AioContext, thread pool, Win32 AIO
Date: Thu, 01 Nov 2012 14:33:11 -0500
User-agent: Notmuch/0.13.2+93~ged93d79 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu)

Paolo Bonzini <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]