[Feature] Accelerated CRC-T10DIF checksum for the SCSI layer

Bug #1188010 reported by XiongZhang on 2013-06-06
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
intel
Undecided
Unassigned
linux (Ubuntu)
Medium
Tim Gardner
Saucy
Medium
Tim Gardner

Bug Description

The current CRC-T10DIF checksum is computed using a table lookup. By using PCLMULQDQ and SSE instructions available in Sandy
Bridge and later CPUs, the checksum computation speed can be sped up by 8x and more, improving the throughput for Solid State Drive and also new NVM express products.

Upstream schedule: kernel 3.12

XiongZhang (xiong-y-zhang) wrote :

Code merged into crypto-dev tree targeting the 3.11 kernel
https://lkml.org/lkml/2013/4/17/509

Changed in linux (Ubuntu Saucy):
importance: Undecided → Medium
status: New → Triaged
XiongZhang (xiong-y-zhang) wrote :

The patch set has been merged into kernel 3.11.
1.
commit 39761214eefc6b070f29402aa1165f24d789b3f7
Author: Tim Chen <email address hidden>
Date: Wed May 1 12:52:51 2013 -0700

    crypto: crct10dif - Simple correctness and speed test for CRCT10DIF hash
2.
commit 0b95a7f85718adcbba36407ef88bba0a7379ed03
Author: Tim Chen <email address hidden>
Date: Wed May 1 12:52:50 2013 -0700

    crypto: crct10dif - Glue code to cast accelerated CRCT10DIF assembly as a crypto transform
3.
commit 31d939625a9a20b1badd2d4e6bf6fd39fa523405
Author: Tim Chen <email address hidden>
Date: Wed May 1 12:52:49 2013 -0700

    crypto: crct10dif - Accelerated CRC T10 DIF computation with PCLMULQDQ instruction
4.
commit 2d31e518a42828df7877bca23a958627d60408bc
Author: Tim Chen <email address hidden>
Date: Wed May 1 12:52:48 2013 -0700

    crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework

XiongZhang (xiong-y-zhang) wrote :

The feature is taken out of 3.11-rc due to a problem with modules dependency
feature in the kernel infrastructure not putting the t10dif module properly in
initrd causing boot failure for some scenario. The feature will be remerged in
3.12 when this problem is fixed by Rusty Russell.

See http://www.spinics.net/lists/linux-crypto/msg09254.html

description: updated
XiongZhang (xiong-y-zhang) wrote :

The feature was taken out of 3.11 due to a module dependency problem. That
problem is fixed in commit 7cb14ba. The feature is now reinstated in 3.12-rc1.

A detailed discussion of the soft module dependecies issue that caused the
T10DIF to be backed out of 3.11 and how to fix it can be found here:
https://lkml.org/lkml/2013/9/10/284

please backport the following two commits to 13.10, so that this feature can be
enabled in 13.10.

1.
commit 7cb14ba75d57910cc4b62115dd5db7bd83c93684
Author: Andreas Robinson <email address hidden>
Date: Tue Aug 20 15:33:19 2013 +0930

    modules: add support for soft module dependencies

2.
commit 68411521cc6055edc6274e03ab3210a5893533ba
Author: Herbert Xu <email address hidden>
Date: Sat Sep 7 12:56:26 2013 +1000

    Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework"

Tim Gardner (timg-tpi) on 2013-09-24
Changed in linux (Ubuntu Saucy):
assignee: nobody → Tim Gardner (timg-tpi)
status: Triaged → In Progress
status: In Progress → Fix Committed
information type: Private → Public
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.11.0-9.16

---------------
linux (3.11.0-9.16) saucy; urgency=low

  [ Andy Whitcroft ]

  * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ
    CAPACITY (16) at SPC-2"
  * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at
    SPC-2"
  * Revert "SAUCE: (no-up) scsi: add scsi device flag to request READ
    CAPACITY (16) be preferred"
  * Revert "SAUCE: (no-up) scsi: add scsi device flag to request VPD pages
    be used at SPC-2"

  [ Seth Forshee ]

  * SAUCE: (no-up) ACPI: Disable Windows 8 compatibility for some Lenovo
    ThinkPads
    - LP: #1183856

  [ Tim Gardner ]

  * [Config] CONFIG_CRYPTO_CRCT10DIF=y, CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
  * [packaging] Bump ABI for every new release
  * rebase to v3.11.2
  * Release tracker
    - LP: #1231999

  [ Upstream Kernel Changes ]

  * scsi: hyper-v storsvc switch up to SPC-3
  * perf/x86: Add Silvermont (22nm Atom) support
    - LP: #1091539
  * perf/x86/intel: Fix Silvermont offcore masks
    - LP: #1091539
  * modules: add support for soft module dependencies
    - LP: #1188010
  * Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use
    crypto transform framework"
    - LP: #1188010
  * skge: fix broken driver
    - LP: #1216745
  * Input: cypress_ps2 - Return zero finger count if palm is detected.
    - LP: #1229361
  * udf: Standardize return values in mount sequence
    - LP: #1228751
  * udf: Refuse RW mount of the filesystem instead of making it RO
    - LP: #1228751
  * rebase to v3.11.2
 -- Tim Gardner <email address hidden> Mon, 23 Sep 2013 07:41:07 -0600

Changed in linux (Ubuntu Saucy):
status: Fix Committed → Fix Released
Changed in intel:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers