[Bug 216467] [request] Hardware (SSE 4.2) CRC32C support in calculate_crc32c()
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Jan 25 21:26:03 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216467
Bug ID: 216467
Summary: [request] Hardware (SSE 4.2) CRC32C support in
calculate_crc32c()
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: freebsd-bugs at FreeBSD.org
Reporter: ben.rubson at gmail.com
Hello,
Could it be possible to implement an optimized version of calculate_crc32c()
with hardware CRC32C support please ?
SSE 4.2 has this feature, which is really interesting.
Here are some benchmarks with this :
https://github.com/laanwj/crcbench
On an Intel E5-2620v3 :
# ./crcbench
CRC32C benchmarks
[sw] 65543000 bytes in 69730us monotonic 69726us CPU (940.0MB/s)
[hw-sse42] 65543000 bytes in 12619us monotonic 12618us CPU (5194.4MB/s)
On more data (10GB) :
# ./crcbench
CRC32C benchmarks
[sw] 10485767000 bytes in 11179263us monotonic 11178667us CPU (938.0MB/s)
[hw-sse42] 10485767000 bytes in 2028412us monotonic 2028305us CPU (5169.7MB/s)
Sounds really interesting and promising.
Main goal behind this request is to improve iSCSI throughput when HeaderDigest
and DataDigest are enabled.
Enabling these options made my iSCSI throughput drop from 300MB/s to 200MB/s.
Hardware CRC32C should then help minimising this difference.
Thank you very much !
Ben
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list