Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6bc1665ba71de0f207391b01b187b21b2619c15c Commit: 6bc1665ba71de0f207391b01b187b21b2619c15c Parent: cc367732ff0b1c63d0d7bdd11e6d1661794ef6a3 Author: Ingo Molnar <[EMAIL PROTECTED]> AuthorDate: Mon Oct 15 17:00:18 2007 +0200 Committer: Ingo Molnar <[EMAIL PROTECTED]> CommitDate: Mon Oct 15 17:00:18 2007 +0200
sched: allow the immediate migration of cache-cold tasks allow the immediate migration of cache-cold tasks. Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]> --- kernel/sched.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c index 3b27c3a..7506127 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -1016,6 +1016,11 @@ task_hot(struct task_struct *p, u64 now, struct sched_domain *sd) if (p->sched_class != &fair_sched_class) return 0; + if (sysctl_sched_migration_cost == -1) + return 1; + if (sysctl_sched_migration_cost == 0) + return 0; + delta = now - p->se.exec_start; return delta < (s64)sysctl_sched_migration_cost; @@ -2189,7 +2194,8 @@ int can_migrate_task(struct task_struct *p, struct rq *rq, int this_cpu, * 2) too many balance attempts have failed. */ - if (sd->nr_balance_failed > sd->cache_nice_tries) { + if (!task_hot(p, rq->clock, sd) || + sd->nr_balance_failed > sd->cache_nice_tries) { #ifdef CONFIG_SCHEDSTATS if (task_hot(p, rq->clock, sd)) { schedstat_inc(sd, lb_hot_gained[idle]); - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html