From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LAt7e-00068T-59 for qemu-devel@nongnu.org; Thu, 11 Dec 2008 16:31:02 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LAt7c-000675-K5 for qemu-devel@nongnu.org; Thu, 11 Dec 2008 16:31:01 -0500 Received: from [199.232.76.173] (port=36628 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LAt7c-00066t-AA for qemu-devel@nongnu.org; Thu, 11 Dec 2008 16:31:00 -0500 Received: from verein.lst.de ([213.95.11.210]:34085) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA1:24) (Exim 4.60) (envelope-from ) id 1LAt7b-0002j9-M7 for qemu-devel@nongnu.org; Thu, 11 Dec 2008 16:31:00 -0500 Date: Thu, 11 Dec 2008 22:30:55 +0100 From: Christoph Hellwig Subject: Re: [Qemu-devel] [RFC] Replace posix-aio with custom thread pool Message-ID: <20081211213055.GA2399@lst.de> References: <493E941D.4000608@redhat.com> <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> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081211155335.GE14908@random.random> 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 Cc: Gerd Hoffmann , kvm-devel On Thu, Dec 11, 2008 at 04:53:35PM +0100, Andrea Arcangeli wrote: > > * It can't handle block allocation. Kernel handles that by doing > > such writes synchronously via VFS layer (instead of the separate > > aio code paths). Leads to horrible performance and bug reports > > such as "installs on sparse files are very slow". > > I think here you mean O_DIRECT regardless of aio/sync API, I doubt aio > has any relevance to block allocation in any way, so whatever problem > we have with kernel API and O_DIRECT should also be there with > sync-api + userland threads and O_DIRECT. userland threads with O_DIRECT means only the thread doing block allocation gets stalled, not any other.