[PATCH] sched: no aggressive idle balancing

Remove the very aggressive idle stuff that has recently gone into 2.6 - it is
going against the direction we are trying to go.  Hopefully we can regain
performance through other methods.

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Nick Piggin
2005-06-25 14:57:17 -07:00
committed by Linus Torvalds
parent a3f21bce1f
commit cafb20c1f9
4 changed files with 2 additions and 22 deletions

View File

@@ -414,22 +414,6 @@ static inline runqueue_t *this_rq_lock(void)
return rq;
}
#ifdef CONFIG_SCHED_SMT
static int cpu_and_siblings_are_idle(int cpu)
{
int sib;
for_each_cpu_mask(sib, cpu_sibling_map[cpu]) {
if (idle_cpu(sib))
continue;
return 0;
}
return 1;
}
#else
#define cpu_and_siblings_are_idle(A) idle_cpu(A)
#endif
#ifdef CONFIG_SCHEDSTATS
/*
* Called when a process is dequeued from the active array and given
@@ -1652,12 +1636,11 @@ int can_migrate_task(task_t *p, runqueue_t *rq, int this_cpu,
/*
* Aggressive migration if:
* 1) the [whole] cpu is idle, or
* 1) task is cache cold, or
* 2) too many balance attempts have failed.
*/
if (cpu_and_siblings_are_idle(this_cpu) || \
sd->nr_balance_failed > sd->cache_nice_tries)
if (sd->nr_balance_failed > sd->cache_nice_tries)
return 1;
if (task_hot(p, rq->timestamp_last_tick, sd))