diff options
author | Tino Reichardt <[email protected]> | 2022-08-03 18:36:41 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2022-09-16 14:25:53 -0700 |
commit | 75e8b5ad847ed7fd9e40ffdf33989b6578469903 (patch) | |
tree | 862c95e9d94b4c9223d601b0cba6f685147bdc67 /include/sys/blake3.h | |
parent | 7dee043af5d9fce99611bca5863bf6ca28b741ba (diff) |
Fix BLAKE3 tuneable and module loading on Linux and FreeBSD
Apply similar options to BLAKE3 as it is done for zfs_fletcher_4_impl.
The zfs module parameter on Linux changes from icp_blake3_impl to
zfs_blake3_impl.
You can check and set it on Linux via sysfs like this:
```
[bash]# cat /sys/module/zfs/parameters/zfs_blake3_impl
cycle [fastest] generic sse2 sse41 avx2
[bash]# echo sse2 > /sys/module/zfs/parameters/zfs_blake3_impl
[bash]# cat /sys/module/zfs/parameters/zfs_blake3_impl
cycle fastest generic [sse2] sse41 avx2
```
The modprobe module parameters may also be used now:
```
[bash]# modprobe zfs zfs_blake3_impl=sse41
[bash]# cat /sys/module/zfs/parameters/zfs_blake3_impl
cycle fastest generic sse2 [sse41] avx2
```
On FreeBSD the BLAKE3 implementation can be set via sysctl like this:
```
[bsd]# sysctl vfs.zfs.blake3_impl
vfs.zfs.blake3_impl: cycle [fastest] generic sse2 sse41 avx2
[bsd]# sysctl vfs.zfs.blake3_impl=sse2
vfs.zfs.blake3_impl: cycle [fastest] generic sse2 sse41 avx2 \
-> cycle fastest generic [sse2] sse41 avx2
```
This commit changes also some Blake3 internals like these:
- blake3_impl_ops_t was renamed to blake3_ops_t
- all functions are named blake3_impl_NAME() now
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Co-authored-by: Ryan Moeller <[email protected]>
Signed-off-by: Tino Reichardt <[email protected]>
Closes #13725
Diffstat (limited to 'include/sys/blake3.h')
-rw-r--r-- | include/sys/blake3.h | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/include/sys/blake3.h b/include/sys/blake3.h index 19500585f..ad65fc8db 100644 --- a/include/sys/blake3.h +++ b/include/sys/blake3.h @@ -72,7 +72,7 @@ typedef struct { */ uint8_t cv_stack[(BLAKE3_MAX_DEPTH + 1) * BLAKE3_OUT_LEN]; - /* const blake3_impl_ops_t *ops */ + /* const blake3_ops_t *ops */ const void *ops; } BLAKE3_CTX; @@ -97,26 +97,23 @@ extern void **blake3_per_cpu_ctx; extern void blake3_per_cpu_ctx_init(void); extern void blake3_per_cpu_ctx_fini(void); -/* return number of supported implementations */ -extern int blake3_get_impl_count(void); +/* get count of supported implementations */ +extern uint32_t blake3_impl_getcnt(void); -/* return id of selected implementation */ -extern int blake3_get_impl_id(void); +/* get id of selected implementation */ +extern uint32_t blake3_impl_getid(void); -/* return name of selected implementation */ -extern const char *blake3_get_impl_name(void); +/* get name of selected implementation */ +extern const char *blake3_impl_getname(void); /* setup id as fastest implementation */ -extern void blake3_set_impl_fastest(uint32_t id); +extern void blake3_impl_set_fastest(uint32_t id); /* set implementation by id */ -extern void blake3_set_impl_id(uint32_t id); +extern void blake3_impl_setid(uint32_t id); /* set implementation by name */ -extern int blake3_set_impl_name(const char *name); - -/* set startup implementation */ -extern void blake3_setup_impl(void); +extern int blake3_impl_setname(const char *name); #ifdef __cplusplus } |