Subject: Re: performance: memcpy vs. __copy_tofrom_user

From: Benjamin Herrenschmidt <[email-masked]>
Date: Sun, 12 Oct 2008 09:32:07 +1100

On Wed, 2008-10-08 at 12:40 -0500, Scott Wood wrote:
> 
> The performance difference most likely comes from the fact that copy 
> to/from user can assume that the memory is cacheable, while memcpy is 
> occasionally used on cache-inhibited memory -- so dcbz isn't used.  We 
> may be better off handling the alignment fault on those occasions, and 
> we should use dcba on chips that support it.

Note that the kernel memcpy isn't supposed to be used for non-cacheable
memory. That's what memcpy_to/fromio are for.

But Paul has a point that for small copies especially, the cost of
the cache instructions outweigh their benefit.

Cheers,
Ben.