Re: [PATCH 0/8] tracing: Allow system call tracepoints to handle page faults
From: Andrii Nakryiko
Date: Mon Sep 09 2024 - 19:54:47 EST
On Mon, Sep 9, 2024 at 1:17 PM Mathieu Desnoyers
<mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>
> Wire up the system call tracepoints with Tasks Trace RCU to allow
> the ftrace, perf, and eBPF tracers to handle page faults.
>
> This series does the initial wire-up allowing tracers to handle page
> faults, but leaves out the actual handling of said page faults as future
> work.
>
> This series was compile and runtime tested with ftrace and perf syscall
> tracing and raw syscall tracing, adding a WARN_ON_ONCE() in the
> generated code to validate that the intended probes are used for raw
> syscall tracing. The might_fault() added within those probes validate
> that they are called from a context where handling a page fault is OK.
>
> For ebpf, this series is compile-tested only.
What tree/branch was this based on? I can't apply it cleanly anywhere I tried...
>
> This series replaces the "Faultable Tracepoints v6" series found at [1].
>
> Thanks,
>
> Mathieu
>
> Link: https://lore.kernel.org/lkml/20240828144153.829582-1-mathieu.desnoyers@xxxxxxxxxxxx/ # [1]
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Alexei Starovoitov <ast@xxxxxxxxxx>
> Cc: Yonghong Song <yhs@xxxxxx>
> Cc: Paul E. McKenney <paulmck@xxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Cc: Mark Rutland <mark.rutland@xxxxxxx>
> Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx>
> Cc: bpf@xxxxxxxxxxxxxxx
> Cc: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx>
> Cc: linux-trace-kernel@xxxxxxxxxxxxxxx
>
> Mathieu Desnoyers (8):
> tracing: Declare system call tracepoints with TRACE_EVENT_SYSCALL
> tracing/ftrace: guard syscall probe with preempt_notrace
> tracing/perf: guard syscall probe with preempt_notrace
> tracing/bpf: guard syscall probe with preempt_notrace
> tracing: Allow system call tracepoints to handle page faults
> tracing/ftrace: Add might_fault check to syscall probes
> tracing/perf: Add might_fault check to syscall probes
> tracing/bpf: Add might_fault check to syscall probes
>
> include/linux/tracepoint.h | 87 +++++++++++++++++++++++++--------
> include/trace/bpf_probe.h | 13 +++++
> include/trace/define_trace.h | 5 ++
> include/trace/events/syscalls.h | 4 +-
> include/trace/perf.h | 43 ++++++++++++++--
> include/trace/trace_events.h | 61 +++++++++++++++++++++--
> init/Kconfig | 1 +
> kernel/entry/common.c | 4 +-
> kernel/trace/trace_syscalls.c | 36 ++++++++++++--
> 9 files changed, 218 insertions(+), 36 deletions(-)
>
> --
> 2.39.2