mirror_zfs/module/zcommon
Attila Fülöp 78289b8458
zcommon: Refactor FPU state handling in fletcher4
Currently calls to kfpu_begin() and kfpu_end() are split between
the init() and fini() functions of the particular SIMD
implementation. This was done in #14247 as an optimization measure
for the ABD adapter. Unfortunately the split complicates FPU
handling on platforms that use a local FPU state buffer, like
Windows and macOS.

To ease porting, we introduce a boolean struct member in
fletcher_4_ops_t, indicating use of the FPU, and move the FPU state
handling from the SIMD implementations to the call sites.

Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Reviewed-by: Jorgen Lundman <lundman@lundman.net>
Signed-off-by: Attila Fülöp <attila@fueloep.org>
Closes #14600
2023-03-14 09:45:28 -07:00
..
cityhash.c Compile cityhash code into libzfs 2020-03-27 09:11:22 -07:00
zfeature_common.c Implementation of block cloning for ZFS 2023-03-10 11:59:53 -08:00
zfs_comutil.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_deleg.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_fletcher_aarch64_neon.c zcommon: Refactor FPU state handling in fletcher4 2023-03-14 09:45:28 -07:00
zfs_fletcher_avx512.c zcommon: Refactor FPU state handling in fletcher4 2023-03-14 09:45:28 -07:00
zfs_fletcher_intel.c zcommon: Refactor FPU state handling in fletcher4 2023-03-14 09:45:28 -07:00
zfs_fletcher_sse.c zcommon: Refactor FPU state handling in fletcher4 2023-03-14 09:45:28 -07:00
zfs_fletcher_superscalar4.c zcommon: Refactor FPU state handling in fletcher4 2023-03-14 09:45:28 -07:00
zfs_fletcher_superscalar.c zcommon: Refactor FPU state handling in fletcher4 2023-03-14 09:45:28 -07:00
zfs_fletcher.c zcommon: Refactor FPU state handling in fletcher4 2023-03-14 09:45:28 -07:00
zfs_namecheck.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_prop.c dsl_prop_known_index(): check for invalid prop 2022-11-08 10:16:01 -08:00
zpool_prop.c Implementation of block cloning for ZFS 2023-03-10 11:59:53 -08:00
zprop_common.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00