]> git.proxmox.com Git - mirror_zfs.git/commit - man/man5/zfs-module-parameters.5
Fletcher4 algorithm implemented in pure NEON for Aarch64 / ARMv8 64 bits
authorRomain Dolbeau <romain.github@dolbeau.name>
Fri, 21 Oct 2016 17:55:49 +0000 (19:55 +0200)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 21 Oct 2016 17:55:49 +0000 (10:55 -0700)
commit24cdeaf12e9e546621902449699fc6d664aeac2b
tree12af696407ba15b157d591f44f23de6d5eee2882
parente4ffa98dcaf2208c742609f0ab2bdb343071446a
Fletcher4 algorithm implemented in pure NEON for Aarch64 / ARMv8 64 bits

This is not useful on micro-architecture with a weak NEON
implementation (only 64 bits); the native version is slower &
the byteswap barely faster than scalar.  On A53 or A57, it's
a small improvement on scalar but OK for byteswap.

Results from an A53 system:
0 0 0x01 -1 0 1499068294333000 1499101101878000
implementation   native         byteswap
scalar           1008227510     755880264
aarch64_neon     1198098720     1044818671
fastest          aarch64_neon   aarch64_neon

Results from a A57 system:
0 0 0x01 -1 0 4407214734807033 4407233933777404
implementation   native         byteswap
scalar           2302071241     1124873346
aarch64_neon     2542214946     2245570352
fastest          aarch64_neon   aarch64_neon

Reviewed-by: Gvozden Neskovic <neskovic@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Romain Dolbeau <romain.dolbeau@atos.net>
Closes #5248
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_aarch64_neon.c [new file with mode: 0644]