Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Bug 212454] iSCSI hardware CRC32C support

3 views
Skip to first unread message

bugzilla...@freebsd.org

unread,
Sep 7, 2016, 9:58:19 AM9/7/16
to freebs...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212454

Bug ID: 212454
Summary: iSCSI hardware CRC32C support
Product: Base System
Version: 11.0-STABLE
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: freebs...@FreeBSD.org
Reporter: ben.r...@gmail.com
CC: freebs...@FreeBSD.org

Hello,

HeaderDigest and DataDigest are useful options for data integrity.
They are based on CRC32C.
Intel CPUs support iSCSI hardware CRC32C through SSE 4.2.

It would then really be nice to have hardware CRC32C supported on both
initiator and target sides.

Thank you very much !

Best regards,

Ben

--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
freebs...@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-scsi
To unsubscribe, send any mail to "freebsd-scsi...@freebsd.org"

bugzilla...@freebsd.org

unread,
Sep 7, 2016, 10:39:08 AM9/7/16
to freebs...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212454

--- Comment #1 from Ben RUBSON <ben.r...@gmail.com> ---
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.

Enabling HeaderDigest and DataDigest makes my iSCSI throughput drop from
300MB/s to 200MB/s.
Hardware CRC32C should help minimising this difference.

Thank you !

bugzilla...@freebsd.org

unread,
Sep 9, 2016, 1:47:46 PM9/9/16
to freebs...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212454

--- Comment #2 from Ben RUBSON <ben.r...@gmail.com> ---
I tried to include crc32c_sse42.h from https://github.com/laanwj/crcbench, but
I did not manage to make kernel compile with it.
I must miss some kernel dev knowledge :)
Goal was then as a test to replace function calculate_crc32c() (I think this is
the one we are interested in) by the one provided in this header file.

bugzilla...@freebsd.org

unread,
Sep 10, 2016, 9:27:36 PM9/10/16
to freebs...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212454

Mark Linimon <lin...@FreeBSD.org> changed:

What |Removed |Added
----------------------------------------------------------------------------
Assignee|freebs...@FreeBSD.org |freebs...@FreeBSD.org
CC|freebs...@FreeBSD.org |
Summary|iSCSI hardware CRC32C |[request] iSCSI hardware
|support |CRC32C support

--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.

bugzilla...@freebsd.org

unread,
Sep 18, 2016, 6:37:41 AM9/18/16
to freebs...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212454

Ben RUBSON <ben.r...@gmail.com> changed:

What |Removed |Added
----------------------------------------------------------------------------
Severity|Affects Only Me |Affects Many People
Version|11.0-STABLE |CURRENT

--
You are receiving this mail because:
You are the assignee for the bug.
0 new messages