> commit 1deb3b548a13555ffd63d9373f054d6da02ad75e
> Author: Josef Bacik <[email protected]>
> Date: Tue Sep 22 02:23:29 2026 +0000
>
> samples: ftrace: Make the direct-call trampolines Tasks Trace readers
>
> The sample direct trampolines are exactly the kind of out-of-line
> register_ftrace_direct() user whose lifetime depends on Tasks RCU
> waiting for a task inside them: nothing else stops rmmod while a task is
> preempted in my_direct_func(). On HAVE_RCU_TRAMPOLINE_READERS
> architectures that wait only covers Tasks Trace RCU readers, so give the
> samples a small shared header with rcu_read_lock_trace() and
> rcu_read_unlock_trace() open-coded as instruction strings for x86-64 and
> arm64 -- the same sequences as ftrace_64.S and entry-ftrace.S, using
> caller-saved non-argument scratch registers -- and bracket every
> call-out with them. The instructions outside the bracket are module
> text, covered by ftrace_direct_mark_module(). Other architectures get
> empty definitions.
>
> Assisted-by: LLM
> Signed-off-by: Josef Bacik <[email protected]>
This looks like a bug fix for the direct trampoline lifetime issue.
Should this include:
Fixes: 32999f49426a ("rcu-tasks: Add a Tasks RCU implementation for
reader-marked trampolines")
---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/35680506278