Acceleration for map_copy_from on powerpc 512x
kenneth at southpole.se
Tue Oct 27 22:41:01 EST 2009
On Tue, 2009-10-27 at 11:02 +0100, Fortini Matteo wrote:
> The simple_map_init() works at a higher level, what I'm redefining is a
> function called by mtd->read()
not sure I follow. What you want to do is change the access to the
flash. You do this by turning on MTD_COMPLEX_MAPPINGS and then setting
up the function pointers like is done in simple_map_init() but point to
your own functions. Now every access to the NOR flash will be done using
your functions and you can do whatever optimization you like.
> The block size for e.g. a dd if=/dev/mtd0 of=/dev/null
> with the default block size (I believe it's 512Bytes), fetches from
> /dev/mtd0 4096 Bytes at a time.
> I'd prefer the kernel to be scheduling other tasks meanwhile, instead of
> busy-waiting on completion.
> Kenneth Johansson ha scritto:
> > On Mon, 2009-10-19 at 09:52 +0200, Fortini Matteo wrote:
> >> I didn't find a cleaner way than just #ifdef'ing the map_copy_from call
> >> and substitute with my call on relevant cases. I wonder if there is a
> >> cleaner way.
> > Remove the call to simple_map_init() and do it manually in your driver
> > with your own functions.
> >> And yes, as soon as I've cleaned up the code a little bit, I will
> >> definitely post a patch about it.
> >> Moreover: a huge benefit would come from exploiting DMA on these
> >> transfers,
> > probably depends on the block size if it's a gain or not. What is the
> > size you normally see.
More information about the Linuxppc-dev