linux/arch
Linus Torvalds f617d24606 arm64 FPSIMD buffer on-stack for 6.19
In v6.8, the size of task_struct on arm64 increased by 528 bytes due
 to the new 'kernel_fpsimd_state' field. This field was added to allow
 kernel-mode FPSIMD code to be preempted.
 
 Unfortunately, 528 bytes is kind of a lot for task_struct. This
 regression in the task_struct size was noticed and reported.
 
 Recover that space by making this state be allocated on the stack at
 the beginning of each kernel-mode FPSIMD section.
 
 To make it easier for all the users of kernel-mode FPSIMD to do that
 correctly, introduce and use a 'scoped_ksimd' abstraction.
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQSacvsUNc7UX4ntmEPzXCl4vpKOKwUCaSuxbxQcZWJpZ2dlcnNA
 a2VybmVsLm9yZwAKCRDzXCl4vpKOKysnAQCbN4Jed8IqwGUEkkjZrnMeN0pEO4RI
 lAhb2Obj3n/grQEAiPBmqWVjXaIPO4lSgLQxY6XoVLr+utMod4TMTYHfnAY=
 =0zQQ
 -----END PGP SIGNATURE-----

Merge tag 'fpsimd-on-stack-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux

Pull arm64 FPSIMD on-stack buffer updates from Eric Biggers:
 "This is a core arm64 change. However, I was asked to take this because
  most uses of kernel-mode FPSIMD are in crypto or CRC code.

  In v6.8, the size of task_struct on arm64 increased by 528 bytes due
  to the new 'kernel_fpsimd_state' field. This field was added to allow
  kernel-mode FPSIMD code to be preempted.

  Unfortunately, 528 bytes is kind of a lot for task_struct. This
  regression in the task_struct size was noticed and reported.

  Recover that space by making this state be allocated on the stack at
  the beginning of each kernel-mode FPSIMD section.

  To make it easier for all the users of kernel-mode FPSIMD to do that
  correctly, introduce and use a 'scoped_ksimd' abstraction"

* tag 'fpsimd-on-stack-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux: (23 commits)
  lib/crypto: arm64: Move remaining algorithms to scoped ksimd API
  lib/crypto: arm/blake2b: Move to scoped ksimd API
  arm64/fpsimd: Allocate kernel mode FP/SIMD buffers on the stack
  arm64/fpu: Enforce task-context only for generic kernel mode FPU
  net/mlx5: Switch to more abstract scoped ksimd guard API on arm64
  arm64/xorblocks:  Switch to 'ksimd' scoped guard API
  crypto/arm64: sm4 - Switch to 'ksimd' scoped guard API
  crypto/arm64: sm3 - Switch to 'ksimd' scoped guard API
  crypto/arm64: sha3 - Switch to 'ksimd' scoped guard API
  crypto/arm64: polyval - Switch to 'ksimd' scoped guard API
  crypto/arm64: nhpoly1305 - Switch to 'ksimd' scoped guard API
  crypto/arm64: aes-gcm - Switch to 'ksimd' scoped guard API
  crypto/arm64: aes-blk - Switch to 'ksimd' scoped guard API
  crypto/arm64: aes-ccm - Switch to 'ksimd' scoped guard API
  raid6: Move to more abstract 'ksimd' guard API
  crypto: aegis128-neon - Move to more abstract 'ksimd' guard API
  crypto/arm64: sm4-ce-gcm - Avoid pointless yield of the NEON unit
  crypto/arm64: sm4-ce-ccm - Avoid pointless yield of the NEON unit
  crypto/arm64: aes-ce-ccm - Avoid pointless yield of the NEON unit
  lib/crc: Switch ARM and arm64 to 'ksimd' scoped guard API
  ...
2025-12-02 18:53:50 -08:00
..
alpha arch: hookup listns() system call 2025-11-03 17:41:18 +01:00
arc Ext4 bug fixes for 6.18-rc2, including 2025-10-15 07:51:57 -07:00
arm arm64 FPSIMD buffer on-stack for 6.19 2025-12-02 18:53:50 -08:00
arm64 arm64 FPSIMD buffer on-stack for 6.19 2025-12-02 18:53:50 -08:00
csky csky: abiv2: adapt to new folio flags field 2025-10-21 15:46:18 -07:00
hexagon Remove long-stale ext3 defconfig option 2025-10-15 07:57:28 -07:00
loongarch - imh_edac: Add a new EDAC driver for Intel Diamond Rapids and 2025-12-02 10:45:50 -08:00
m68k m68k updates for v6.19 2025-12-02 16:32:02 -08:00
microblaze arch: hookup listns() system call 2025-11-03 17:41:18 +01:00
mips namespace-6.19-rc1 2025-12-01 09:47:41 -08:00
nios2 Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
openrisc Ext4 bug fixes for 6.18-rc2, including 2025-10-15 07:51:57 -07:00
parisc Core kernel bug handling infrastructure changes for v6.19: 2025-12-01 21:33:01 -08:00
powerpc Scoped user mode access and related changes: 2025-12-02 08:01:39 -08:00
riscv Scoped user mode access and related changes: 2025-12-02 08:01:39 -08:00
s390 Crypto library updates for 6.19 2025-12-02 18:01:03 -08:00
sh Core kernel bug handling infrastructure changes for v6.19: 2025-12-01 21:33:01 -08:00
sparc arch: hookup listns() system call 2025-11-03 17:41:18 +01:00
um updates for UML, notably 2025-10-06 12:10:55 -07:00
x86 AES-GCM optimizations for 6.19 2025-12-02 18:24:35 -08:00
xtensa arch: hookup listns() system call 2025-11-03 17:41:18 +01:00
.gitignore
Kconfig compiler_types: Introduce __nocfi_generic 2025-10-29 20:04:55 -07:00