diff options
author | Peter Boonstoppel <pboonstoppel@nvidia.com> | 2012-05-17 15:15:43 -0700 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2012-07-16 17:56:12 +0530 |
commit | 5e154154f3e2e25d0e7af1ae6de5e2ed152298f9 (patch) | |
tree | 348de06c8eea4b28fcc6dcdc75df2219b6e4014b /kernel | |
parent | 68b24029bc7551d5ed20e94f1858424018336d94 (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.c | 1 |
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); } |