All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Elliott <elliott@hpe.com>
To: herbert@gondor.apana.org.au, davem@davemloft.net,
	ebiggers@kernel.org, linux-crypto@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Robert Elliott <elliott@hpe.com>
Subject: [PATCH v3 12/17] crypto: Kconfig - simplify CRC entries
Date: Sat, 20 Aug 2022 13:41:46 -0500	[thread overview]
Message-ID: <20220820184151.1149247-13-elliott@hpe.com> (raw)
In-Reply-To: <20220820184151.1149247-1-elliott@hpe.com>

Shorten menu titles and make them consistent:
- acronym
- name
- architecture features in parenthesis
- no suffixes like "<something> algorithm", "support", or
  "hardware acceleration", or "optimized"

Simplify help text descriptions, update references, and ensure that
https references are still valid.

Signed-off-by: Robert Elliott <elliott@hpe.com>
---
 arch/arm/crypto/Kconfig     | 17 +++++++++++++++--
 arch/arm64/crypto/Kconfig   |  7 ++++++-
 arch/mips/crypto/Kconfig    |  7 ++++---
 arch/powerpc/crypto/Kconfig | 28 +++++++++++++++++-----------
 arch/s390/crypto/Kconfig    |  9 ++++-----
 arch/sparc/crypto/Kconfig   |  7 ++++---
 arch/x86/crypto/Kconfig     | 36 ++++++++++++++++--------------------
 crypto/Kconfig              | 37 +++++++++++++++++++++++++------------
 8 files changed, 91 insertions(+), 57 deletions(-)

diff --git a/arch/arm/crypto/Kconfig b/arch/arm/crypto/Kconfig
index 4b062bf53fa2..75684521f581 100644
--- a/arch/arm/crypto/Kconfig
+++ b/arch/arm/crypto/Kconfig
@@ -157,16 +157,29 @@ config CRYPTO_CHACHA20_NEON
 	select CRYPTO_ARCH_HAVE_LIB_CHACHA
 
 config CRYPTO_CRC32_ARM_CE
-	tristate "CRC32(C) digest algorithm using CRC and/or PMULL instructions"
+	tristate "CRC32C and CRC32"
 	depends on KERNEL_MODE_NEON
 	depends on CRC32
 	select CRYPTO_HASH
+	help
+	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
+	  and CRC32 CRC algorithm (IEEE 802.3)
+
+	  Architecture: arm using:
+	  - CRC and/or PMULL instructions
+
+	  Drivers: crc32-arm-ce and crc32c-arm-ce
 
 config CRYPTO_CRCT10DIF_ARM_CE
-	tristate "CRCT10DIF digest algorithm using PMULL instructions"
+	tristate "CRCT10DIF"
 	depends on KERNEL_MODE_NEON
 	depends on CRC_T10DIF
 	select CRYPTO_HASH
+	help
+	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
+
+	  Architecture: arm using:
+	  - PMULL (Polynomial Multiply Long) instructions
 
 endmenu
 
diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig
index c5d42f62d8bb..cfc934880c97 100644
--- a/arch/arm64/crypto/Kconfig
+++ b/arch/arm64/crypto/Kconfig
@@ -127,9 +127,14 @@ config CRYPTO_AES_ARM64_CE_CCM
 	select CRYPTO_LIB_AES
 
 config CRYPTO_CRCT10DIF_ARM64_CE
-	tristate "CRCT10DIF digest algorithm using PMULL instructions"
+	tristate "CRCT10DIF (PMULL)"
 	depends on KERNEL_MODE_NEON && CRC_T10DIF
 	select CRYPTO_HASH
+	help
+	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
+
+	  Architecture: arm64 using
+	  - PMULL (Polynomial Multiply Long) instructions
 
 endmenu
 
diff --git a/arch/mips/crypto/Kconfig b/arch/mips/crypto/Kconfig
index 7c07611e2322..8a40add80430 100644
--- a/arch/mips/crypto/Kconfig
+++ b/arch/mips/crypto/Kconfig
@@ -3,12 +3,13 @@
 menu "Accelerated Cryptographic Algorithms for CPU (mips)"
 
 config CRYPTO_CRC32_MIPS
