[GIT PULL] latency tracing: Updates for 6.15

From: Steven Rostedt
Date: Wed Mar 26 2025 - 11:53:07 EST



Linus,

Latency tracing changes for v6.15:

- Add some trace events to osnoise and timerlat sample generation

This adds more information to the osnoise and timerlat tracers as well as
allows BPF programs to be attached to these locations to extract even more
data.

- Fix to DECLARE_TRACE_CONDITION() macro

It wasn't used but now will be and it happened to be broken causing the
build to fail.

- Add scheduler specification monitors to runtime verifier (RV)

This is a continuation of Daniel Bristot's work.

RV allows monitors to run and react concurrently. Running the cumulative
model is equivalent to running single components using the same
reactors, with the advantage that it's easier to point out which
specification failed in case of error.

This update introduces nested monitors to RV, in short, the sysfs
monitor folder will contain a monitor named sched, which is nothing but
an empty container for other monitors. Controlling the sched monitor
(enable, disable, set reactors) controls all nested monitors.

The following scheduling monitors are added:

* sco: scheduling context operations
Monitor to ensure sched_set_state happens only in thread context
* tss: task switch while scheduling
Monitor to ensure sched_switch happens only in scheduling context
* snroc: set non runnable on its own context
Monitor to ensure set_state happens only in the respective task's context
* scpd: schedule called with preemption disabled
Monitor to ensure schedule is called with preemption disabled
* snep: schedule does not enable preempt
Monitor to ensure schedule does not enable preempt
* sncid: schedule not called with interrupt disabled
Monitor to ensure schedule is not called with interrupt disabled


Please pull the latest trace-latency-v6.15 tree, which can be found at:


git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace-latency-v6.15

Tag SHA1: 8b5e36dd7793df531fdf118ea07c1e7a9389d044
Head SHA1: 4ffef9579ffc51647c5eb55869fb310f3c1e2db2


Gabriele Monaco (11):
tracing: Fix DECLARE_TRACE_CONDITION
rv: Add license identifiers to monitor files
sched: Add sched tracepoints for RV task model
rv: Add option for nested monitors and include sched
rv: Add sco and tss per-cpu monitors
rv: Add snroc per-task monitor
rv: Add scpd, snep and sncid per-cpu monitors
tools/rv: Add support for nested monitors
verification/dot2k: Add support for nested monitors
Documentation/rv: Add docs for the sched monitors
tools/rv: Allow rv list to filter for container

Tomas Glozar (1):
trace/osnoise: Add trace events for samples

