mirror_zfs/module/zfs
Tino Reichardt 75e8b5ad84 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 <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Co-authored-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de>
Closes #13725
2022-09-16 14:25:53 -07:00
..
abd.c
aggsum.c
arc.c Cleanup: Use OpenSolaris functions to call scheduler 2022-09-12 09:55:37 -07:00
blake3_zfs.c
blkptr.c
bplist.c
bpobj.c
bptree.c
bqueue.c zfs recv hangs if max recordsize is less than received recordsize 2022-09-16 13:52:25 -07:00
btree.c Add zfs_btree_verify_intensity kernel module parameter 2022-09-15 16:22:33 -07:00
dataset_kstats.c
dbuf_stats.c
dbuf.c Fix theoretical "use-after-free" in dbuf_prefetch_indirect_done() 2022-09-13 17:58:29 -07:00
ddt_zap.c
ddt.c
dmu_diff.c
dmu_object.c
dmu_objset.c
dmu_recv.c
dmu_redact.c Fix incorrect size given to bqueue_enqueue() call in dmu_redact.c 2022-09-15 16:21:21 -07:00
dmu_send.c
dmu_traverse.c
dmu_tx.c
dmu_zfetch.c
dmu.c
dnode_sync.c
dnode.c Cleanup: Use OpenSolaris functions to call scheduler 2022-09-12 09:55:37 -07:00
dsl_bookmark.c
dsl_crypt.c
dsl_dataset.c Add assertion to dsl_dataset_set_compression_sync 2022-09-14 12:50:03 -07:00
dsl_deadlist.c
dsl_deleg.c
dsl_destroy.c
dsl_dir.c Add DD_FIELD string for snapshots_changed property 2022-09-02 13:33:50 -07:00
dsl_pool.c
dsl_prop.c
dsl_scan.c
dsl_synctask.c
dsl_userhold.c
edonr_zfs.c
fm.c Cleanup: Use OpenSolaris functions to call scheduler 2022-09-12 09:55:37 -07:00
gzip.c
hkdf.c
lz4_zfs.c
lz4.c
lzjb.c
metaslab.c
mmp.c
multilist.c
objlist.c
pathname.c
range_tree.c
refcount.c
rrwlock.c
sa.c
sha256.c
skein_zfs.c
spa_checkpoint.c
spa_config.c
spa_errlog.c
spa_history.c
spa_log_spacemap.c Cleanup: Use OpenSolaris functions to call scheduler 2022-09-12 09:55:37 -07:00
spa_misc.c
spa_stats.c
spa.c Cleanup dead spa_boot code 2022-09-13 16:40:10 -07:00
space_map.c
space_reftree.c
THIRDPARTYLICENSE.cityhash
THIRDPARTYLICENSE.cityhash.descrip
txg.c
uberblock.c
unique.c
vdev_cache.c
vdev_draid_rand.c
vdev_draid.c vdev_draid_lookup_map() should not iterate outside draid_maps 2022-09-12 12:51:17 -07:00
vdev_indirect_births.c
vdev_indirect_mapping.c
vdev_indirect.c
vdev_initialize.c
vdev_label.c
vdev_mirror.c Improve too large physical ashift handling 2022-09-08 10:30:53 -07:00
vdev_missing.c
vdev_queue.c
vdev_raidz_math_aarch64_neon_common.h
vdev_raidz_math_aarch64_neon.c
vdev_raidz_math_aarch64_neonx2.c
vdev_raidz_math_avx2.c
vdev_raidz_math_avx512bw.c
vdev_raidz_math_avx512f.c
vdev_raidz_math_impl.h Cleanup Raid-Z Typo fixes 2022-09-06 09:43:21 -07:00
vdev_raidz_math_powerpc_altivec_common.h
vdev_raidz_math_powerpc_altivec.c
vdev_raidz_math_scalar.c
vdev_raidz_math_sse2.c
vdev_raidz_math_ssse3.c
vdev_raidz_math.c
vdev_raidz.c Improve too large physical ashift handling 2022-09-08 10:30:53 -07:00
vdev_rebuild.c
vdev_removal.c
vdev_root.c
vdev_trim.c
vdev.c Improve too large physical ashift handling 2022-09-08 10:30:53 -07:00
zap_leaf.c
zap_micro.c
zap.c
zcp_get.c
zcp_global.c
zcp_iter.c
zcp_set.c
zcp_synctask.c Add zfs.sync.snapshot_rename 2022-09-02 13:31:19 -07:00
zcp.c
zfeature.c
zfs_byteswap.c
zfs_chksum.c Fix BLAKE3 tuneable and module loading on Linux and FreeBSD 2022-09-16 14:25:53 -07:00
zfs_fm.c
zfs_fuid.c
zfs_ioctl.c Cleanup: Make memory barrier definitions consistent across kernels 2022-09-13 16:59:33 -07:00
zfs_log.c
zfs_onexit.c
zfs_quota.c
zfs_ratelimit.c
zfs_replay.c
zfs_rlock.c
zfs_sa.c
zfs_vnops.c zfs_enter rework 2022-09-16 13:36:47 -07:00
zil.c
zio_checksum.c
zio_compress.c
zio_inject.c
zio.c
zle.c
zrlock.c
zthr.c
zvol.c