mirror-linux/arch/x86/entry
Jiri Olsa 56101b69c9 uprobes/x86: Add uprobe syscall to speed up uprobe
Adding new uprobe syscall that calls uprobe handlers for given
'breakpoint' address.

The idea is that the 'breakpoint' address calls the user space
trampoline which executes the uprobe syscall.

The syscall handler reads the return address of the initial call
to retrieve the original 'breakpoint' address. With this address
we find the related uprobe object and call its consumers.

Adding the arch_uprobe_trampoline_mapping function that provides
uprobe trampoline mapping. This mapping is backed with one global
page initialized at __init time and shared by the all the mapping
instances.

We do not allow to execute uprobe syscall if the caller is not
from uprobe trampoline mapping.

The uprobe syscall ensures the consumer (bpf program) sees registers
values in the state before the trampoline was called.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Link: https://lore.kernel.org/r/20250720112133.244369-10-jolsa@kernel.org
2025-08-21 20:09:20 +02:00
..
syscalls uprobes/x86: Add uprobe syscall to speed up uprobe 2025-08-21 20:09:20 +02:00
vdso stackleak: Split KSTACK_ERASE_CFLAGS from GCC_PLUGINS_CFLAGS 2025-07-21 21:40:57 -07:00
vsyscall x86/mm/64: Make 5-level paging support unconditional 2025-05-17 10:38:16 +02:00
Makefile x86/syscall: Move sys_ni_syscall() 2025-03-19 11:19:17 +01:00
calling.h stackleak: Rename STACKLEAK to KSTACK_ERASE 2025-07-21 21:35:01 -07:00
entry.S x86/bugs: Rename MDS machinery to something more generic 2025-06-16 18:45:18 +02:00
entry_32.S x86/percpu: Move top_of_stack to percpu hot section 2025-03-04 20:30:33 +01:00
entry_64.S x86/its: Align RETs in BHB clear sequence to avoid thunking 2025-05-09 13:22:05 -07:00
entry_64_compat.S x86/percpu: Move top_of_stack to percpu hot section 2025-03-04 20:30:33 +01:00
entry_64_fred.S x86/cfi: Clean up linkage 2025-02-14 10:32:05 +01:00
entry_fred.c x86/irq: Install posted MSI notification handler 2024-04-30 00:54:42 +02:00
syscall_32.c x86/syscall/32: Add comment to conditional 2025-03-19 11:19:20 +01:00
syscall_64.c x86/syscall: Remove stray semicolons 2025-03-19 11:19:18 +01:00
thunk.S x86/entry: Merge thunk_64.S and thunk_32.S into thunk.S 2024-04-09 09:57:56 +02:00