----
Documentation/tools/rv/rv-mon-sched.rst | 69 ++++++
Documentation/trace/rv/monitor_sched.rst | 171 ++++++++++++++
include/linux/rv.h | 4 +-
include/linux/sched.h | 16 ++
include/trace/define_trace.h | 7 +
include/trace/events/osnoise.h | 96 ++++++++
include/trace/events/sched.h | 13 ++
kernel/sched/core.c | 23 +-
kernel/trace/rv/Kconfig | 7 +
kernel/trace/rv/Makefile | 7 +
kernel/trace/rv/monitors/sched/Kconfig | 11 +
kernel/trace/rv/monitors/sched/sched.c | 38 +++
kernel/trace/rv/monitors/sched/sched.h | 3 +
kernel/trace/rv/monitors/sco/Kconfig | 14 ++
kernel/trace/rv/monitors/sco/sco.c | 88 +++++++
kernel/trace/rv/monitors/sco/sco.h | 47 ++++
kernel/trace/rv/monitors/sco/sco_trace.h | 15 ++
kernel/trace/rv/monitors/scpd/Kconfig | 15 ++
kernel/trace/rv/monitors/scpd/scpd.c | 96 ++++++++
kernel/trace/rv/monitors/scpd/scpd.h | 49 ++++
kernel/trace/rv/monitors/scpd/scpd_trace.h | 15 ++
kernel/trace/rv/monitors/sncid/Kconfig | 15 ++
kernel/trace/rv/monitors/sncid/sncid.c | 96 ++++++++
kernel/trace/rv/monitors/sncid/sncid.h | 49 ++++
kernel/trace/rv/monitors/sncid/sncid_trace.h | 15 ++
kernel/trace/rv/monitors/snep/Kconfig | 15 ++
kernel/trace/rv/monitors/snep/snep.c | 96 ++++++++
kernel/trace/rv/monitors/snep/snep.h | 49 ++++
kernel/trace/rv/monitors/snep/snep_trace.h | 15 ++
kernel/trace/rv/monitors/snroc/Kconfig | 14 ++
kernel/trace/rv/monitors/snroc/snroc.c | 85 +++++++
kernel/trace/rv/monitors/snroc/snroc.h | 47 ++++
kernel/trace/rv/monitors/snroc/snroc_trace.h | 15 ++
kernel/trace/rv/monitors/tss/Kconfig | 14 ++
kernel/trace/rv/monitors/tss/tss.c | 91 ++++++++
kernel/trace/rv/monitors/tss/tss.h | 47 ++++
kernel/trace/rv/monitors/tss/tss_trace.h | 15 ++
kernel/trace/rv/monitors/wip/Kconfig | 2 +
kernel/trace/rv/monitors/wip/wip.c | 2 +-
kernel/trace/rv/monitors/wip/wip.h | 1 +
kernel/trace/rv/monitors/wwnr/Kconfig | 2 +
kernel/trace/rv/monitors/wwnr/wwnr.c | 2 +-
kernel/trace/rv/monitors/wwnr/wwnr.h | 1 +
kernel/trace/rv/rv.c | 154 +++++++++++--
kernel/trace/rv/rv.h | 4 +
kernel/trace/rv/rv_reactors.c | 28 ++-
kernel/trace/rv/rv_trace.h | 6 +
kernel/trace/trace_osnoise.c | 55 ++---
tools/verification/dot2/dot2k | 27 ++-
tools/verification/dot2/dot2k.py | 80 +++++--
tools/verification/dot2/dot2k_templates/Kconfig | 3 +
tools/verification/dot2/dot2k_templates/main.c | 4 +-
.../dot2/dot2k_templates/main_container.c | 38 +++
.../dot2/dot2k_templates/main_container.h | 3 +
tools/verification/models/sched/sco.dot | 18 ++
tools/verification/models/sched/scpd.dot | 18 ++
tools/verification/models/sched/sncid.dot | 18 ++
tools/verification/models/sched/snep.dot | 18 ++
tools/verification/models/sched/snroc.dot | 18 ++
tools/verification/models/sched/tss.dot | 18 ++
tools/verification/rv/include/in_kernel.h | 2 +-
tools/verification/rv/include/rv.h | 3 +-
tools/verification/rv/src/in_kernel.c | 256 ++++++++++++++++-----
tools/verification/rv/src/rv.c | 38 +--
64 files changed, 2135 insertions(+), 166 deletions(-)
create mode 100644 Documentation/tools/rv/rv-mon-sched.rst
create mode 100644 Documentation/trace/rv/monitor_sched.rst
create mode 100644 kernel/trace/rv/monitors/sched/Kconfig
create mode 100644 kernel/trace/rv/monitors/sched/sched.c
create mode 100644 kernel/trace/rv/monitors/sched/sched.h
create mode 100644 kernel/trace/rv/monitors/sco/Kconfig
create mode 100644 kernel/trace/rv/monitors/sco/sco.c
create mode 100644 kernel/trace/rv/monitors/sco/sco.h
create mode 100644 kernel/trace/rv/monitors/sco/sco_trace.h
create mode 100644 kernel/trace/rv/monitors/scpd/Kconfig
create mode 100644 kernel/trace/rv/monitors/scpd/scpd.c
create mode 100644 kernel/trace/rv/monitors/scpd/scpd.h
create mode 100644 kernel/trace/rv/monitors/scpd/scpd_trace.h
create mode 100644 kernel/trace/rv/monitors/sncid/Kconfig
create mode 100644 kernel/trace/rv/monitors/sncid/sncid.c
create mode 100644 kernel/trace/rv/monitors/sncid/sncid.h
create mode 100644 kernel/trace/rv/monitors/sncid/sncid_trace.h
create mode 100644 kernel/trace/rv/monitors/snep/Kconfig
create mode 100644 kernel/trace/rv/monitors/snep/snep.c
create mode 100644 kernel/trace/rv/monitors/snep/snep.h
create mode 100644 kernel/trace/rv/monitors/snep/snep_trace.h
create mode 100644 kernel/trace/rv/monitors/snroc/Kconfig
create mode 100644 kernel/trace/rv/monitors/snroc/snroc.c
create mode 100644 kernel/trace/rv/monitors/snroc/snroc.h
create mode 100644 kernel/trace/rv/monitors/snroc/snroc_trace.h
create mode 100644 kernel/trace/rv/monitors/tss/Kconfig
create mode 100644 kernel/trace/rv/monitors/tss/tss.c
create mode 100644 kernel/trace/rv/monitors/tss/tss.h
create mode 100644 kernel/trace/rv/monitors/tss/tss_trace.h
create mode 100644 tools/verification/dot2/dot2k_templates/main_container.c
create mode 100644 tools/verification/dot2/dot2k_templates/main_container.h
create mode 100644 tools/verification/models/sched/sco.dot
create mode 100644 tools/verification/models/sched/scpd.dot
create mode 100644 tools/verification/models/sched/sncid.dot
create mode 100644 tools/verification/models/sched/snep.dot
create mode 100644 tools/verification/models/sched/snroc.dot
create mode 100644 tools/verification/models/sched/tss.dot
---------------------------