Messages in this thread Patch in this message | | | From | Gregory Haskins <> | Subject | [PATCH 3/3] sched: terminate newidle balancing once at least one task has moved over | Date | Tue, 24 Jun 2008 08:16:12 -0600 |
| |
Inspired by Peter Zijlstra.
Signed-off-by: Gregory Haskins <ghaskins@novell.com> ---
kernel/sched.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/kernel/sched.c b/kernel/sched.c index e40c575..094a84b 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -2774,6 +2774,10 @@ static int move_tasks(struct rq *this_rq, int this_cpu, struct rq *busiest, max_load_move - total_load_moved, sd, idle, all_pinned, &this_best_prio); class = class->next; + + if (idle == CPU_NEWLY_IDLE && this_rq->nr_running) + break; + } while (class && max_load_move > total_load_moved); return total_load_moved > 0;
| |