From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Camachat Subject: Re: Can I specify a physical memory region for a domU Date: Thu, 8 Sep 2011 11:56:07 -0700 Message-ID: References: <20110908125920.GC28591@dumpdata.com> <20110908181205.GA19078@dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20110908181205.GA19078@dumpdata.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Konrad Rzeszutek Wilk Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Thu, Sep 8, 2011 at 11:12 AM, Konrad Rzeszutek Wilk wrote: > On Thu, Sep 08, 2011 at 10:22:01AM -0700, Eric Camachat wrote: >> On Thu, Sep 8, 2011 at 5:59 AM, Konrad Rzeszutek Wilk >> wrote: >> > On Wed, Sep 07, 2011 at 05:47:46PM -0700, Eric Camachat wrote: >> >> Hi, >> >> >> >> I am porting our drivers to XEN's PV domU (with PV PCI passthrouth), = I >> > >> > Use the DMA API that Linux provides (I presume that is what you meant >> > by PV DomU), and use the dma_alloc_coherent to set your regions. >> >> That's what I thought before. We use a shared DMA region for multiple ha= rdware. >> Maybe I can dma_alloc_coherent for 1st and the others use the same regio= n. > > You can definitly try it. Or use the dmapool API to get a shared > pool of coherent memory. > >> I will try it. >> >> > >> > Also pass in 'iommu=3Dsoft' on your Linux command line to enable the >> > Xen SWIOTLB DMA system. >> > >> >> have to allocate a memory block and tell the hardware to access it. >> >> But the hardware can address 32-bit only, so I want dedicate a region >> >> of memory that below 2GB for the domU only. >> > >> > Uh, don't you mean 4GB? - 32bit is up to 4GB. >> >> The hardware uses 32-bit addressing, but the system will crash if I >> assigned above 2GB address to it. > > Ha! so buggy hardware.. or you are not using the XEn-SWIOTLB but somethin= g > else. >> So, 4GB from hardware spec, 2GB from my test. I am looking into that. > > Make sure you set > =C2=A0pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(31)); > > on top of pci_set_dma_mask(dev, DMA_BIT_MASK(31)); > in your driver. > A lot of work to port the driver to PV domU, hope it works. Thanks for your help!