diff options
author | Romain Dolbeau <[email protected]> | 2020-01-23 20:01:24 +0100 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2020-01-23 11:01:24 -0800 |
commit | 35b07497c60701465a87aab48fc890a0bc502561 (patch) | |
tree | ded14fd0cfd7c3dd985617ae1d576d4e26c165a2 /include/sys/vdev_raidz_impl.h | |
parent | 1a69856034304e74b32fb372e89967e91989cafd (diff) |
Add AltiVec RAID-Z
Implements the RAID-Z function using AltiVec SIMD.
This is basically the NEON code translated to AltiVec.
Note that the 'fletcher' algorithm requires 64-bits
operations, and the initial implementations of AltiVec
(PPC74xx a.k.a. G4, PPC970 a.k.a. G5) only has up to
32-bits operations, so no 'fletcher'.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Romain Dolbeau <[email protected]>
Closes #9539
Diffstat (limited to 'include/sys/vdev_raidz_impl.h')
-rw-r--r-- | include/sys/vdev_raidz_impl.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/sys/vdev_raidz_impl.h b/include/sys/vdev_raidz_impl.h index 2e38962cc..81a321ee5 100644 --- a/include/sys/vdev_raidz_impl.h +++ b/include/sys/vdev_raidz_impl.h @@ -90,7 +90,7 @@ typedef boolean_t (*will_work_f)(void); typedef void (*init_impl_f)(void); typedef void (*fini_impl_f)(void); -#define RAIDZ_IMPL_NAME_MAX (16) +#define RAIDZ_IMPL_NAME_MAX (20) typedef struct raidz_impl_ops { init_impl_f init; @@ -152,6 +152,9 @@ extern const raidz_impl_ops_t vdev_raidz_avx512bw_impl; extern const raidz_impl_ops_t vdev_raidz_aarch64_neon_impl; extern const raidz_impl_ops_t vdev_raidz_aarch64_neonx2_impl; #endif +#if defined(__powerpc__) +extern const raidz_impl_ops_t vdev_raidz_powerpc_altivec_impl; +#endif /* * Commonly used raidz_map helpers |