linux/arch
Linus Torvalds a5819099f6 Merge branch 'runtime-constants'
Merge runtime constants infrastructure with implementations for x86 and
arm64.

This is one of four branches that came out of me looking at profiles of
my kernel build filesystem load on my 128-core Altra arm64 system, where
pathname walking and the user copies (particularly strncpy_from_user()
for fetching the pathname from user space) is very hot.

This is a very specialized "instruction alternatives" model where the
dentry hash pointer and hash count will be constants for the lifetime of
the kernel, but the allocation are not static but done early during the
kernel boot.  In order to avoid the pointer load and dynamic shift, we
just rewrite the constants in the instructions in place.

We can't use the "generic" alternative instructions infrastructure,
because different architectures do it very differently, and it's
actually simpler to just have very specific helpers, with a fallback to
the generic ("old") model of just using variables for architectures that
do not implement the runtime constant patching infrastructure.

Link: https://lore.kernel.org/all/CAHk-=widPe38fUNjUOmX11ByDckaeEo9tN4Eiyke9u1SAtu9sA@mail.gmail.com/

* runtime-constants:
  arm64: add 'runtime constant' support
  runtime constants: add x86 architecture support
  runtime constants: add default dummy infrastructure
  vfs: dcache: move hashlen_hash() from callers into d_hash()
2024-07-15 08:36:13 -07:00
..
alpha mseal: wire up mseal syscall 2024-05-23 19:40:26 -07:00
arc bpf-for-netdev 2024-05-27 16:26:30 -07:00
arm ARM: davinci: Convert comma to semicolon 2024-07-10 15:22:08 +02:00
arm64 Merge branch 'runtime-constants' 2024-07-15 08:36:13 -07:00
csky syscalls: mmap(): use unsigned offset type consistently 2024-06-25 15:57:38 +02:00
hexagon hexagon: fix fadvise64_64 calling conventions 2024-06-25 15:57:37 +02:00
loongarch syscalls: mmap(): use unsigned offset type consistently 2024-06-25 15:57:38 +02:00
m68k mseal: wire up mseal syscall 2024-05-23 19:40:26 -07:00
microblaze syscalls: mmap(): use unsigned offset type consistently 2024-06-25 15:57:38 +02:00
mips syscalls: fix compat_sys_io_pgetevents_time64 usage 2024-06-25 15:57:20 +02:00
nios2 Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
openrisc openrisc: Move FPU state out of pt_regs 2024-04-15 15:20:39 +01:00
parisc parisc: use generic sys_fanotify_mark implementation 2024-06-25 15:57:25 +02:00
powerpc powerpc fixes for 6.10 #4 2024-07-06 18:31:24 -07:00
riscv RISC-V Fixes for 6.10-rc7 2024-07-05 12:22:51 -07:00
s390 s390/mm: Add NULL pointer check to crst_table_free() base_crst_free() 2024-07-09 07:38:39 -07:00
sh sh: rework sync_file_range ABI 2024-06-25 15:57:26 +02:00
sparc sparc: fix compat recv/recvfrom syscalls 2024-06-25 15:57:25 +02:00
um This pull request contains the following changes for UML: 2024-05-25 13:17:48 -07:00
x86 Merge branch 'runtime-constants' 2024-07-15 08:36:13 -07:00
xtensa arch/xtensa: always_inline get_current() and current_thread_info() 2024-07-09 15:41:10 -07:00
.gitignore
Kconfig Revert "mm: mmap: allow for the maximum number of bits for randomizing mmap_base by default" 2024-06-17 12:57:03 -07:00