This patch results in too much idle time under certain
loads, and while that is being looked into we're better
off just reverting the change.
Cset exclude: nickpiggin@yahoo.com.au[torvalds]|ChangeSet|
20040605175839|02419
this_load -= SCHED_LOAD_SCALE;
/* Don't pull the task off an idle CPU to a busy one */
- if (load < SCHED_LOAD_SCALE && load + this_load > SCHED_LOAD_SCALE
- && this_load > load)
+ if (load < SCHED_LOAD_SCALE/2 && this_load > SCHED_LOAD_SCALE/2)
goto out_set_cpu;
new_cpu = this_cpu; /* Wake to this CPU if we can */
return busiest;
out_balanced:
- if (busiest && idle != NOT_IDLE && max_load > SCHED_LOAD_SCALE) {
+ if (busiest && (idle == NEWLY_IDLE ||
+ (idle == IDLE && max_load > SCHED_LOAD_SCALE)) ) {
*imbalance = 1;
return busiest;
}