HMP: Avoid using the cpu stopper to stop runnable tasks
authorMathieu Poirier <mathieu.poirier@linaro.org>
Wed, 20 Nov 2013 14:20:42 +0000 (14:20 +0000)
committerJon Medhurst <tixy@linaro.org>
Thu, 21 Nov 2013 11:26:08 +0000 (11:26 +0000)
commit2a68d1e9125582bedeac4ea34fb9901ab1f7de11
treea9bed10bd01e3bf3850bd327abdf2752ccde316f
parentbd40e205ea48665ed60499001f8edf802e2901e2
HMP: Avoid using the cpu stopper to stop runnable tasks

When migrating a runnable task, we use the CPU stopper on
the source CPU to ensure that the task to be moved is not
currently running. Before this patch, all forced migrations
(up, offload, idle pull) use the stopper for every migration.

Using the CPU stopper is mandatory only when a task is currently
running on a CPU.  Otherwise tasks can be moved by locking the
source and destination run queues.

This patch checks to see if the task to be moved are currently
running.  If not the task is moved directly without using the
stopper thread.

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Jon Medhurst <tixy@linaro.org>
include/trace/events/sched.h
kernel/sched/fair.c