qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/25] AioContext & threadpool
@ 2012-10-26 14:05 Paolo Bonzini
  2012-10-26 14:05 ` [Qemu-devel] [PATCH 01/25] event_notifier: add Win32 implementation Paolo Bonzini
                   ` (25 more replies)
  0 siblings, 26 replies; 32+ messages in thread
From: Paolo Bonzini @ 2012-10-26 14:05 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, stefanha

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

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2012-10-31 13:45 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-26 14:05 [Qemu-devel] [PATCH 00/25] AioContext & threadpool Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 01/25] event_notifier: add Win32 implementation Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 02/25] event_notifier: enable it to use pipes Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 03/25] aio: change qemu_aio_set_fd_handler to return void Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 04/25] aio: provide platform-independent API Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 05/25] aio: introduce AioContext, move bottom halves there Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 06/25] aio: add I/O handlers to the AioContext interface Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 07/25] aio: test node->deleted before calling io_flush Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 08/25] aio: add non-blocking variant of aio_wait Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 09/25] aio: prepare for introducing GSource-based dispatch Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 10/25] aio: add Win32 implementation Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 11/25] aio: make AioContexts GSources Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 12/25] aio: add aio_notify Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 13/25] aio: call aio_notify after setting I/O handlers Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 14/25] main-loop: use GSource to poll AIO file descriptors Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 15/25] main-loop: use aio_notify for qemu_notify_event Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 16/25] aio: clean up now-unused functions Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 17/25] linux-aio: use event notifiers Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 18/25] qemu-thread: add QemuSemaphore Paolo Bonzini
2012-10-30 18:48   ` Stefan Hajnoczi
2012-10-31  8:46     ` Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 19/25] aio: add generic thread-pool facility Paolo Bonzini
2012-10-30 19:13   ` Stefan Hajnoczi
2012-10-31  9:41     ` Paolo Bonzini
2012-10-31 13:44       ` Stefan Hajnoczi
2012-10-26 14:05 ` [Qemu-devel] [PATCH 20/25] block: switch posix-aio-compat to threadpool Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 21/25] raw: merge posix-aio-compat.c into block/raw-posix.c Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 22/25] raw-posix: rename raw-posix-aio.h, hide unavailable prototypes Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 23/25] raw-win32: add emulated AIO support Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 24/25] raw-posix: move linux-aio.c to block/ Paolo Bonzini
2012-10-26 14:05 ` [Qemu-devel] [PATCH 25/25] raw-win32: implement native asynchronous I/O Paolo Bonzini
2012-10-30 19:15 ` [Qemu-devel] [PATCH 00/25] AioContext & threadpool Stefan Hajnoczi

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).