kernel-fxtec-pro1x/arch
Stafford Horne f5d45dc911 openrisc: Add optimized memcpy routine
The generic memcpy routine provided in kernel does only byte copies.
Using word copies we can lower boot time and cycles spend in memcpy
quite significantly.

Booting on my de0 nano I see boot times go from 7.2 to 5.6 seconds.
The avg cycles in memcpy during boot go from 6467 to 1887.

I tested several algorithms (see code in previous patch mails)

The implementations I tested and avg cycles:
  - Word Copies + Loop Unrolls + Non Aligned    1882
  - Word Copies + Loop Unrolls                  1887
  - Word Copies                                 2441
  - Byte Copies + Loop Unrolls                  6467
  - Byte Copies                                 7600

In the end I ended up going with Word Copies + Loop Unrolls as it
provides best tradeoff between simplicity and boot speedups.

Signed-off-by: Stafford Horne <shorne@gmail.com>
2017-02-25 04:14:36 +09:00
..
alpha clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
arc ARC: [arcompact] handle unaligned access delay slot corner case 2017-01-27 10:54:20 -08:00
arm KVM fixes for v4.10-rc5 2017-01-20 14:19:34 -08:00
arm64 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-02-01 09:24:00 -08:00
avr32 clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
blackfin Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-25 14:30:04 -08:00
c6x clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
cris Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
frv frv: add missing atomic64 operations 2017-01-24 16:26:14 -08:00
h8300 Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
hexagon clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
ia64 clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
m32r Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
m68k clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
metag Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-25 14:05:56 -08:00
microblaze clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mips KVM fixes for v4.10-rc3 2017-01-06 15:27:17 -08:00
mn10300 mn10300: fix build error of missing fpu_save() 2017-01-24 16:26:14 -08:00
nios2 clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
openrisc openrisc: Add optimized memcpy routine 2017-02-25 04:14:36 +09:00
parisc parisc: Don't use BITS_PER_LONG in userspace-exported swab.h header 2017-01-28 21:54:23 +01:00
powerpc powerpc fixes for 4.10 #3 2017-02-03 11:10:06 -08:00
s390 s390/mm: Fix cmma unused transfer from pgste into pte 2017-01-24 16:03:42 +01:00
score Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
sh Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2017-01-30 15:47:19 -08:00
tile tile/ptrace: Preserve previous registers for short regset write 2017-01-06 15:14:08 -05:00
um clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
unicore32 clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
x86 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-04 12:18:01 -08:00
xtensa Xtensa fix for v4.10-rc7: 2017-02-02 12:39:10 -08:00
.gitignore
Kconfig powerpc: ima: get the kexec buffer passed by the previous kernel 2016-12-20 09:48:40 -08:00