* [PATCH] sched_ext: Add tracepoint for scheduler exit
@ 2026-05-12 5:56 Pat Somaru
2026-05-12 18:08 ` Tejun Heo
2026-05-13 5:08 ` sashiko-bot
0 siblings, 2 replies; 3+ messages in thread
From: Pat Somaru @ 2026-05-12 5:56 UTC (permalink / raw)
To: Tejun Heo; +Cc: sched-ext, linux-kernel, Pat Somaru
sched_ext schedulers have state in BPF programs and kernel. scx_dump
provides kernel state and BPF program state on error, but this is static
in what it can provide.
Add a sched_ext_exit tracepoint in scx_claim_exit() so that BPF programs
can dynamically inspect scheduler specific state at the moment of exit.
Signed-off-by: Pat Somaru <patso@likewhatevs.io>
---
include/trace/events/sched_ext.h | 19 +++++++++++++++++++
kernel/sched/ext.c | 2 ++
2 files changed, 21 insertions(+)
diff --git a/include/trace/events/sched_ext.h b/include/trace/events/sched_ext.h
index d1bf5acd59c5..9ccf884919c1 100644
--- a/include/trace/events/sched_ext.h
+++ b/include/trace/events/sched_ext.h
@@ -84,6 +84,25 @@ TRACE_EVENT(sched_ext_bypass_lb,
)
);
+TRACE_EVENT(sched_ext_exit,
+
+ TP_PROTO(__u32 kind),
+
+ TP_ARGS(kind),
+
+ TP_STRUCT__entry(
+ __field(__u32, kind)
+ ),
+
+ TP_fast_assign(
+ __entry->kind = kind;
+ ),
+
+ TP_printk("kind %u",
+ __entry->kind
+ )
+);
+
#endif /* _TRACE_SCHED_EXT_H */
/* This part must be outside protection */
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index 64f8a096f133..0219b11bb9d1 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -6200,6 +6200,8 @@ static bool scx_claim_exit(struct scx_sched *sch, enum scx_exit_kind kind)
*/
WRITE_ONCE(sch->aborting, true);
+ trace_sched_ext_exit(kind);
+
/*
* Propagate exits to descendants immediately. Each has a dedicated
* helper kthread and can run in parallel. While most of disabling is
--
2.54.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] sched_ext: Add tracepoint for scheduler exit
2026-05-12 5:56 [PATCH] sched_ext: Add tracepoint for scheduler exit Pat Somaru
@ 2026-05-12 18:08 ` Tejun Heo
2026-05-13 5:08 ` sashiko-bot
1 sibling, 0 replies; 3+ messages in thread
From: Tejun Heo @ 2026-05-12 18:08 UTC (permalink / raw)
To: Pat Somaru; +Cc: sched-ext, linux-kernel, Emil Tsalapatis
Hello,
The TP should carry sch. With only kind, an observer can't tell which
scheduler in a hierarchy just exited.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] sched_ext: Add tracepoint for scheduler exit
2026-05-12 5:56 [PATCH] sched_ext: Add tracepoint for scheduler exit Pat Somaru
2026-05-12 18:08 ` Tejun Heo
@ 2026-05-13 5:08 ` sashiko-bot
1 sibling, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-05-13 5:08 UTC (permalink / raw)
To: Pat Somaru; +Cc: sched-ext
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The `sched_ext_exit` tracepoint omits the `struct scx_sched *sch` context argument, preventing BPF programs from inspecting the kernel state of the exiting scheduler.
--
commit 7146aa62d89650b7f56b6cb199c8f8b8e35dfc3a
Author: Pat Somaru <patso@likewhatevs.io>
sched_ext: Add tracepoint for scheduler exit
This commit adds a tracepoint to scx_claim_exit() to allow BPF programs
to dynamically inspect scheduler specific state when a sched_ext scheduler
exits.
> diff --git a/include/trace/events/sched_ext.h b/include/trace/events/sched_ext.h
> index d1bf5acd59c56..9ccf884919c1f 100644
> --- a/include/trace/events/sched_ext.h
> +++ b/include/trace/events/sched_ext.h
[ ... ]
> @@ -84,6 +84,25 @@ TRACE_EVENT(sched_ext_bypass_lb,
> )
> );
>
> +TRACE_EVENT(sched_ext_exit,
> +
> + TP_PROTO(__u32 kind),
> +
The commit message mentions adding this tracepoint "so that BPF programs can
dynamically inspect scheduler specific state at the moment of exit".
Will BPF programs be able to inspect the scheduler state if the tracepoint
only receives the __u32 kind argument?
BPF programs attached to tracepoints only have access to the arguments
defined in TP_PROTO. Without passing the struct scx_sched pointer, is there
a way for the BPF program to inspect the internal kernel state of the
scheduler that triggered the exit?
Also, since sched_ext supports a hierarchy of sub-schedulers, exits can be
propagated to descendants, triggering multiple concurrent sched_ext_exit
events. Without the sch context, how can the BPF program distinguish which
specific scheduler is exiting in each event?
> + TP_ARGS(kind),
> +
> + TP_STRUCT__entry(
> + __field(__u32, kind)
> + ),
[ ... ]
> diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
> index 345aa11b84b28..d38a5c7dc3927 100644
> --- a/kernel/sched/ext.c
> +++ b/kernel/sched/ext.c
> @@ -5974,6 +5974,8 @@ static bool scx_claim_exit(struct scx_sched *sch, enum scx_exit_kind kind)
> */
> WRITE_ONCE(sch->aborting, true);
>
> + trace_sched_ext_exit(kind);
> +
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260512055632.1096713-1-patso@likewhatevs.io?part=1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-13 5:08 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-12 5:56 [PATCH] sched_ext: Add tracepoint for scheduler exit Pat Somaru
2026-05-12 18:08 ` Tejun Heo
2026-05-13 5:08 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox