From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LApD5-0003ja-Ic for qemu-devel@nongnu.org; Thu, 11 Dec 2008 12:20:23 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LApD2-0003i6-6b for qemu-devel@nongnu.org; Thu, 11 Dec 2008 12:20:23 -0500 Received: from [199.232.76.173] (port=39204 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LApD1-0003hs-WD for qemu-devel@nongnu.org; Thu, 11 Dec 2008 12:20:20 -0500 Received: from mx2.redhat.com ([66.187.237.31]:45602) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LApD1-0002IJ-0v for qemu-devel@nongnu.org; Thu, 11 Dec 2008 12:20:19 -0500 Message-ID: <49414BC9.5090905@redhat.com> Date: Thu, 11 Dec 2008 18:20:09 +0100 From: Gerd Hoffmann MIME-Version: 1.0 Subject: Re: [Qemu-devel] [RFC] Replace posix-aio with custom thread pool References: <493E965E.5050701@us.ibm.com> <20081210164401.GF18814@random.random> <493FFAB6.2000106@codemonkey.ws> <493FFC8E.9080802@redhat.com> <49400F69.8080707@codemonkey.ws> <20081210190810.GG18814@random.random> <20081211131222.GA14908@random.random> <494130B5.2080800@redhat.com> <20081211155335.GE14908@random.random> <49413B9C.3030703@redhat.com> <20081211164947.GD6809@random.random> In-Reply-To: <20081211164947.GD6809@random.random> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andrea Arcangeli Cc: kvm-devel , qemu-devel@nongnu.org Andrea Arcangeli wrote: > On Thu, Dec 11, 2008 at 05:11:08PM +0100, Gerd Hoffmann wrote: >> Yes. But kernel aio requires O_DIRECT, so aio users are affected >> nevertheless. > > Are you sure? It surely wasn't the case... Tons of docs say so, but might be they are wrong, I didn't check. >> Kernel side looks easy, attached patch + syscall table windup in all >> archs ... > > So should we depend on this? I suspect we will end up with multiple implementations anyway. So one could be preadv+threads. Probably quite portable if we manage to get the syscalls into linux kernel and glibc. All *BSDs have it already, for solaris I've found a feature request on that. Dunno for MacOS. Additionally we could have OS-specific bits such as linux-aio. Maybe also posix-aio for the *BSD family in case their kernel support for that is better than what glibc provides (i.e. can handle multiple requests in parallel without the fdpool hack). cheers, Gerd