Skip to content

running kernel mode SIMD with softirqs disabled

Ard Biesheuvel linux-arm-kernel linux-crypto 7 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v7 Latest7 patches 4 repliesIn review
  2. v66 patches 4 repliesSuperseded
  3. v55 patches 7 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v47 patches4 repliesSuperseded
v37 patches10 repliesSuperseded
v29 patches5 repliesApplied
v1 RFC5 patches8 repliesSuperseded

Changes in v7 from the cover letter

- add patch to yield the NEON every 4k of input when processing the AAD
- add some more acks from Eric

Patches in v7 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7crypto: arm64/gcm-aes-ce - remove non-SIMD fallback patharch/arm64/crypto/ghash-ce-glue.c+51 -1580 replies
2/7crypto: arm64/aes-neonbs - stop using SIMD helper for skciphersarch/arm64/crypto/Kconfig arch/arm64/crypto/aes-neonbs-glue.c+9 -1150 replies
3/7crypto: arm64/aes-ce - stop using SIMD helper for skciphersarch/arm64/crypto/Kconfig arch/arm64/crypto/aes-glue.c+13 -930 replies
4/7crypto: arm64/aes-ccm - yield NEON when processing auth-only dataarch/arm64/crypto/aes-ce-ccm-glue.c+1 -00 replies
5/7crypto: arm64/aes-ccm - remove non-SIMD fallback patharch/arm64/crypto/aes-ce-ccm-glue.c+32 -1210 replies
6/7crypto: arm64/aes-ccm - reduce NEON begin/end calls for common casearch/arm64/crypto/aes-ce-ccm-core.S arch/arm64/crypto/aes-ce-ccm-glue.c+49 -320 replies
7/7crypto: arm64/aes-ccm - avoid by-ref argument for ce_aes_ccm_auth_dataarch/arm64/crypto/aes-ce-ccm-core.S arch/arm64/crypto/aes-ce-ccm-glue.c+18 -240 replies

Reviews trailers per patch

5 of 7 patches have a Reviewed-by or Acked-by.

PatchEric Biggers
1/7R-b
2/7R-b
3/7R-b
4/7
5/7R-b
6/7
7/7R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v7 thread

Cover letter [PATCH v7 0/7] running kernel mode SIMD with softirqs disabled

This is a follow-up to [0], but given that the arm64 architectural pieces have been merged for arm64, the only remaining changes are crypto specific. Therefore, the audience has been reduced to those people who are somewhat more likely to care about these specifics.

The AEAD and skcipher APIs may only be called from task or softirq context. This permits the arm64 AEAD and skcipher code to get rid of all scalar fallbacks, given that on this architecture, softirqs are now no longer served while the SIMD unit is being used in kernel mode, which means that the scalar fallbacks are never needed. These are removed in this series.

Changes since v6:
- add patch to yield the NEON every 4k of input when processing the AAD
- add some more acks from Eric

Changes since v5:
- add Eric's R-b to patches #1 to #3
- split CCM changes into 3 separate patches

Changes since v4:
- drop skcipher_walk layer change to deal with zero sized walks
- drop aead/skcipher layer sanity checks on invocations from hardirq context
- add patch to clean up CCM a bit more after removing the SIMD code path

Changes since v3:
- clarify the nature of the issue addressed by patch #1, and apply the same fix to the skcipher walker
- update patches #2 and #3 so that the failures can be observed by the crypto stats code

[0] https://lore.kernel.org/linux-arm-kernel/[email protected]/

Ard Biesheuvel (7):
crypto: arm64/gcm-aes-ce - remove non-SIMD fallback path
crypto: arm64/aes-neonbs - stop using SIMD helper for skciphers
crypto: arm64/aes-ce - stop using SIMD helper for skciphers
crypto: arm64/aes-ccm - yield NEON when processing auth-only data
crypto: arm64/aes-ccm - remove non-SIMD fallback path
crypto: arm64/aes-ccm - reduce NEON begin/end calls for common case
crypto: arm64/aes-ccm - avoid by-ref argument for ce_aes_ccm_auth_data

 arch/arm64/crypto/Kconfig           |   6 -
 arch/arm64/crypto/aes-ce-ccm-core.S |  24 +--
 arch/arm64/crypto/aes-ce-ccm-glue.c | 203 ++++++-------------
 arch/arm64/crypto/aes-glue.c        | 102 ++--------
 arch/arm64/crypto/aes-neonbs-glue.c | 122 +-----------
 arch/arm64/crypto/ghash-ce-glue.c   | 209 +++++---------------
 6 files changed, 148 insertions(+), 518 deletions(-)
Signature · 1 line
2.30.2