On Thu, Nov 18, 2010 at 11:24:22PM +1100, Michael Ellerman wrote: > On Wed, 2010-11-17 at 16:03 -0600, steven.lin@teradyne.com wrote: > > My application needs a fast way to access a specific physical DDR > > memory region. The application runs on an MPC8548 PowerPC which has an > > MMU. I've tried two approaches that are typical for Linux, mmap() and > > using a kernel module that implements read()/write() into this region > > and I'm finding that performance is very slow for both. It's a couple > > orders of magnitude slower than, for example, copying a large buffer > > from one place in the application's virtual memory to another place in > > the application's virtual memory. > > The mmap() version should basically run at "full speed", at least once > you've faulted the address range in. > > This specific DDR region isn't specifically slow is it ? :) The other theory that springs to mind is whatever method you're using to access the region enabling cacheing? -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson