All of lore.kernel.org
 help / color / mirror / Atom feed
* 83xx: Marking or Allocating Pages as Cache-Inhibited
@ 2009-03-06  4:32 Ben Menchaca
  2009-03-06  5:22 ` Liu Dave-R63238
  0 siblings, 1 reply; 17+ messages in thread
From: Ben Menchaca @ 2009-03-06  4:32 UTC (permalink / raw)
  To: linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 1352 bytes --]

I am working on a Freescale 8314e design, and the embedded device is
configured as a PCI-e endpoint running a 2.6.27-5 kernel.  For context, we
have written a kernel module which, among other things, uses the RDMA/WDMA
engine in the PCI-e IP block.  On the host side, these DMAs are coherent.
However, on the embedded side, things are quite a bit less rosy; we must
manually flush/invalidate cache lines for WDMA/RDMAs to occur successfully.
After speaking with (several) FAEs at Freescale, we believe there is a
configuration issue that is the cause, but we have yet to have anyone
successfully point to it.

Disabling the data cache altogether resolves the issue entirely, but of
course, also completely tanks performance.  As a temporary workaround, I
would like to simply mark the pages (obtained currently via
dma_alloc_coherent) involved as cache-inhibited.  I have attempted to do
this via some snippets remaining in fec.c (va_to_pte, uncache_pte to set
_PAGE_NO_CACHE, flush_tlb_page, then unmap_pte), but this is almost
certainly braindead; va_to_pte is not a part of the 83xx source, as far as I
can tell; 8xx only.

A quick pointer in the correct direction for marking pages as
cache-inhibited on a 2.6.27-5 kernel would be appreciated, or if my approach
to a workaround is flawed, a pointer to the correct way would be great.

Ben Menchaca

[-- Attachment #2: Type: text/html, Size: 1394 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2009-03-09  3:27 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-06  4:32 83xx: Marking or Allocating Pages as Cache-Inhibited Ben Menchaca
2009-03-06  5:22 ` Liu Dave-R63238
2009-03-06  5:27   ` Liu Dave-R63238
2009-03-06  5:38     ` Ben Menchaca
2009-03-06  5:40       ` Liu Dave-R63238
2009-03-06  6:10         ` Ben Menchaca
2009-03-06  6:30           ` Liu Dave-R63238
2009-03-06 16:12             ` Ben Menchaca
2009-03-06 16:30               ` Ben Menchaca
2009-03-09  2:30                 ` Liu Dave-R63238
2009-03-09  2:56                 ` Liu Dave-R63238
2009-03-09  3:27                   ` Ben Menchaca
2009-03-07 21:51               ` Benjamin Herrenschmidt
2009-03-08  3:15                 ` Ben Menchaca
2009-03-06  5:49       ` Liu Dave-R63238
2009-03-08 15:19         ` Timur Tabi
2009-03-09  2:33           ` Liu Dave-R63238

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.