-	tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
+	tristate "CRC32c and CRC32"
 	depends on MIPS_CRC_SUPPORT
 	select CRYPTO_HASH
 	help
-	  CRC32c and CRC32 CRC algorithms implemented using mips crypto
-	  instructions, when available.
+	  CRC32c and CRC32 CRC algorithms
+
+	  Architecture: mips
 
 config CRYPTO_POLY1305_MIPS
 	tristate "Poly1305 authenticator algorithm (MIPS optimized)"
diff --git a/arch/powerpc/crypto/Kconfig b/arch/powerpc/crypto/Kconfig
index 74f535940faa..d1c34e949ce1 100644
--- a/arch/powerpc/crypto/Kconfig
+++ b/arch/powerpc/crypto/Kconfig
@@ -3,30 +3,36 @@
 menu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
 
 config CRYPTO_CRC32C_VPMSUM
-	tristate "CRC32c CRC algorithm (powerpc64)"
+	tristate "CRC32c"
 	depends on PPC64 && ALTIVEC
 	select CRYPTO_HASH
 	select CRC32
 	help
-	  CRC32c algorithm implemented using vector polynomial multiply-sum
-	  (vpmsum) instructions, introduced in POWER8. Enable on POWER8
-	  and newer processors for improved performance.
+	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
+
+	  Architecture: powerpc64 using
+	  - AltiVec extensions
+
+	  Enable on POWER8 and newer processors for improved performance.
 
 config CRYPTO_CRCT10DIF_VPMSUM
-	tristate "CRC32T10DIF powerpc64 hardware acceleration"
+	tristate "CRC32T10DIF"
 	depends on PPC64 && ALTIVEC && CRC_T10DIF
 	select CRYPTO_HASH
 	help
-	  CRC10T10DIF algorithm implemented using vector polynomial
-	  multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
-	  POWER8 and newer processors for improved performance.
+	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
+
+	  Architecture: powerpc64 using
+	  - AltiVec extensions
+
+	  Enable on POWER8 and newer processors for improved performance.
 
 config CRYPTO_VPMSUM_TESTER
-	tristate "Powerpc64 vpmsum hardware acceleration tester"
+	tristate "CRC32c and CRC32T10DIF hardware acceleration tester"
 	depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
 	help
-	  Stress test for CRC32c and CRC-T10DIF algorithms implemented with
-	  POWER8 vpmsum instructions.
+	  Stress test for CRC32c and CRCT10DIF algorithms implemented with
+	  powerpc64 AltiVec extensions (POWER8 vpmsum instructions).
 	  Unless you are testing these algorithms, you don't need this.
 
 config CRYPTO_MD5_PPC
diff --git a/arch/s390/crypto/Kconfig b/arch/s390/crypto/Kconfig
index ef0651d71e9d..5d12ecfaa337 100644
--- a/arch/s390/crypto/Kconfig
+++ b/arch/s390/crypto/Kconfig
@@ -3,15 +3,14 @@
 menu "Accelerated Cryptographic Algorithms for CPU (s390)"
 
 config CRYPTO_CRC32_S390
-	tristate "CRC-32 algorithms"
+	tristate "CRC32c and CRC32"
 	depends on S390
 	select CRYPTO_HASH
 	select CRC32
 	help
-	  Select this option if you want to use hardware accelerated
-	  implementations of CRC algorithms.  With this option, you
-	  can optimize the computation of CRC-32 (IEEE 802.3 Ethernet)
-	  and CRC-32C (Castagnoli).
+	  CRC32c and CRC32 CRC algorithms
+
+	  Architecture: s390
 
 	  It is available with IBM z13 or later.
 
diff --git a/arch/sparc/crypto/Kconfig b/arch/sparc/crypto/Kconfig
index eaa2afc1d50a..145debe629cd 100644
--- a/arch/sparc/crypto/Kconfig
+++ b/arch/sparc/crypto/Kconfig
@@ -13,13 +13,14 @@ config CRYPTO_DES_SPARC64
 	  optimized using SPARC64 crypto opcodes.
 
 config CRYPTO_CRC32C_SPARC64
