linux/arch/s390/lib
Heiko Carstens b4623d4e5b s390: provide memmove implementation
Provide an s390 specific memmove implementation which is faster than
the generic implementation which copies byte-wise.

For non-destructive (as defined by the mvc instruction) memmove
operations the following table compares the old default implementation
versus the new s390 specific implementation:

size     old   new
   1     1ns   8ns
   2     2ns   8ns
   4     4ns   8ns
   8     7ns   8ns
  16    17ns   8ns
  32    35ns   8ns
  64    65ns   9ns
 128   146ns  10ns
 256   298ns  11ns
 512   537ns  11ns
1024  1193ns  19ns
2048  2405ns  36ns

So only for very small sizes the old implementation is faster. For
overlapping memmoves, where the mvc instruction can't be used, the new
implementation is as slow as the old one.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-12-12 12:11:32 +01:00
..
delay.c s390/udelay: make udelay have busy loop semantics 2015-10-14 14:32:13 +02:00
find.c s390/bitops: remove 31 bit related comments 2015-10-14 14:32:15 +02:00
Makefile s390/xor: optimized xor routing using the XC instruction 2016-02-23 08:56:17 +01:00
mem.S s390: provide memmove implementation 2016-12-12 12:11:32 +01:00
probes.c s390/uprobes: fix kprobes dependency 2014-10-17 14:45:51 +02:00
spinlock.c s390/spinlock: avoid yield to non existent cpu 2016-04-15 18:01:48 +02:00
string.c s390/lib: fix memcmp and strstr 2016-08-08 15:41:31 +02:00
uaccess.c Implements HARDENED_USERCOPY verification of copy_to_user/copy_from_user 2016-08-08 14:48:14 -07:00
xor.c s390/xor: optimized xor routing using the XC instruction 2016-02-23 08:56:17 +01:00