powerpc: Optimise the 64bit optimised __clear_user
authorAnton Blanchard <anton@samba.org>
Mon, 4 Jun 2012 16:02:22 +0000 (16:02 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 3 Jul 2012 04:14:48 +0000 (14:14 +1000)
commitcf8fb5533f35709ba7e31560264b565a9c7a090f
tree5964991a949f151f59dd427acffe3572c9edb2d1
parentb4c3a8729ae57b4f84d661e16a192f828eca1d03
powerpc: Optimise the 64bit optimised __clear_user

I blame Mikey for this. He elevated my slightly dubious testcase:

to benchmark status. And naturally we need to be number 1 at creating
zeros. So lets improve __clear_user some more.

As Paul suggests we can use dcbz for large lengths. This patch gets
the destination cacheline aligned then uses dcbz on whole cachelines.

Before:
10485760000 bytes (10 GB) copied, 0.414744 s, 25.3 GB/s

After:
10485760000 bytes (10 GB) copied, 0.268597 s, 39.0 GB/s

39 GB/s, a new record.

Signed-off-by: Anton Blanchard <anton@samba.org>
Tested-by: Olof Johansson <olof@lixom.net>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/lib/string_64.S