aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys/vdev_raidz_impl.h
diff options
context:
space:
mode:
authorRomain Dolbeau <[email protected]>2020-01-23 20:01:24 +0100
committerBrian Behlendorf <[email protected]>2020-01-23 11:01:24 -0800
commit35b07497c60701465a87aab48fc890a0bc502561 (patch)
treeded14fd0cfd7c3dd985617ae1d576d4e26c165a2 /include/sys/vdev_raidz_impl.h
parent1a69856034304e74b32fb372e89967e91989cafd (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.h5
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