HomeFreeBSD

Implementation of SSE optimized Fletcher-4

Description

Implementation of SSE optimized Fletcher-4

Builds off of 1eeb4562 (Implementation of AVX2 optimized Fletcher-4)
This commit adds another implementation of the Fletcher-4 algorithm.
It is automatically selected at module load if it benchmarks higher
than all other available implementations.

The module benchmark was also amended to analyze the performance of
the byteswap-ed version of Fletcher-4, as well as the non-byteswaped
version. The average performance of the two is used to select the
the fastest implementation available on the host system.

Adds a pair of fields to an existing zcommon module parameter:

  • zfs_fletcher_4_impl (str) "sse2" - new SSE2 implementation if available "ssse3" - new SSSE3 implementation if available

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
Signed-off-by: Gvozden Neskovic <neskovic@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #4789

Details

Provenance
Tyler J. Stachecki <stachecki.tyler@gmail.com>Authored on Jun 24 2016, 3:32 AM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jul 15 2016, 5:42 PM
Parents
rGdfbc86309fd8: Use native inode->i_nlink instead of znode->z_links
Branches
Unknown
Tags
Unknown