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

[Xen-devel] Re: xen-swiotlb



On Sun, Aug 15, 2010 at 11:28:39PM +0200, Sander Eikelenboom wrote:
> Hi Konrad,
> 
> After i have exhausted all kernel debug options without getting a pointer to 
> my freezes, i have added some printk's to all functions in swiotlb-xen.c
> I see a lot of calls to xen_swiotlb_dma_mapping_error, which doesn't seem to 
> be good ?

The driver looks to be actually testing the value, which is great. Some
of the older drivers (r8169) don't even do that.
> 
> Although all the errors the device works fine (grabs video), but eventually 
> the machine freezes, probably due to overwriting some mem it shouldn't.

Looking at the output, the physical addresses that DMA-ed are:

0x1f2962dc0
0x1f24f2e68

and they look to be called quite often. In fact, there looks to be a
loop that does something like this:

again:
  p = kmalloc(..)

  dma = pci_map_single(p)
  pci_dma_mapping_error(dma);
  /* get some data.. */
  /* parse the: (pipe 0x80000280): IN:  c0 00 00 00 0c 00 01 00 */
  pci_unmap_sg(dma);
  goto again;

As the virtual address sent to pci_map_single looks to be sequentially
increasing.

It might be:
 a). the pci_dma_mapping_error is used incorrectly, ie, it is used
     as !pci_dma_mapping_error,  but I doubt that - the Linux kernel
     has soo many exampples of how to proper use that.
 b). The pci_dma_mapping_error implementation in Xen-SWIOTLB is busted,
     but I can't see how. The logic is basically 'return !addr' so, if
     you have addr = 0xf200000', you will get 0, which is the proper
     return value.
 c). the xhci driver does something similar to the pseudo-code I've
     pointed out. It is missing a kfree somewhere.

Can you point me to the git tree for the xhci and I can take a look
there? Also could you send me yor debug patch - that will help in
finding the culprit.


_______________________________________________
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®.