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
Showing the changes to include/linux/raid (1 of 6 files). Show all
Unified · Split
| @@ -103,6 +103,7 @@ extern const struct raid6_calls raid6_avx2x1; · 102 unmodified lines | |||
| 103 | extern const struct raid6_calls raid6_avx2x2; | 103 | extern const struct raid6_calls raid6_avx2x2; |
| 104 | extern const struct raid6_calls raid6_avx2x4; | 104 | extern const struct raid6_calls raid6_avx2x4; |
| 105 | extern const struct raid6_calls raid6_tilegx8; | 105 | extern const struct raid6_calls raid6_tilegx8; |
| 106 | extern const struct raid6_calls raid6_s390vx8; | ||
| 106 | 107 | ||
| 107 | struct raid6_recov_calls { | 108 | struct raid6_recov_calls { |
| 108 | void (*data2)(int, size_t, int, int, void **); | 109 | void (*data2)(int, size_t, int, int, void **); |