Messages in this thread Patch in this message | | | Subject | [RFC][PATCH 2/2] sched: aggregate_group_shares no loop | From | Peter Zijlstra <> | Date | Thu, 24 Apr 2008 00:09:31 +0200 |
| |
Subject: sched: aggregate_group_shares no loop
Remove the chance of getting trapped in the loop.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> --- kernel/sched.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
Index: linux-2.6-2/kernel/sched.c =================================================================== --- linux-2.6-2.orig/kernel/sched.c +++ linux-2.6-2/kernel/sched.c @@ -1713,7 +1713,6 @@ void aggregate_group_shares(struct task_ unsigned long shares = 0; int i; -again: for_each_cpu_mask(i, sd->span) shares += tg->cfs_rq[i]->shares; @@ -1723,7 +1722,9 @@ again: */ if (unlikely(!shares && aggregate(tg, sd)->rq_weight)) { __aggregate_redistribute_shares(tg); - goto again; + + for_each_cpu_mask(i, sd->span) + shares += tg->cfs_rq[i]->shares; } aggregate(tg, sd)->shares = shares;
| |