-	tristate "CRC32c CRC algorithm (SPARC64)"
+	tristate "CRC32c"
 	depends on SPARC64
 	select CRYPTO_HASH
 	select CRC32
 	help
-	  CRC32c CRC algorithm implemented using sparc64 crypto instructions,
-	  when available.
+	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
+
+	  Architecture: sparc64
 
 config CRYPTO_MD5_SPARC64
 	tristate "MD5 digest algorithm (SPARC64)"
diff --git a/arch/x86/crypto/Kconfig b/arch/x86/crypto/Kconfig
index 76229ccb79fd..03f9a3a35e42 100644
--- a/arch/x86/crypto/Kconfig
+++ b/arch/x86/crypto/Kconfig
@@ -467,39 +467,35 @@ config CRYPTO_GHASH_CLMUL_NI_INTEL
 	  GHASH, the hash function used in GCM (Galois/Counter mode).
 
 config CRYPTO_CRC32C_INTEL
-	tristate "CRC32c INTEL hardware acceleration"
+	tristate "CRC32c (SSE4.2/PCLMULQDQ)"
 	depends on X86
 	select CRYPTO_HASH
 	help
-	  In Intel processor with SSE4.2 supported, the processor will
-	  support CRC32C implementation using hardware accelerated CRC32
-	  instruction. This option will create 'crc32c-intel' module,
-	  which will enable any routine to use the CRC32 instruction to
-	  gain performance compared with software implementation.
-	  Module will be crc32c-intel.
+	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
+
+	  Architecture: x86 (32-bit and 64-bit) using:
+	  - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
+	  - PCLMULQDQ (carry-less multiplication)
 
 config CRYPTO_CRC32_PCLMUL
-	tristate "CRC32 PCLMULQDQ hardware acceleration"
+	tristate "CRC32 (PCLMULQDQ)"
 	depends on X86
 	select CRYPTO_HASH
 	select CRC32
 	help
-	  From Intel Westmere and AMD Bulldozer processor with SSE4.2
-	  and PCLMULQDQ supported, the processor will support
-	  CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
-	  instruction. This option will create 'crc32-pclmul' module,
-	  which will enable any routine to use the CRC-32-IEEE 802.3 checksum
-	  and gain better performance as compared with the table implementation.
+	  CRC32 CRC algorithm (IEEE 802.3)
+
+	  Architecture: x86 (32-bit and 64-bit) using:
+	  - PCLMULQDQ (carry-less multiplication)
 
 config CRYPTO_CRCT10DIF_PCLMUL
-	tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
+	tristate "CRCT10DIF (PCLMULQDQ)"
 	depends on X86 && 64BIT && CRC_T10DIF
 	select CRYPTO_HASH
 	help
-	  For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
-	  CRC T10 DIF PCLMULQDQ computation can be hardware
-	  accelerated PCLMULQDQ instruction. This option will create
-	  'crct10dif-pclmul' module, which is faster when computing the
-	  crct10dif checksum as compared with the generic table implementation.
+	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
+
+	  Architecture: x86_64 using:
+	  - PCLMULQDQ (carry-less multiplication)
 
 endmenu
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 3694b2ff44f8..a47d5d9d1180 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -1093,34 +1093,47 @@ config CRYPTO_XXHASH
 menu "CRCs (cyclic redundancy checks)"
 
 config CRYPTO_CRC32C
-	tristate "CRC32c CRC algorithm"
+	tristate "CRC32c"
 	select CRYPTO_HASH
 	select CRC32
 	help
-	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
-	  by iSCSI for header and data digests and by others.
-	  See Castagnoli93.  Module will be crc32c.
+	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
+
+	  A 32-bit CRC (cyclic redundancy check) with a polynomial defined
+	  by G. Castagnoli, S. Braeuer and M. Herrman in "Optimization of Cyclic
+	  Redundancy-Check Codes with 24 and 32 Parity Bits", IEEE Transactions
+	  on Communications, Vol. 41, No. 6, June 1993, selected for use with
+	  iSCSI.
+
+	  Used by btrfs, ext4, jbd2, NVMeoF/TCP, and iSCSI.
 
 config CRYPTO_CRC32
-	tristate "CRC32 CRC algorithm"
+	tristate "CRC32"
 	select CRYPTO_HASH
 	select CRC32
 	help
-	  CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
-	  Shash crypto api wrappers to crc32_le function.
+	  CRC32 CRC algorithm (IEEE 802.3)
+
+	  Used by RoCEv2 and f2fs.
 
 config CRYPTO_CRCT10DIF
-	tristate "CRCT10DIF algorithm"
+	tristate "CRCT10DIF"
 	select CRYPTO_HASH
 	help
-	  CRC T10 Data Integrity Field computation is being cast as
-	  a crypto transform.  This allows for faster crc t10 diff
-	  transforms to be used if they are available.
+	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
+
+	  CRC algorithm used by the SCSI Block Commands standard.
 
 config CRYPTO_CRC64_ROCKSOFT
-	tristate "Rocksoft Model CRC64 algorithm"
+	tristate "CRC64 based on Rocksoft Model algorithm"
 	depends on CRC64
 	select CRYPTO_HASH
+	help
+	  CRC64 CRC algorithm based on the Rocksoft Model CRC Algorithm
+
+	  Used by the NVMe implementation of T10 DIF (BLK_DEV_INTEGRITY)
+
+	  See https://zlib.net/crc_v3.txt
 
 endmenu
 
