linux/arch/powerpc
Anton Blanchard 17968fbbd1 powerpc: 64bit optimised __clear_user
I noticed __clear_user high up in a profile of one of my RAID stress
tests. The testcase was doing a dd from /dev/zero which ends up
calling __clear_user.

__clear_user is basically a loop with a single 4 byte store which
is horribly slow. We can do much better by aligning the desination
and doing 32 bytes of 8 byte stores in a loop.

The following testcase was used to verify the patch:

http://ozlabs.org/~anton/junkcode/stress_clear_user.c

To show the improvement in performance I ran a dd from /dev/zero
to /dev/null on a POWER7 box:

Before:

# dd if=/dev/zero of=/dev/null bs=1M count=10000
10485760000 bytes (10 GB) copied, 3.72379 s, 2.8 GB/s

After:

# time dd if=/dev/zero of=/dev/null bs=1M count=10000
10485760000 bytes (10 GB) copied, 0.728318 s, 14.4 GB/s

Over 5x faster.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-07-03 14:14:41 +10:00
..
boot powerpc/boot: Only build board support files when required. 2012-07-03 14:14:37 +10:00
configs powerpc: Enable jump label support 2012-07-03 14:14:40 +10:00
include/asm powerpc: tracing: Avoid tracepoint duplication with DECLARE_EVENT_CLASS 2012-07-03 14:14:41 +10:00
kernel powerpc/ftrace: Use patch_instruction instead of probe_kernel_write() 2012-07-03 14:14:39 +10:00
kvm KVM: PPC: Book3S HV: Drop locks around call to kvmppc_pin_guest_page 2012-06-19 15:04:13 +03:00
lib powerpc: 64bit optimised __clear_user 2012-07-03 14:14:41 +10:00
math-emu
mm powerpc: Fix uninitialised error in numa.c 2012-06-29 14:35:35 +10:00
net powerpc: Fix BPF_JIT code to link with multiple TOCs 2012-06-29 14:35:34 +10:00
oprofile
perf
platforms powerpc/pseries/cpuidle: Replace pseries_notify_cpuidle_add call with notifier 2012-07-03 14:14:40 +10:00
sysdev
xmon
Kconfig powerpc: Use the new generic strncpy_from_user() and strnlen_user() 2012-05-27 21:00:07 -07:00
Kconfig.debug
Makefile powerpc/crypto: Build files for the nx device driver 2012-05-16 15:05:45 +10:00
relocs_check.pl