[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260121231140.832332-31-tj@kernel.org>
Date: Wed, 21 Jan 2026 13:11:36 -1000
From: Tejun Heo <tj@...nel.org>
To: linux-kernel@...r.kernel.org,
sched-ext@...ts.linux.dev
Cc: void@...ifault.com,
andrea.righi@...ux.dev,
changwoo@...lia.com,
emil@...alapatis.com,
Tejun Heo <tj@...nel.org>
Subject: [PATCH 30/34] sched_ext: Add scx_sched back pointer to scx_sched_pcpu
Add a back pointer from scx_sched_pcpu to scx_sched. This will be used by
the next patch to make scx_bpf_reenqueue_local() sub-sched aware.
Signed-off-by: Tejun Heo <tj@...nel.org>
---
kernel/sched/ext.c | 3 +++
kernel/sched/ext_internal.h | 3 +++
2 files changed, 6 insertions(+)
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index d58b2664f40a..d21a3f805704 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -5443,6 +5443,9 @@ static struct scx_sched *scx_alloc_and_add_sched(struct sched_ext_ops *ops,
for_each_possible_cpu(cpu)
init_dsq(bypass_dsq(sch, cpu), SCX_DSQ_BYPASS, sch);
+ for_each_possible_cpu(cpu)
+ per_cpu_ptr(sch->pcpu, cpu)->sch = sch;
+
sch->helper = kthread_run_worker(0, "sched_ext_helper");
if (IS_ERR(sch->helper)) {
ret = PTR_ERR(sch->helper);
diff --git a/kernel/sched/ext_internal.h b/kernel/sched/ext_internal.h
index 6ad1c00a72ba..cbe10672f6a4 100644
--- a/kernel/sched/ext_internal.h
+++ b/kernel/sched/ext_internal.h
@@ -933,6 +933,8 @@ struct scx_event_stats {
s64 SCX_EV_SUB_BYPASS_DISPATCH;
};
+struct scx_sched;
+
enum scx_sched_pcpu_flags {
SCX_SCHED_PCPU_BYPASSING = 1LLU << 0,
};
@@ -953,6 +955,7 @@ struct scx_dsp_ctx {
};
struct scx_sched_pcpu {
+ struct scx_sched *sch;
u64 flags; /* protected by rq lock */
/*
--
2.52.0
Powered by blists - more mailing lists