Commit db935dbd authored by Nick Piggin's avatar Nick Piggin Committed by Linus Torvalds

[PATCH] sched: add debugging

These conditions should now be impossible, and we need to fix them if they
happen.
Signed-off-by: default avatarNick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 39507451
...@@ -1942,15 +1942,7 @@ static int load_balance(int this_cpu, runqueue_t *this_rq, ...@@ -1942,15 +1942,7 @@ static int load_balance(int this_cpu, runqueue_t *this_rq,
goto out_balanced; goto out_balanced;
} }
/* BUG_ON(busiest == this_rq);
* This should be "impossible", but since load
* balancing is inherently racy and statistical,
* it could happen in theory.
*/
if (unlikely(busiest == this_rq)) {
WARN_ON(1);
goto out_balanced;
}
schedstat_add(sd, lb_imbalance[idle], imbalance); schedstat_add(sd, lb_imbalance[idle], imbalance);
...@@ -2052,11 +2044,13 @@ static int load_balance_newidle(int this_cpu, runqueue_t *this_rq, ...@@ -2052,11 +2044,13 @@ static int load_balance_newidle(int this_cpu, runqueue_t *this_rq,
} }
busiest = find_busiest_queue(group); busiest = find_busiest_queue(group);
if (!busiest || busiest == this_rq) { if (!busiest) {
schedstat_inc(sd, lb_nobusyq[NEWLY_IDLE]); schedstat_inc(sd, lb_nobusyq[NEWLY_IDLE]);
goto out_balanced; goto out_balanced;
} }
BUG_ON(busiest == this_rq);
/* Attempt to move tasks */ /* Attempt to move tasks */
double_lock_balance(this_rq, busiest); double_lock_balance(this_rq, busiest);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment