This repository has been archived by the owner on Feb 26, 2020. It is now read-only.
Multi-buffer sha256 support in SPL to ZFS #646
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch implements multi-buffer hash facilities to export a general
SHA256 api to ZFS. When multibuffer hash is configured in SPL, its
SHA256 api for ZFS will automaticlly transfer SHA256 compute task to
multi-buffer hash facilities which will increase SHA256 performance
2~7 times.
ISA-L multi-buffer hash provides software acceleration for SHA256:
https://github.com/01org/isa-l_crypto
crypto lib source code from above link and checkout master branch.
./configure --with-hash-mb=
make
Following make notice, run:
make -C -f Makefile.kern kernobj
Then, continue run:
make
will be exported out to ZFS module
If ZFS is also patched with multi-buffer sha256, then.
Set sha256 checksum in ZFS dataset: "checksum = sha256"
Data written to ZFS pool will be checksumed by multi-buffer sha256.
Run write workload, on Intel Xeon of Haswell type, cpu consumption of
sha256 will be decreased to be previous 1/2~1/5.
Multibuffer sha256 follows standard sha256 format. With SIMD instruction
set, it can process 4/8/16 sha256 tasks simutaneously. So it has a much
better compute throughput.
Here are Isa-L's performance data sheets about multi-buffer hash.