diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 23:59:43 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 23:59:43 -0800 |
| commit | ba6edf537004b1c68a0736c95ebe39a30a2537fb (patch) | |
| tree | b4a2cd81ca09ab6cd8e442458d6da722422ad952 /kernel/sched.c | |
| parent | d0415686774477153ca911a612f74c2d2bb11be6 (diff) | |
v2.5.1.4 -> v2.5.1.5
- Dave Jones: more merging, fix up last merge..
- release to sync with Dave
Diffstat (limited to 'kernel/sched.c')
| -rw-r--r-- | kernel/sched.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 757edd23d6b3..1de65396fee7 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -265,6 +265,21 @@ send_now_idle: * a problem. */ if (tsk == idle_task(cpu)) { +#if defined(__i386__) && defined(CONFIG_SMP) + /* + * Check if two siblings are idle in the same + * physical package. Use them if found. + */ + if (smp_num_siblings == 2) { + if (cpu_curr(cpu_sibling_map[cpu]) == + idle_task(cpu_sibling_map[cpu])) { + oldest_idle = last_schedule(cpu); + target_tsk = tsk; + break; + } + + } +#endif if (last_schedule(cpu) < oldest_idle) { oldest_idle = last_schedule(cpu); target_tsk = tsk; |
