From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L68cT-0007XC-Gr for qemu-devel@nongnu.org; Fri, 28 Nov 2008 14:03:13 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L68cS-0007Ww-U1 for qemu-devel@nongnu.org; Fri, 28 Nov 2008 14:03:13 -0500 Received: from [199.232.76.173] (port=35634 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L68cS-0007Wt-Ks for qemu-devel@nongnu.org; Fri, 28 Nov 2008 14:03:12 -0500 Received: from fg-out-1718.google.com ([72.14.220.159]:61576) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1L68cR-00014Y-Ht for qemu-devel@nongnu.org; Fri, 28 Nov 2008 14:03:12 -0500 Received: by fg-out-1718.google.com with SMTP id l26so1055521fgb.8 for ; Fri, 28 Nov 2008 11:03:06 -0800 (PST) Message-ID: Date: Fri, 28 Nov 2008 21:03:06 +0200 From: "Blue Swirl" Subject: Re: [Qemu-devel] [RFC 1/2] pci-dma-api-v1 In-Reply-To: <20081128185001.GD31011@random.random> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081127123538.GC10348@random.random> <20081128015602.GA31011@random.random> <20081128185001.GD31011@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: Andrea Arcangeli Cc: qemu-devel@nongnu.org On 11/28/08, Andrea Arcangeli wrote: > On Fri, Nov 28, 2008 at 07:59:13PM +0200, Blue Swirl wrote: > > I don't know, here's a pointer: > > http://lists.gnu.org/archive/html/qemu-devel/2008-08/msg00092.html > > > I'm in total agreement with it. The missing "proper vectored AIO > operations" are bdrv_aio_readv/writev ;). > > I wonder how can possibly aio_readv/writev be missing in posix aio? > Unbelievable. It'd be totally trivial to add those to glibc, much > easier infact than to pthread_create by hand, but how can we add a > dependency on a certain glibc version? Ironically it'll be more > user-friendly to add dependency on linux kernel-aio implementation > that is already available for ages and it's guaranteed to run faster > (or at least not slower). There's also lio_listio that provides for vectored AIO. > > Sorry, my description seems to have lead you to a totally wrong track. > > I meant this scenario: device (Lance Ethernet) -> DMA controller > > (MACIO) -> IOMMU -> physical memory. (In this case vectored DMA won't > > be useful since there is byte swapping involved, but serves as an > > example about generic DMA). At each step the DMA address is rewritten. > > It would be nice if the interface between Lance and DMA, DMA and IOMMU > > and IOMMU and memory was the same. > > > No problem. So you think I should change it to qemu_dma_sg instead of > pci_dma_sg? We can decide it later, but surely we can think about it > in the meantime ;). Yes. > > Here's some history, please have a look. > > > > My first failed attempt: > > http://lists.gnu.org/archive/html/qemu-devel/2007-08/msg00179.html > > > > My second failed rough sketch: > > http://lists.gnu.org/archive/html/qemu-devel/2007-10/msg00626.html > > > > Anthony's version: > > http://lists.gnu.org/archive/html/qemu-devel/2008-03/msg00474.html > > > > Anthony's second version: > > http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00077.html > > > Thanks a lot for the pointers. Perhaps you could point out why the previous attempts failed, but yours won't? ;-)