From: Tejun Heo Date: Fri, 6 Mar 2026 17:58:02 +0000 (-1000) Subject: sched_ext: Add @kargs to scx_fork() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3715e397720c9f6068aff4f7babccd3cb6ef618;p=thirdparty%2Flinux.git sched_ext: Add @kargs to scx_fork() Make sched_cgroup_fork() pass @kargs to scx_fork(). This will be used to determine @p's cgroup for cgroup sub-sched support. Signed-off-by: Tejun Heo Reviewed-by: Andrea Righi Cc: Peter Zijlstra --- diff --git a/kernel/sched/core.c b/kernel/sched/core.c index b7f77c165a6e0..dfe680e78be38 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4721,7 +4721,7 @@ int sched_cgroup_fork(struct task_struct *p, struct kernel_clone_args *kargs) p->sched_class->task_fork(p); raw_spin_unlock_irqrestore(&p->pi_lock, flags); - return scx_fork(p); + return scx_fork(p, kargs); } void sched_cancel_fork(struct task_struct *p) diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 1ff4cf93413ba..6f98a979391fa 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -3171,7 +3171,7 @@ void scx_pre_fork(struct task_struct *p) percpu_down_read(&scx_fork_rwsem); } -int scx_fork(struct task_struct *p) +int scx_fork(struct task_struct *p, struct kernel_clone_args *kargs) { percpu_rwsem_assert_held(&scx_fork_rwsem); diff --git a/kernel/sched/ext.h b/kernel/sched/ext.h index 43429b33e52c1..0b7fc46aee08c 100644 --- a/kernel/sched/ext.h +++ b/kernel/sched/ext.h @@ -11,7 +11,7 @@ void scx_tick(struct rq *rq); void init_scx_entity(struct sched_ext_entity *scx); void scx_pre_fork(struct task_struct *p); -int scx_fork(struct task_struct *p); +int scx_fork(struct task_struct *p, struct kernel_clone_args *kargs); void scx_post_fork(struct task_struct *p); void scx_cancel_fork(struct task_struct *p); bool scx_can_stop_tick(struct rq *rq); @@ -44,7 +44,7 @@ bool scx_prio_less(const struct task_struct *a, const struct task_struct *b, static inline void scx_tick(struct rq *rq) {} static inline void scx_pre_fork(struct task_struct *p) {} -static inline int scx_fork(struct task_struct *p) { return 0; } +static inline int scx_fork(struct task_struct *p, struct kernel_clone_args *kargs) { return 0; } static inline void scx_post_fork(struct task_struct *p) {} static inline void scx_cancel_fork(struct task_struct *p) {} static inline u32 scx_cpuperf_target(s32 cpu) { return 0; }