Commit 97e90b39 authored by Dietmar Eggemann's avatar Dietmar Eggemann Committed by Deepak Kumar Mishra
Browse files

sched/rt: Push non-fitting current task when switching to RT



In case the current task switches to RT and the current CPU is not a
fit try to find an available fitting CPU immediately by pushing the
task away, i.e. by queuing a push_curr_rt_task() callback.
Signed-off-by: Dietmar Eggemann's avatarDietmar Eggemann <dietmar.eggemann@arm.com>
parent 0fe8d75a
......@@ -2490,6 +2490,14 @@ static void switched_to_rt(struct rq *rq, struct task_struct *p)
*/
if (task_current(rq, p)) {
update_rt_rq_load_avg(rq_clock_pelt(rq), rq, 0);
#ifdef CONFIG_SMP
if (!rt_task_fits_capacity(p, cpu_of(rq))) {
queue_balance_callback(rq,
&per_cpu(rt_push_head, rq->cpu),
push_curr_rt_task);
}
#endif
return;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment