diff options
| author | Tejun Heo <tj@kernel.org> | 2026-03-06 20:58:03 +0300 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-03-06 20:58:03 +0300 |
| commit | 88234b075c3fc23d57406e1867523b6aba783ebf (patch) | |
| tree | a1e8746f4bd223618f86105d3e371a9b4bc58090 /include | |
| parent | ebeca1f930eac8f11f815d58eb38fa5d07e7c16e (diff) | |
| download | linux-88234b075c3fc23d57406e1867523b6aba783ebf.tar.xz | |
sched_ext: Introduce scx_task_sched[_rcu]()
In preparation of multiple scheduler support, add p->scx.sched which points
to the scx_sched instance that the task is scheduled by, which is currently
always scx_root. Add scx_task_sched[_rcu]() accessors which return the
associated scx_sched of the specified task and replace the raw scx_root
dereferences with it where applicable. scx_task_on_sched() is also added to
test whether a given task is on the specified sched.
As scx_root is still the only scheduler, this shouldn't introduce
user-visible behavior changes.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/sched/ext.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/sched/ext.h b/include/linux/sched/ext.h index fa4349b319e6..3213e31c7979 100644 --- a/include/linux/sched/ext.h +++ b/include/linux/sched/ext.h @@ -165,6 +165,13 @@ struct scx_sched; * for a task to be scheduled by SCX. */ struct sched_ext_entity { +#ifdef CONFIG_CGROUPS + /* + * Associated scx_sched. Updated either during fork or while holding + * both p->pi_lock and rq lock. + */ + struct scx_sched __rcu *sched; +#endif struct scx_dispatch_q *dsq; atomic_long_t ops_state; u64 ddsp_dsq_id; |
