[PATCH] sched_ext: Choose the right sch->ops.name to output in the print_scx_info()
From: Zqiang
Date: Tue Mar 24 2026 - 08:12:58 EST
This commit use the scx_task_sched_rcu() to get task->scx.sched
structure to correctly output, instead of always using scx_root
in the print_scx_info().
Signed-off-by: Zqiang <qiang.zhang@xxxxxxxxx>
---
kernel/sched/ext.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index 2472231ec556..5d670b50da3d 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -7680,14 +7680,18 @@ static void kick_cpus_irq_workfn(struct irq_work *irq_work)
*/
void print_scx_info(const char *log_lvl, struct task_struct *p)
{
- struct scx_sched *sch = scx_root;
+ struct scx_sched *sch;
enum scx_enable_state state = scx_enable_state();
const char *all = READ_ONCE(scx_switching_all) ? "+all" : "";
char runnable_at_buf[22] = "?";
struct sched_class *class;
unsigned long runnable_at;
- if (state == SCX_DISABLED)
+ guard(rcu)();
+
+ sch = scx_task_sched_rcu(p);
+
+ if (!sch || state == SCX_DISABLED)
return;
/*
--
2.17.1