summaryrefslogtreecommitdiff
path: root/kernel/sched_rt.c
diff options
context:
space:
mode:
authorPeter Boonstoppel <pboonstoppel@nvidia.com>2012-05-17 15:15:43 -0700
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-07-11 06:35:11 -0700
commit55b6cb3c764e578ce4141d13fc42b79e2091ce8a (patch)
tree8c8f8fd357181e6d7bee6a73388dcd728bba3802 /kernel/sched_rt.c
parent4e35d4754655e5088b2ec5a8f6ba418d27bb32f2 (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/sched_rt.c')
-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 af1177858be3..046f429be33d 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -497,6 +497,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);
}