From 55b6cb3c764e578ce4141d13fc42b79e2091ce8a Mon Sep 17 00:00:00 2001 From: Peter Boonstoppel Date: Thu, 17 May 2012 15:15:43 -0700 Subject: 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 (cherry picked from commit 4d18ba5765c206bf9f37634f532d97dabd507a58) Reviewed-on: http://git-master/r/103417 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Aleksandr Frid Reviewed-by: Yu-Huan Hsu --- kernel/sched_rt.c | 1 + 1 file changed, 1 insertion(+) (limited to 'kernel') 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); } -- cgit v1.2.3