qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 00/25] AioContext & threadpool


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH 00/25] AioContext & threadpool
Date: Fri, 26 Oct 2012 16:05:30 +0200

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

-- 
1.7.12.1




reply via email to

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