Thread (17 messages) 17 messages, 7 authors, 2009-06-29

Re: PowerPC PCI DMA issues (prefetch/coherency?)

From: Chris Pringle <hidden>
Date: 2009-06-18 11:24:52
Also in: lkml

Possibly related (same subject, not in this thread)

Chris Pringle wrote:
Chris Pringle wrote:
quoted
quoted
You could enable CONFIG_NOT_COHERENT_CACHE.
I've just tried this (I had to edit Kconfig in power/platforms to 
make the build system accept it), and interestingly it's making no 
difference. I'm using streaming mappings, and are using the 
pci_map_sg functions to ensure the memory is mapped/flushed 
correctly. I've also explicitly put in a pci_dma_sync_sg_for_device, 
however that's also not made any difference. Turning the cpu cache 
snoop off has the same affect as it did without 
CONFIG_NOT_COHERENT_CACHE; it gets much worse. Any other ideas?

Will back off the low latency patches next, and give 2.6.30 a try - 
see if that makes any difference.
Low latency patches made no difference. Tried it with 2.6.30 and it 
now works. There are a couple of commits contributing to the fix, 
including one introduced between 2.6.29-rc8 and 2.6.29 proper in 
powerpc/kernel/head_32.S (couple of commits with the name "Fix Respect 
_PAGE_COHERENT on classic ppc32 SW TLB load machines"). I've tried 
backporting this to 2.6.29-rc8 and it then worked. Backporting to 
2.6.26 made no difference however, so I suspect there are other things 
fixed which are also contributing.

I'm going to move to 2.6.29/2.6.30 which should resolve our issue.

Thanks to all who have contributed to this thread.
The other part of the fix is in asm-powerpc/pgtable32.h. _PAGE_BASE 
needs _PAGE_COHERENT in order to work correctly, and in fact there is 
now a comment in there to that affect in 2.6.29. Backporting that change 
has made it work on 2.6.26. Both this patch, and the fix to head_32.S 
are needed for it to work correctly on older kernels.

Chris

-- 

______________________________
Chris Pringle
Software Engineer

Miranda Technologies Ltd.
Hithercroft Road
Wallingford
Oxfordshire OX10 9DG
UK

Tel. +44 1491 820206
Fax. +44 1491 820001
www.miranda.com

____________________________

Miranda Technologies Limited
Registered in England and Wales CN 02017053
Registered Office: James House, Mere Park, Dedmere Road, Marlow, Bucks, SL7 1FJ
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help