From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51509) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TRQD8-0000aC-7y for qemu-devel@nongnu.org; Thu, 25 Oct 2012 12:23:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TRQD6-0002DO-0c for qemu-devel@nongnu.org; Thu, 25 Oct 2012 12:23:10 -0400 Received: from mail-we0-f173.google.com ([74.125.82.173]:58182) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TRQD5-0002D1-MT for qemu-devel@nongnu.org; Thu, 25 Oct 2012 12:23:07 -0400 Received: by mail-we0-f173.google.com with SMTP id t11so930545wey.4 for ; Thu, 25 Oct 2012 09:23:06 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <50896766.9040101@redhat.com> Date: Thu, 25 Oct 2012 18:23:02 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1344338247-17567-1-git-send-email-pbonzini@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 00/12] Portable thread-pool/AIO, Win32 emulated AIO List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: aliguori@linux.vnet.ibm.com, qemu-devel@nongnu.org, stefanha@linux.vnet.ibm.com, sw@weilnetz.de Il 25/10/2012 18:01, Stefan Hajnoczi ha scritto: > On Tue, Aug 7, 2012 at 1:17 PM, Paolo Bonzini wrote: >> This patch series is part 2 in my EventNotifier/AIO improvements >> for QEMU 1.2. It extends use of EventNotifier to the main loop >> and AIO subsystems. A new API using EventNotifier is added to aio.c >> and a new portable thread pool is introduced (based on code from >> posix-aio-compat.c, mostly) that uses this API. raw-posix.c is >> converted to use the new thread pool, and support for asynchronous >> I/O is finally added to Win32 as well. >> >> The network drivers (curl, libiscsi, nbd) have to be disabled >> under Windows. They are unlikely to have any users, since they >> were broken until 1.0 and (unlike slirp) we never had any report. >> >> I tested this under Wine, with a RHEL virtual machine booting just as >> glacially as before. "info blockstats" does show a slightly higher >> overhead, so I would like this to be tested on real Windows hosts. >> Even if the result is negative, I would prefer to keep the early >> parts (i.e. drop only the last patch) since they are a prerequisite for >> improvements to block/raw-posix.c (such as asynchronous discard >> support) scheduled for 1.3. The platform independent APIs introduced >> by patches 4 and 5 are also useful for native AIO on Win32. >> >> >> Paolo Bonzini (12): >> event_notifier: enable it to use pipes >> event_notifier: add Win32 implementation >> main-loop: use event notifiers >> aio: provide platform-independent API >> aio: add Win32 implementation >> 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 >> >> Makefile.objs | 12 +- >> aio.c => aio-posix.c | 9 + >> aio-win32.c | 177 +++++++++ >> block/Makefile.objs | 6 +- >> block/{raw-posix-aio.h => raw-aio.h} | 19 +- >> block/raw-posix.c | 297 ++++++++++++++- >> block/raw-win32.c | 187 +++++++--- >> event_notifier-posix.c | 118 ++++++ >> event_notifier-win32.c | 59 +++ >> event_notifier.c | 67 ---- >> event_notifier.h | 20 +- >> linux-aio.c | 51 ++- >> main-loop.c | 106 +----- >> oslib-posix.c | 31 -- >> posix-aio-compat.c | 679 ----------------------------------- >> qemu-aio.h | 19 +- >> qemu-common.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 + >> 25 file modificati, 1323 inserzioni(+), 978 rimozioni(-) >> rename aio.c => aio-posix.c (92%) >> create mode 100644 aio-win32.c >> rename block/{raw-posix-aio.h => raw-aio.h} (62%) >> 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 > > Ping, is there a v3? No, but I rebased it on top of AioContext in my branch. If you're interested I can resubmit it. Paolo