From c47460a0d47de537d62b5bd8dc030807250d940d Mon Sep 17 00:00:00 2001 From: Youngtae Lee Date: Wed, 28 Jun 2017 03:35:54 -0700 Subject: [PATCH] [9820] sched: core: fix bug that rt could not be binded to little Current rt little binding code is working when target task is on runqueue. Remove this condition to all rt tasks bind to little. Change-Id: I2f1883e2e8dffef25920848f6ef87b38a231ff0c Signed-off-by: Youngtae Lee --- kernel/sched/core.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 625be6676047..d26941aa5af9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4307,6 +4307,15 @@ change: if (running) set_curr_task(rq, p); + if (p->sched_class == &rt_sched_class) { + struct cpumask mask; + + cpumask_andnot(&mask, &p->cpus_allowed, cpu_coregroup_mask(4)); + cpumask_andnot(&mask, &p->cpus_allowed, cpu_coregroup_mask(6)); + if (!cpumask_empty(&mask)) + do_set_cpus_allowed(p, &mask); + } + check_class_changed(rq, p, prev_class, oldprio); /* Avoid rq from going away on us: */ -- 2.20.1