Re: [PATCH 0/8] tracing: Allow system call tracepoints to handle page faults

From: Andrii Nakryiko
Date: Wed Sep 11 2024 - 19:09:17 EST


On Mon, Sep 9, 2024 at 5:36 PM Mathieu Desnoyers
<mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>
> On 2024-09-09 19:53, Andrii Nakryiko wrote:
> > 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 was based on tag v6.10.6
>

Didn't find 6.10.6, but it applied cleanly to 6.10.3. I tested that
BPF parts work:

Tested-by: Andrii Nakryiko <andrii@xxxxxxxxxx> # BPF parts

> Sorry I should have included this information in patch 0.
>
> Thanks,
>
> Mathieu
>
> >
> >>
> >> 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
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> https://www.efficios.com
>