WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] IOMMU support: __direct_remap_pfn_range() fails

To: "Langsdorf, Mark" <mark.langsdorf@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] IOMMU support: __direct_remap_pfn_range() fails
From: "Ian Pratt" <m+Ian.Pratt@xxxxxxxxxxxx>
Date: Fri, 30 Sep 2005 23:01:25 +0100
Delivery-date: Fri, 30 Sep 2005 21:59:16 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcXGAjR4vN7kD1l3SNyUFvnONZrrbQAA058wAACUK0AAAIAVYA==
Thread-topic: [Xen-devel] IOMMU support: __direct_remap_pfn_range() fails
What's calling direct_remap_page_range?

My suspicion is that the driver is allocating some memory and then
calling ioremap on it, which isn't a good thing to do as its not MMIO
memory. You can get away with this on native, but not Xen.

Can you point us at the appropriate section of the driver code.

Thanks,
Ian

> > > I am working on getting IOMMU support for AMD64.
> > > ...the agpgart code is still failing.
> > > 
> > > I have tracked the problem down to line 92 of ioremap.c, in 
> > > __direct_remap_pfn_range().
> > > The failing instruction is a call to HYPERVISOR_mmu_update().
> > 
> > What are the arguments to direct_remap_pfn_range?
> 
> struct struct_mm *mm = 0x804c9540
> unsigned long address = 80000
> unsigned long mfn = 4280
> unsigned long size = 80000
> pgprot_t prot = 77
> domid_t domid = 7ff1
> 
> The arguments the HYPERVISOR call are
>       u = 43418
>       v - u = 800
>       domid = 7ff1
> 
> > With a verbose=y build of Xen what debug output do you get from xen 
> > (on the serial line).
> 
> (XEN) (file=/usr/src/xen-unstable/xen-source/xen/include/asm/mm.h,
> line=202)
> Error pfn 4280: rd=ffff8300001c7080, od=0000000000000000, 
> caf=00000000,
> taf=0000000000000006
> 
> If I'm reading asm/mm.h:get_page() right, it's failing 
> because the page->count_info is 0, but I don't know who set 
> that value or if that's meaningful.
> 
> -Mark Langsdorf
> AMD, Inc.
> 
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel