diff options
| author | Tejun Heo <tj@kernel.org> | 2026-03-06 07:58:04 -1000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-03-06 07:58:04 -1000 |
| commit | 7f5fcd47dd62ba7e150468ca05d30bfd26feb306 (patch) | |
| tree | 48bbf8e95c7cf942707bbb138206c52cd9509b6e /kernel | |
| parent | 337ec00b1d9c676f637651c2cefddb8612b867ee (diff) | |
| download | linux-7f5fcd47dd62ba7e150468ca05d30bfd26feb306.tar.gz linux-7f5fcd47dd62ba7e150468ca05d30bfd26feb306.zip | |
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@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sched/ext.c | 3 | ||||
| -rw-r--r-- | kernel/sched/ext_internal.h | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 70d0f9e8ef61..e8378d59ddae 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -5655,6 +5655,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 9268df30be7f..69d6e9b4d78e 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 */ /* |
