diff options
| author | Nick Piggin <nickpiggin@yahoo.com.au> | 2005-06-25 17:57:17 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-25 19:24:42 -0400 |
| commit | cafb20c1f9976a70d633bb1e1c8c24eab00e4e80 (patch) | |
| tree | 7ff8e6060990889992d51d542abde31cf0d7a1ef /kernel/sched.c | |
| parent | a3f21bce1fefdf92a4d1705e888d390b10f3ac6f (diff) | |
[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>
Diffstat (limited to 'kernel/sched.c')
| -rw-r--r-- | kernel/sched.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 5ae3568eed0b..396724a2519f 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
| @@ -414,22 +414,6 @@ static inline runqueue_t *this_rq_lock(void) | |||
| 414 | return rq; | 414 | return rq; |
| 415 | } | 415 | } |
| 416 | 416 | ||
| 417 | #ifdef CONFIG_SCHED_SMT | ||
| 418 | static int cpu_and_siblings_are_idle(int cpu) | ||
| 419 | { | ||
| 420 | int sib; | ||
| 421 | for_each_cpu_mask(sib, cpu_sibling_map[cpu]) { | ||
| 422 | if (idle_cpu(sib)) | ||
| 423 | continue; | ||
| 424 | return 0; | ||
| 425 | } | ||
| 426 | |||
| 427 | return 1; | ||
| 428 | } | ||
| 429 | #else | ||
| 430 | #define cpu_and_siblings_are_idle(A) idle_cpu(A) | ||
| 431 | #endif | ||
| 432 | |||
| 433 | #ifdef CONFIG_SCHEDSTATS | 417 | #ifdef CONFIG_SCHEDSTATS |
| 434 | /* | 418 | /* |
| 435 | * Called when a process is dequeued from the active array and given | 419 | * 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, | |||
| 1652 | 1636 | ||
| 1653 | /* | 1637 | /* |
| 1654 | * Aggressive migration if: | 1638 | * Aggressive migration if: |
| 1655 | * 1) the [whole] cpu is idle, or | 1639 | * 1) task is cache cold, or |
| 1656 | * 2) too many balance attempts have failed. | 1640 | * 2) too many balance attempts have failed. |
| 1657 | */ | 1641 | */ |
| 1658 | 1642 | ||
| 1659 | if (cpu_and_siblings_are_idle(this_cpu) || \ | 1643 | if (sd->nr_balance_failed > sd->cache_nice_tries) |
| 1660 | sd->nr_balance_failed > sd->cache_nice_tries) | ||
| 1661 | return 1; | 1644 | return 1; |
| 1662 | 1645 | ||
| 1663 | if (task_hot(p, rq->timestamp_last_tick, sd)) | 1646 | if (task_hot(p, rq->timestamp_last_tick, sd)) |
