From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:41533) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TRSUE-00047z-Kp for qemu-devel@nongnu.org; Thu, 25 Oct 2012 14:48:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TRSUD-0004vE-6f for qemu-devel@nongnu.org; Thu, 25 Oct 2012 14:48:58 -0400 Received: from e28smtp01.in.ibm.com ([122.248.162.1]:52110) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TRSUC-0004pk-GT for qemu-devel@nongnu.org; Thu, 25 Oct 2012 14:48:57 -0400 Received: from /spool/local by e28smtp01.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 26 Oct 2012 00:18:52 +0530 Received: from d28av04.in.ibm.com (d28av04.in.ibm.com [9.184.220.66]) by d28relay04.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q9PImcoA6422960 for ; Fri, 26 Oct 2012 00:18:38 +0530 Received: from d28av04.in.ibm.com (loopback [127.0.0.1]) by d28av04.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q9Q0ITmH009306 for ; Fri, 26 Oct 2012 11:18:29 +1100 Message-ID: <50898983.7090705@us.ibm.com> Date: Thu, 25 Oct 2012 13:48:35 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1344338247-17567-1-git-send-email-pbonzini@redhat.com> <50896766.9040101@redhat.com> In-Reply-To: <50896766.9040101@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed 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: Paolo Bonzini Cc: Stefan Hajnoczi , sw@weilnetz.de, qemu-devel@nongnu.org, stefanha@linux.vnet.ibm.com, aliguori@linux.vnet.ibm.com On 10/25/2012 11:23 AM, Paolo Bonzini wrote: > 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. What was the conclusion with 12/12? I'm pretty happy with the series. If no one is unhappy about 12/12 then I think we should apply it. Regards, Anthony Liguori > > Paolo >