From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KnJza-0005YR-Ew for qemu-devel@nongnu.org; Tue, 07 Oct 2008 17:21:18 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KnJzZ-0005Y8-5h for qemu-devel@nongnu.org; Tue, 07 Oct 2008 17:21:18 -0400 Received: from [199.232.76.173] (port=51023 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KnJzY-0005Y5-Tv for qemu-devel@nongnu.org; Tue, 07 Oct 2008 17:21:16 -0400 Received: from mail-gx0-f19.google.com ([209.85.217.19]:36789) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KnJzY-0001Av-Nd for qemu-devel@nongnu.org; Tue, 07 Oct 2008 17:21:16 -0400 Received: by gxk12 with SMTP id 12so7879235gxk.10 for ; Tue, 07 Oct 2008 14:21:15 -0700 (PDT) Message-ID: <48EBD2C8.3040101@codemonkey.ws> Date: Tue, 07 Oct 2008 16:21:12 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [5323] Implement an fd pool to get real AIO with posix-aio References: <48EB8393.8020005@redhat.com> <48EB87EE.9050003@codemonkey.ws> <48EBC932.9010808@redhat.com> In-Reply-To: <48EBC932.9010808@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: qemu-devel@nongnu.org Gerd Hoffmann wrote: > Anthony Liguori wrote: > >>> Are there plans to support vectored block requests with the thread pool >>> implementation? >>> >>> >> Yes, that's the primary reason for doing a new thread pool >> implementation. >> > > Cool. > > >> Of course, we need a zero-copy DMA API before such a >> thing would make sense. >> > > Hmm, quick check of the IDE code indeed shows a copy happening there. > Why is it needed? My xen disk backend doesn't copy data. Does that > mean might have done something wrong? Does the virtio backend copy data > too? > It does now, because the cost of splitting up the AIO request for each element of the scatter/gather list was considerably higher than the cost of copying the data to a linear buffer. Look back in qemu-devel for a thread about a DMA API. You can only avoid doing a copy if you do something like phys_ram_base + PA. From an architectural perspective, this is not ideal since it doesn't allow for things like IOMMU emulation. What we need, is a zero-copy API at the PCI level. Regards, Anthony Liguori > Disclaimer: I don't know much about ide dma ... > > cheers, > Gerd > > >