HMP: experimental: Force all rt tasks to start on little domain.
authorDietmar Eggemann <dietmar.eggemann@arm.com>
Fri, 21 Jun 2013 16:50:08 +0000 (17:50 +0100)
committerJon Medhurst <tixy@linaro.org>
Wed, 17 Jul 2013 10:32:41 +0000 (11:32 +0100)
commit4ab2679351e9566a6b0822f2d841a902758ba066
tree9faea058d1beee4871c6115046bbedb21d93d659
parent6eada0087366d8aec6bc38348a68f721f538cc5c
HMP: experimental: Force all rt tasks to start on little domain.

This patch restricts the allowed cpu mask for rt tasks initially started
with a full cpu mask to the little domain.

An rt task is specified as real time in __setscheduler() which is finally
called for all rt tasks (kernel and user land). In this function we
restrict the allowed cpu mask to the little domain.

This also prevents that a rt tasks can later be pushed to the big domain
because the function find_lowest_rq() will only recognize the allowed cpu
mask of a task to find the new cpu the task runs on.

Current kludges of the patch:

* Since we do not have an API to get the cpu mask of the A7 cluster,
hmp_slow_cpu_mask is made global in arm/kernel/topology.c for now.

* The watchdog_enable() function calls sched_setscheduler() before
kthread_bind() for the cpu specific watchdog kernel threads. The order of
these two calls has to be changed to make this patch work.

Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
arch/arm/kernel/topology.c
kernel/sched/core.c