[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:
parent
a3f21bce1f
commit
cafb20c1f9
@ -82,7 +82,6 @@ static inline int node_to_first_cpu(int node)
|
||||
.flags = SD_LOAD_BALANCE \
|
||||
| SD_BALANCE_EXEC \
|
||||
| SD_BALANCE_NEWIDLE \
|
||||
| SD_WAKE_IDLE \
|
||||
| SD_WAKE_BALANCE, \
|
||||
.last_balance = jiffies, \
|
||||
.balance_interval = 1, \
|
||||
|
@ -48,7 +48,6 @@ extern int __node_distance(int, int);
|
||||
.flags = SD_LOAD_BALANCE \
|
||||
| SD_BALANCE_NEWIDLE \
|
||||
| SD_BALANCE_EXEC \
|
||||
| SD_WAKE_IDLE \
|
||||
| SD_WAKE_BALANCE, \
|
||||
.last_balance = jiffies, \
|
||||
.balance_interval = 1, \
|
||||
|
@ -127,7 +127,6 @@
|
||||
| SD_BALANCE_NEWIDLE \
|
||||
| SD_BALANCE_EXEC \
|
||||
| SD_WAKE_AFFINE \
|
||||
| SD_WAKE_IDLE \
|
||||
| SD_WAKE_BALANCE, \
|
||||
.last_balance = jiffies, \
|
||||
.balance_interval = 1, \
|
||||
|
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user