diff options
| author | Srivatsa Vaddagiri <vatsa@codeaurora.org> | 2014-07-18 17:56:36 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 19:59:52 -0700 |
| commit | 961624dadc86491c45b87cce88d80d3465d6d764 (patch) | |
| tree | 22d4080a60afd106e9871dbe892ad24d675c616d | |
| parent | b310ce69b8d8558b958ae3b0215907d56e5215ca (diff) | |
sched: avoid active migration of tasks not in TASK_RUNNING state
Avoid wasting effort in migrating tasks that are about to sleep.
Change-Id: Icf9520b1c8fa48d3e071cb9fa1c5526b3b36ff16
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
[rameezmustafa@codeaurora.org]: Port to msm-3.18]
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org
| -rw-r--r-- | kernel/sched/fair.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 287629c6dd9e..aa7d8281e0db 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3268,7 +3268,7 @@ static inline int migration_needed(struct rq *rq, struct task_struct *p) { int nice = task_nice(p); - if (is_small_task(p)) + if (is_small_task(p) || p->state != TASK_RUNNING) return 0; /* Todo: cgroup-based control? */ @@ -8542,6 +8542,7 @@ static int active_load_balance_cpu_stop(void *data) push_task = busiest_rq->push_task; if (push_task) { if (task_on_rq_queued(push_task) && + push_task->state == TASK_RUNNING && task_cpu(push_task) == busiest_cpu && cpu_online(target_cpu)) { detach_task(push_task, &env); |
