From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LA521-0005PF-P6 for qemu-devel@nongnu.org; Tue, 09 Dec 2008 11:01:53 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LA520-0005Nx-Ap for qemu-devel@nongnu.org; Tue, 09 Dec 2008 11:01:53 -0500 Received: from [199.232.76.173] (port=60733 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LA51z-0005Ns-Ue for qemu-devel@nongnu.org; Tue, 09 Dec 2008 11:01:51 -0500 Received: from e2.ny.us.ibm.com ([32.97.182.142]:42349) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LA51z-0002Fw-B4 for qemu-devel@nongnu.org; Tue, 09 Dec 2008 11:01:51 -0500 Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e2.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id mB9G16Nd031159 for ; Tue, 9 Dec 2008 11:01:06 -0500 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id mB9G1Z24401446 for ; Tue, 9 Dec 2008 11:01:36 -0500 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id mB9G1ZC9026039 for ; Tue, 9 Dec 2008 09:01:35 -0700 Message-ID: <493E965E.5050701@us.ibm.com> Date: Tue, 09 Dec 2008 10:01:34 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [RFC] Replace posix-aio with custom thread pool References: <1228512061-25398-1-git-send-email-aliguori@us.ibm.com> <493E941D.4000608@redhat.com> In-Reply-To: <493E941D.4000608@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; 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: Gerd Hoffmann Cc: qemu-devel@nongnu.org, kvm-devel Gerd Hoffmann wrote: > Hi, > > >> 2) it's impossible to add new interfaces and we need a vectored read/write >> operation to properly support a zero-copy API. >> > > I'm eager to try vectored block ops for the xenbus block backend. > > >> It performs at least as well as the current posix-aio code (in some >> circumstances, even better). >> > > Well, I see a massive slowdown when switching from sync to aio in the > xen backend code. I think the reason is that due to the lack of a > vectored interface (and thus /me submitting separate aio requests for > each iovec element) stuff gets parallelized *way* too much and disk seek > times are killing me. > Yup. And I'm also adding vectored IO operations. Patches for that should show up in the next day or so. We experienced the same problem with virtio-blk FWIW. >> My only concern here is non-Linux Unices like FreeBSD. They have kernel support >> for posix-aio. Since we cannot extend those interfaces though, I think that >> even on those platforms we should still use a thread pool. >> > > Which might change some day in the future when we manage to get iovec > support into posix-aio specs. > > I think the interface should use qemu-prefixed function and struct > names. The we can trivially map them to a system-provided aio > implementation without worrying about name clashes. > Yes, that's what I'm going to do before committing it. Regards, Anthony Liguori > cheers, > Gerd >