From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IzIzt-0005Ar-1W for qemu-devel@nongnu.org; Mon, 03 Dec 2007 16:38:37 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IzIzq-00059F-Tm for qemu-devel@nongnu.org; Mon, 03 Dec 2007 16:38:36 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IzIzq-000595-Jn for qemu-devel@nongnu.org; Mon, 03 Dec 2007 16:38:34 -0500 Received: from an-out-0708.google.com ([209.85.132.243]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IzIzq-00035C-DS for qemu-devel@nongnu.org; Mon, 03 Dec 2007 16:38:34 -0500 Received: by an-out-0708.google.com with SMTP id b38so1113056ana for ; Mon, 03 Dec 2007 13:38:33 -0800 (PST) Message-ID: <47547753.2050101@codemonkey.ws> Date: Mon, 03 Dec 2007 15:38:27 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 2/2 v2] Direct IDE I/O References: <11966765602186@bull.net> <4753D920.4060500@bellard.org> <1196677804.5275.5.camel@frecb07144> <475426C7.20503@codemonkey.ws> <20071203170800.GC3797@implementation> <47544588.10700@codemonkey.ws> <1196709044.5587.20.camel@frecb07144> <47547163.1020604@redhat.com> In-Reply-To: <47547163.1020604@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed 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: qemu-devel@nongnu.org Gerd Hoffmann wrote: > Hi, > > >> BTW, if everyone thinks it could be a good idea I can port block-raw.c >> to use linux kernel AIO (without removing POSIX AIO support, of course) >> > > IMHO it would be a much better idea to kill the aio interface altogether > and instead make the block drivers reentrant. Then you can use > (multiple) posix threads to run the I/O async if you want. > Threads are a poor substitute for a proper AIO interface. linux-aio gives you everything you could possibly want in an interface since it allows you to submit multiple vectored operations in a single syscall, use an fd to signal request completion, complete multiple requests in a single syscall, and inject barriers via fdsync. Regards, Anthony Liguori > cheers, > Gerd > > > > > >