Date: Wed, 25 Jan 2017 21:26:03 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 216467] [request] Hardware (SSE 4.2) CRC32C support in calculate_crc32c() Message-ID: <bug-216467-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
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@FreeBSD.org Reporter: ben.rubson@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-216467-8>
