On Mon, Oct 27, 2025 at 04:34:01PM +0100, Tomas Glozar wrote:
> Add new option --bpf-action into common_timerlat_options.txt, including
> the format in which it takes the BPF program, and a reference to an
> example.
> 
> Signed-off-by: Tomas Glozar <[email protected]>
> ---
>  .../tools/rtla/common_timerlat_options.rst    | 20 +++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/Documentation/tools/rtla/common_timerlat_options.rst 
> b/Documentation/tools/rtla/common_timerlat_options.rst
> index c6046fcf52dc..7e08a27e87fe 100644
> --- a/Documentation/tools/rtla/common_timerlat_options.rst
> +++ b/Documentation/tools/rtla/common_timerlat_options.rst
> @@ -65,3 +65,23 @@
>          Set timerlat to run without workload, waiting for the user to 
> dispatch a per-cpu
>          task that waits for a new period on the 
> tracing/osnoise/per_cpu/cpu$ID/timerlat_fd.
>          See linux/tools/rtla/example/timerlat_load.py for an example of 
> user-load code.
> +
> +**--bpf-action** *bpf-program*
> +
> +        Loads a BPF program from an ELF file and executes it when a latency 
> threshold is exceeded.
> +
> +        The BPF program must be a valid ELF file loadable with libbpf. The 
> program must contain
> +        a function named ``action_handler``, declared with 
> ``SEC("tp/timerlat_action")`` or
> +        a different section name beginning with "tp/". This tells libbpf 
> that the program type is

nit: simply document that the section name must start with "tp/", the
part saying about "tp/timerlat_action" seems redudant, IIUC.

> +        BPF_PROG_TYPE_TRACEPOINT, without it, the program will not be loaded 
> properly.
> +
> +        The program receives a ``struct trace_event_raw_timerlat_sample`` 
> parameter
> +        containing timerlat sample data.
> +
> +        An example is provided in 
> ``tools/tracing/rtla/example/timerlat_bpf_action.c``.
> +        This example demonstrates how to create a BPF program that prints 
> latency information using
> +        bpf_trace_printk() when a threshold is exceeded.
> +
> +        **Note**: BPF actions require BPF support to be available. If BPF is 
> not available
> +        or disabled, the tool will fall back to tracefs mode and BPF actions 
> will not be
> +        supported.
> -- 
> 2.51.0
> 


Reply via email to