mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
sched: Always initialize rt_rq's task_group
rt_rq->tg may be NULL which denotes the root task_group. Store the pointer to root_task_group directly so that callers may use rt_rq->tg homogenously. root_task_group exists always with CONFIG_CGROUPS_SCHED, CONFIG_RT_GROUP_SCHED depends on that. This changes root level rt_rq's default limit from infinity to the value of (originally) global RT throttling. Signed-off-by: Michal Koutný <mkoutny@suse.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/20250310170442.504716-4-mkoutny@suse.com
This commit is contained in:
parent
e285313f08
commit
a5a25b32c0
|
|
@ -89,6 +89,7 @@ void init_rt_rq(struct rt_rq *rt_rq)
|
|||
rt_rq->rt_throttled = 0;
|
||||
rt_rq->rt_runtime = 0;
|
||||
raw_spin_lock_init(&rt_rq->rt_runtime_lock);
|
||||
rt_rq->tg = &root_task_group;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
@ -482,9 +483,6 @@ static inline bool rt_task_fits_capacity(struct task_struct *p, int cpu)
|
|||
|
||||
static inline u64 sched_rt_runtime(struct rt_rq *rt_rq)
|
||||
{
|
||||
if (!rt_rq->tg)
|
||||
return RUNTIME_INF;
|
||||
|
||||
return rt_rq->rt_runtime;
|
||||
}
|
||||
|
||||
|
|
@ -1154,8 +1152,7 @@ inc_rt_group(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
|
|||
if (rt_se_boosted(rt_se))
|
||||
rt_rq->rt_nr_boosted++;
|
||||
|
||||
if (rt_rq->tg)
|
||||
start_rt_bandwidth(&rt_rq->tg->rt_bandwidth);
|
||||
start_rt_bandwidth(&rt_rq->tg->rt_bandwidth);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -821,6 +821,8 @@ struct rt_rq {
|
|||
unsigned int rt_nr_boosted;
|
||||
|
||||
struct rq *rq;
|
||||
#endif
|
||||
#ifdef CONFIG_CGROUP_SCHED
|
||||
struct task_group *tg;
|
||||
#endif
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user