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] DMA trouble with current xen-sparse

On Wed, Nov 02, 2005 at 06:04:25PM -0500, Daniel Veillard wrote:
>   I'm not a kernel hacker, but if you give me a patch displaying those
> informations at the IOMMU_BUG_ON pointed by Steven, I will gladly rebuild 
> and try to reboot over it to give you the informations (I have no serial
> so hint on avoiding the instant reboot of the dom0 would help). Oh yeah
> it's just dom0 on top of the hypervisor, no domU even started.

Hi Daniel,

could you try the following patch just to have a bit more information
about the pointer and the size ?

diff -r ca2e91ab4311 linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c
--- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c       Thu Nov  3 
01:45:07 2005
+++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c       Wed Nov  2 
21:32:34 2005
@@ -267,6 +267,8 @@
                dma = swiotlb_map_single(dev, ptr, size, direction);
        } else {
                dma = virt_to_bus(ptr);
+               if (range_straddles_page_boundary(ptr, size))
+                       printk("ptr: %p %zd\n", ptr, size);
                IOMMU_BUG_ON(range_straddles_page_boundary(ptr, size));
                IOMMU_BUG_ON(address_needs_mapping(dev, dma));
        }


stick a while (1) ; after the printk would help you to avoid the reboot
something like:

if (range_straddles_page_boundary(ptr, size)) {
        printk("ptr: %p %zd\n", ptr, size);
        while (1);
}

Cheers,
-- 
Vincent Hanquez

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