diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2016-08-23 07:30:24 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2016-08-29 05:05:04 -0400 |
commit | 474fd6e80fe529e9adeeb7ea9d4e5d6c4da0b7fe (patch) | |
tree | a5294d90e6e7205f26c4271cee49199be2a8addb /lib/raid6/algos.c | |
parent | 8f149ea6e91534c3e0b4cfcd843323bd94273087 (diff) |
RAID/s390: add SIMD implementation for raid6 gen/xor
Using vector registers is slightly faster:
raid6: vx128x8 gen() 19705 MB/s
raid6: vx128x8 xor() 11886 MB/s
raid6: using algorithm vx128x8 gen() 19705 MB/s
raid6: .... xor() 11886 MB/s, rmw enabled
vs the software algorithms:
raid6: int64x1 gen() 3018 MB/s
raid6: int64x1 xor() 1429 MB/s
raid6: int64x2 gen() 4661 MB/s
raid6: int64x2 xor() 3143 MB/s
raid6: int64x4 gen() 5392 MB/s
raid6: int64x4 xor() 3509 MB/s
raid6: int64x8 gen() 4441 MB/s
raid6: int64x8 xor() 3207 MB/s
raid6: using algorithm int64x4 gen() 5392 MB/s
raid6: .... xor() 3509 MB/s, rmw enabled
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'lib/raid6/algos.c')
-rw-r--r-- | lib/raid6/algos.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/raid6/algos.c b/lib/raid6/algos.c index 975c6e0434bd..e1923b602bbc 100644 --- a/lib/raid6/algos.c +++ b/lib/raid6/algos.c | |||
@@ -69,6 +69,9 @@ const struct raid6_calls * const raid6_algos[] = { | |||
69 | #if defined(CONFIG_TILEGX) | 69 | #if defined(CONFIG_TILEGX) |
70 | &raid6_tilegx8, | 70 | &raid6_tilegx8, |
71 | #endif | 71 | #endif |
72 | #if defined(CONFIG_S390) | ||
73 | &raid6_s390vx8, | ||
74 | #endif | ||
72 | &raid6_intx1, | 75 | &raid6_intx1, |
73 | &raid6_intx2, | 76 | &raid6_intx2, |
74 | &raid6_intx4, | 77 | &raid6_intx4, |