summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorPeter Boonstoppel <pboonstoppel@nvidia.com>2012-05-17 15:15:43 -0700
committerVarun Wadekar <vwadekar@nvidia.com>2012-07-16 17:56:12 +0530
commit5e154154f3e2e25d0e7af1ae6de5e2ed152298f9 (patch)
tree348de06c8eea4b28fcc6dcdc75df2219b6e4014b /kernel
parent68b24029bc7551d5ed20e94f1858424018336d94 (diff)
sched: unthrottle rt runqueues in __disable_runtime()
migrate_tasks() uses _pick_next_task_rt() to get tasks from the real-time runqueues to be migrated. When rt_rq is throttled _pick_next_task_rt() won't return anything, in which case migrate_tasks() can't move all threads over and gets stuck in an infinite loop. Instead unthrottle rt runqueues before migrating tasks. Bug 976709 Change-Id: Ie3696702abc560fe8ffa7d2fb5dc5d54d532cc0d Signed-off-by: Peter Boonstoppel <pboonstoppel@nvidia.com> (cherry picked from commit 4d18ba5765c206bf9f37634f532d97dabd507a58) Reviewed-on: http://git-master/r/103417 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/rt.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 44af55e6d5d0..cf57ef1cfa80 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -685,6 +685,7 @@ balanced:
* runtime - in which case borrowing doesn't make sense.
*/
rt_rq->rt_runtime = RUNTIME_INF;
+ rt_rq->rt_throttled = 0;
raw_spin_unlock(&rt_rq->rt_runtime_lock);
raw_spin_unlock(&rt_b->rt_runtime_lock);
}