[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Question regarding SLAB corruption



On Mon, Jul 09, 2007 at 01:47:34PM +0100, Keir Fraser wrote:
> Well, we currently assume that segments of a scatterlist (as passed to
> pci_map_sg) do not cross page boundaries. It looks like this assumption is
> broken (certainly for the infiniband driver!).
> 
> I've just checked in the attached patch to fix this issue. Please give it a
> try in your dom0 tree.

for some reason, insmod/rmmod works fine even without the patch in Dom0. The
patch wasn't applied cleanly anyway, I'm using stock Xen 3.1 which does not 
have the code:

dma = gnttab_dma_map_page(virt_to_page(ptr)) +                  
                      offset_in_page(ptr); 

Anyway, in DomU it produced message (but also an oops):
Fatal DMA error! Please use 'swiotlb=force'
----------- cut here --------- please bite here ---------
Kernel BUG at arch/x86_64/kernel/../../i386/kernel/pci-dma-xen.c:100

> > I did debug like this - so it prints physical and virtual addresses and they
> > seems to be perfectly contiguous. Are the physical addresses real physical
> > addresses or virtualized by Xen hypervisor?
> 
> You want to use virt_to_machine(). As you say, the addresses returned by
> virt_to_phys() are virtual-physical, which is not what you want.

Well, we got it. The virt_to_machine shows that although the pages are 
contiguous, they are in the reversed order! As can be seen below. Should the 
swiotlb=force solve the problem?

ib_mthca 0000:08:00.0: Alloc pages starts
ib_mthca 0000:08:00.0: Page phys. addr 0000000025455000, virt ffff880099d40000
ib_mthca 0000:08:00.0: Page phys. addr 0000000025454000, virt ffff880099d41000
ib_mthca 0000:08:00.0: Page phys. addr 0000000025453000, virt ffff880099d42000
ib_mthca 0000:08:00.0: Page phys. addr 0000000025452000, virt ffff880099d43000
ib_mthca 0000:08:00.0: Page phys. addr 0000000025451000, virt ffff880099d44000
ib_mthca 0000:08:00.0: Page phys. addr 0000000025450000, virt ffff880099d45000
ib_mthca 0000:08:00.0: Page phys. addr 000000002544f000, virt ffff880099d46000
ib_mthca 0000:08:00.0: Page phys. addr 000000002544e000, virt ffff880099d47000
ib_mthca 0000:08:00.0: Page phys. addr 000000002544d000, virt ffff880099d48000
ib_mthca 0000:08:00.0: Page phys. addr 000000002544c000, virt ffff880099d49000
ib_mthca 0000:08:00.0: Page phys. addr 000000002544b000, virt ffff880099d4a000
ib_mthca 0000:08:00.0: Page phys. addr 000000002544a000, virt ffff880099d4b000

-- 
Lukáš Hejtmánek

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.