-- 
2.37.1


  parent reply	other threads:[~2022-08-20 18:43 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-15 19:06 [PATCH 0/8] crypto: Kconfig - simplify menus and help text Robert Elliott
2022-08-15 19:06 ` [PATCH 1/8] crypto: Kconfig - add submenus Robert Elliott
2022-08-15 19:06 ` [PATCH 2/8] crypto: Kconfig - simplify public-key entries Robert Elliott
2022-08-15 19:06 ` [PATCH 3/8] crypto: Kconfig - simplify user-space interface entries Robert Elliott
2022-08-15 19:06 ` [PATCH 4/8] crypto: Kconfig - simplify AEAD and block mode entries Robert Elliott
2022-08-15 19:06 ` [PATCH 5/8] crypto: Kconfig - simplify hash mode and digest entries Robert Elliott
2022-08-15 19:06 ` [PATCH 6/8] crypto: Kconfig - simplify cipher, compression, and RNG entries Robert Elliott
2022-08-15 19:06 ` [PATCH 7/8] crypto: Kconfig - sort the digests Robert Elliott
2022-08-15 19:06 ` [PATCH 8/8] crypto: Kconfig - sort the ciphers Robert Elliott
2022-08-15 21:36   ` Eric Biggers
2022-08-16  3:13     ` Elliott, Robert (Servers)
2022-08-17 23:20   ` [PATCH v2 00/10] crypto: Kconfig - simplify menus and help text Robert Elliott
2022-08-17 23:20     ` [PATCH v2 01/10] crypto: Kconfig - move mips entries to a submenu Robert Elliott
2022-08-17 23:20     ` [PATCH v2 02/10] crypto: Kconfig - move powerpc " Robert Elliott
2022-08-17 23:20     ` [PATCH v2 03/10] crypto: Kconfig - move s390 " Robert Elliott
2022-08-17 23:20     ` [PATCH v2 04/10] crypto: Kconfig - move sparc " Robert Elliott
2022-08-17 23:20     ` [PATCH v2 05/10] crypto: Kconfig - move x86 " Robert Elliott
2022-08-17 23:20     ` [PATCH v2 06/10] crypto: Kconfig - remove AES_ARM64 selection by SA2UL entry Robert Elliott
2022-08-17 23:20     ` [PATCH v2 07/10] crypto: Kconfig - move arm and arm64 menus to Crypto API page Robert Elliott
2022-08-17 23:20     ` [PATCH v2 08/10] crypto: Kconfig - sort the arm64 entries Robert Elliott
2022-08-17 23:20     ` [PATCH v2 09/10] crypto: Kconfig - sort the arm entries Robert Elliott
2022-08-17 23:20     ` [PATCH v2 10/10] crypto: Kconfig - add submenus Robert Elliott
2022-08-18  4:43       ` Eric Biggers
2022-08-18  5:44         ` Elliott, Robert (Servers)
2022-08-18  0:42     ` [PATCH v2 00/10] crypto: Kconfig - simplify menus and help text Nayna
2022-08-18  2:13       ` Elliott, Robert (Servers)
2022-08-18  2:43         ` Elliott, Robert (Servers)
     [not found]       ` <MW5PR84MB1842E554A4677FA177D73E23AB6D9@MW5PR84MB1842.NAMPRD84.PROD.OUTLOOK.COM>
     [not found]         ` <1eb670ab-b238-8406-510d-c8dad46a2fb5@linux.vnet.ibm.com>
     [not found]           ` <MW5PR84MB18421D567F8CA4E5AC99B7C3AB729@MW5PR84MB1842.NAMPRD84.PROD.OUTLOOK.COM>
     [not found]             ` <018a65de-60ce-1906-c461-44dc95353ab9@linux.vnet.ibm.com>
     [not found]               ` <MW5PR84MB1842FE1C4B5218959C2608F4AB759@MW5PR84MB1842.NAMPRD84.PROD.OUTLOOK.COM>
     [not found]                 ` <c45efdf7-a677-acb7-84c1-b64284d414a4@linux.vnet.ibm.com>
     [not found]                   ` <MW5PR84MB184208ECF216DD025CE9D35BAB759@MW5PR84MB1842.NAMPRD84.PROD.OUTLOOK.COM>
     [not found]                     ` <MW5PR84MB1842263C39734FD662F991E2AB749@MW5PR84MB1842.NAMPRD84.PROD.OUTLOOK.COM>
     [not found]                       ` <MW5PR84MB184220E67A8141565A8D04CCAB749@MW5PR84MB1842.NAMPRD84.PROD.OUTLOOK.COM>
2022-08-28  7:33                         ` Christophe Leroy
2022-08-29  0:05                           ` Elliott, Robert (Servers)
2022-08-29  8:53                             ` Christophe Leroy
2022-08-29 13:59                               ` Elliott, Robert (Servers)
2022-08-30  7:19                                 ` Christophe Leroy
2022-08-18  2:47     ` Eric Biggers
2022-08-18  3:00       ` Elliott, Robert (Servers)
2022-08-18  4:28         ` Eric Biggers
2022-08-20 18:41     ` [PATCH v3 00/17] " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 01/17] crypto: Kconfig - move mips entries to a submenu Robert Elliott
2022-08-20 18:41       ` [PATCH v3 02/17] crypto: Kconfig - move powerpc " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 03/17] crypto: Kconfig - move s390 " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 04/17] crypto: Kconfig - move sparc " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 05/17] crypto: Kconfig - move x86 " Robert Elliott
2022-08-20 18:41       ` [PATCH v3 06/17] crypto: Kconfig - remove AES_ARM64 ref by SA2UL Robert Elliott
2022-08-20 18:41       ` [PATCH v3 07/17] crypto: Kconfig - submenus for arm and arm64 Robert Elliott
2022-08-20 18:41       ` [PATCH v3 08/17] crypto: Kconfig - sort the arm64 entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 09/17] crypto: Kconfig - sort the arm entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 10/17] crypto: Kconfig - add submenus Robert Elliott
2022-08-20 18:41       ` [PATCH v3 11/17] crypto: Kconfig - simplify public-key entries Robert Elliott
2022-08-20 18:41       ` Robert Elliott [this message]
2022-08-20 18:41       ` [PATCH v3 13/17] crypto: Kconfig - simplify aead entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 14/17] crypto: Kconfig - simplify hash entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 15/17] crypto: Kconfig - simplify userspace entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 16/17] crypto: Kconfig - simplify cipher entries Robert Elliott
2022-08-20 18:41       ` [PATCH v3 17/17] crypto: Kconfig - simplify compression/RNG entries Robert Elliott
2022-08-26 11:08       ` [PATCH v3 00/17] crypto: Kconfig - simplify menus and help text Herbert Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220820184151.1149247-13-elliott@hpe.com \
    --to=elliott@hpe.com \
    --cc=davem@davemloft.net \
    --cc=ebiggers@kernel.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.