From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:33131) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qz9kM-0004ro-OK for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:04:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qz9kH-0003fX-6H for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:04:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:11459) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qz9kG-0003ej-Ji for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:04:01 -0400 Message-ID: <4E5FACD6.9000603@redhat.com> Date: Thu, 01 Sep 2011 19:03:34 +0300 From: Avi Kivity MIME-Version: 1.0 References: <1314853263-2086-1-git-send-email-david@gibson.dropbear.id.au> <1314853263-2086-2-git-send-email-david@gibson.dropbear.id.au> <4E5FAADF.1040704@us.ibm.com> In-Reply-To: <4E5FAADF.1040704@us.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 01/10] Add stub functions for PCI device models to do PCI DMA List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: joerg.roedel@amd.com, agraf@suse.de, qemu-devel@nongnu.org, eduard.munteanu@linux360.ro, David Gibson , rth@twiddle.net On 09/01/2011 06:55 PM, Anthony Liguori wrote: > On 09/01/2011 12:00 AM, David Gibson wrote: >> This patch adds functions to pci.[ch] to perform PCI DMA operations. At >> present, these are just stubs which perform directly cpu physical memory >> accesses. >> >> Using these stubs, however, distinguishes PCI device DMA transactions >> from >> other accesses to physical memory, which will allow PCI IOMMU support to >> be added in one place, rather than updating every PCI driver at that >> time. >> >> That is, it allows us to update individual PCI drivers to support an >> IOMMU >> without having yet determined the details of how the IOMMU emulation >> will >> operate. This will let us remove the most bitrot-sensitive part of an >> IOMMU patch in advance. >> >> Signed-off-by: David Gibson > > I think this is the wrong approach given the introduction of the > memory API. > > I think we should have a generic memory access function that takes a > MemoryRegion as it's first argument. > > The PCI bus should then expose one memory region for each device > (that's how it can figure out where the access is coming from). > > Richard/Avi, what do you think? > I think the patchset is fine. It routes all access through pci_dma_rw(), which accepts a PCIDevice. We can later define pci_dma_rw() in terms of the memory API and get the benefit of the memory hierarchy. -- error compiling committee.c: too many arguments to function