diff options
author | Peter Boonstoppel <pboonstoppel@nvidia.com> | 2012-05-17 15:15:43 -0700 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-07-11 06:35:11 -0700 |
commit | 55b6cb3c764e578ce4141d13fc42b79e2091ce8a (patch) | |
tree | 8c8f8fd357181e6d7bee6a73388dcd728bba3802 /kernel/sched_rt.c | |
parent | 4e35d4754655e5088b2ec5a8f6ba418d27bb32f2 (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.c | 1 |
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); } |