diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-03-15 17:10:34 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-03-19 04:27:53 +0100 |
commit | f540a6080a092e2ab69fd146c308022db7347b0a (patch) | |
tree | 12dda1ecd63adb17cf06db61712a113cf6990037 /kernel/sched.c | |
parent | 4ae7d5cefd4aa3560e359a3b0f03e12adc8b5c86 (diff) |
sched: wakeup-buddy tasks are cache-hot
Wakeup-buddy tasks are cache-hot - this makes it a bit harder
for the load-balancer to tear them apart. (but it's still possible,
if the load is sufficiently assymetric)
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index adbd475cfd2..3f7c5eb254e 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -1396,6 +1396,12 @@ task_hot(struct task_struct *p, u64 now, struct sched_domain *sd) { s64 delta; + /* + * Buddy candidates are cache hot: + */ + if (&p->se == cfs_rq_of(&p->se)->next) + return 1; + if (p->sched_class != &fair_sched_class) return 0; |