linux/arch/powerpc
Anton Blanchard b3f271e86e powerpc: POWER7 optimised memcpy using VMX and enhanced prefetch
Implement a POWER7 optimised memcpy using VMX and enhanced prefetch
instructions.

This is a copy of the POWER7 optimised copy_to_user/copy_from_user
loop. Detailed implementation and performance details can be found in
commit a66086b819 (powerpc: POWER7 optimised
copy_to_user/copy_from_user using VMX).

I noticed memcpy issues when profiling a RAID6 workload:

	.memcpy
	.async_memcpy
	.async_copy_data
	.__raid_run_ops
	.handle_stripe
	.raid5d
	.md_thread

I created a simplified testcase by building a RAID6 array with 4 1GB
ramdisks (booting with brd.rd_size=1048576):

# mdadm -CR -e 1.2 /dev/md0 --level=6 -n4 /dev/ram[0-3]

I then timed how long it took to write to the entire array:

# dd if=/dev/zero of=/dev/md0 bs=1M

Before: 892 MB/s
After:  999 MB/s

A 12% improvement.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-07-03 14:14:46 +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/pci: cleanup on duplicate assignment 2012-07-03 14:14:45 +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: POWER7 optimised memcpy using VMX and enhanced prefetch 2012-07-03 14:14:46 +10:00
math-emu powerpc/math_emu/efp: Look for errata handler when type mismatches 2011-10-06 23:36:47 -05:00
mm powerpc/numa: Fix OF node refcounting bug 2012-07-03 14:14:44 +10:00
net powerpc: Fix BPF_JIT code to link with multiple TOCs 2012-06-29 14:35:34 +10:00
oprofile Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
perf perf: Pass last sampling period to perf_sample_data_init() 2012-05-09 15:23:12 +02:00
platforms powerpc/pseries/cpuidle: Replace pseries_notify_cpuidle_add call with notifier 2012-07-03 14:14:40 +10:00
sysdev Merge remote-tracking branch 'jwb/next' into next 2012-05-10 12:58:24 +10:00
xmon Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
Kconfig powerpc: Use the new generic strncpy_from_user() and strnlen_user() 2012-05-27 21:00:07 -07:00
Kconfig.debug irqdomain: Remove powerpc dependency from debugfs file 2012-03-29 14:31:02 -06:00
Makefile powerpc/crypto: Build files for the nx device driver 2012-05-16 15:05:45 +10:00
relocs_check.pl powerpc: Process dynamic relocations for kernel 2011-12-20 10:21:08 -05:00