]> git.proxmox.com Git - mirror_zfs.git/commit - man/man5/zfs-module-parameters.5
Implementation of SSE optimized Fletcher-4
authorTyler J. Stachecki <stachecki.tyler@gmail.com>
Fri, 24 Jun 2016 03:32:40 +0000 (23:32 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 15 Jul 2016 17:42:35 +0000 (10:42 -0700)
commit35a76a0366372d89a0f1ac3cebd5bc7646aadec3
treec5a736ca9254afde0f65a0991efd9da216fa112a
parentdfbc86309fd8ebb70a55cafa876320dc1ea8e833
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
include/zfs_fletcher.h
lib/libzpool/Makefile.am
man/man5/zfs-module-parameters.5
module/zcommon/Makefile.in
module/zcommon/zfs_fletcher.c
module/zcommon/zfs_fletcher_sse.c [new file with mode: 0644]