From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L6vBx-0007Rj-Np for qemu-devel@nongnu.org; Sun, 30 Nov 2008 17:55:05 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L6vBv-0007Pi-Ov for qemu-devel@nongnu.org; Sun, 30 Nov 2008 17:55:05 -0500 Received: from [199.232.76.173] (port=37536 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L6vBv-0007PW-KJ for qemu-devel@nongnu.org; Sun, 30 Nov 2008 17:55:03 -0500 Received: from an-out-0708.google.com ([209.85.132.244]:3279) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1L6vBv-00084J-5h for qemu-devel@nongnu.org; Sun, 30 Nov 2008 17:55:03 -0500 Received: by an-out-0708.google.com with SMTP id c38so736757ana.37 for ; Sun, 30 Nov 2008 14:55:02 -0800 (PST) Message-ID: <493319C3.2080405@codemonkey.ws> Date: Sun, 30 Nov 2008 16:54:59 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [RFC 1/1] pci-dma-api-v2 References: <20081127123538.GC10348@random.random> <20081128015602.GA31011@random.random> <20081128185001.GD31011@random.random> <20081130174133.GC32172@random.random> <20081130190408.GE32172@random.random> <20081130192000.GF32172@random.random> In-Reply-To: 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 Cc: Andrea Arcangeli Blue Swirl wrote: > On 11/30/08, Andrea Arcangeli wrote: > >> On Sun, Nov 30, 2008 at 09:11:28PM +0200, Blue Swirl wrote: >> > Yes, this version (attached) works. >> >> >> Ok great! ;) >> > > This looks promising. Maybe the previous attempts tried to solve > several problems at once, like the complex address translation schemes > I have in mind, in addition to the basic zero-copy DMA transfer.This > version leaves the DMA address translation to the caller and operates > using physical memory addresses. Another way would be to use directly > host pointers. > I'm happy to separate address translation from just zero-copy IO. I agree that a lot of the complexity is introduced trying to solve everything. For me, just extending the BlockDriver API is a problem. I'd like to see the API properly structured around a single vector API. This is independent of zero copy. I also think that in the very least, a DMA must be encapsulated in a structure, that has functions to pin()/unpin() that generate bounce buffers as necessary. I think it's probably a good idea to separate a basic DMA api from a PCI DMA api. Regards, Anthony Liguori