Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cea49887 authored by Srivatsa Vaddagiri's avatar Srivatsa Vaddagiri Committed by Steve Muckle
Browse files

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: default avatarSrivatsa Vaddagiri <vatsa@codeaurora.org>
parent 955b16f3
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1953,7 +1953,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? */
@@ -6548,7 +6548,8 @@ static int active_load_balance_cpu_stop(void *data)

	push_task = busiest_rq->push_task;
	if (push_task) {
		if (push_task->on_rq && task_cpu(push_task) == busiest_cpu &&
		if (push_task->on_rq && push_task->state == TASK_RUNNING &&
		    task_cpu(push_task) == busiest_cpu &&
		    cpu_online(target_cpu))
			move_task(push_task, &env);
		put_task_struct(push_task);