|
@@ -5315,24 +5315,12 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
|
|
|
if (!tsk_cache_hot)
|
|
|
tsk_cache_hot = migrate_degrades_locality(p, env);
|
|
|
|
|
|
- if (migrate_improves_locality(p, env)) {
|
|
|
-#ifdef CONFIG_SCHEDSTATS
|
|
|
+ if (migrate_improves_locality(p, env) || !tsk_cache_hot ||
|
|
|
+ env->sd->nr_balance_failed > env->sd->cache_nice_tries) {
|
|
|
if (tsk_cache_hot) {
|
|
|
schedstat_inc(env->sd, lb_hot_gained[env->idle]);
|
|
|
schedstat_inc(p, se.statistics.nr_forced_migrations);
|
|
|
}
|
|
|
-#endif
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- if (!tsk_cache_hot ||
|
|
|
- env->sd->nr_balance_failed > env->sd->cache_nice_tries) {
|
|
|
-
|
|
|
- if (tsk_cache_hot) {
|
|
|
- schedstat_inc(env->sd, lb_hot_gained[env->idle]);
|
|
|
- schedstat_inc(p, se.statistics.nr_forced_migrations);
|
|
|
- }
|
|
|
-
|
|
|
return 1;
|
|
|
}
|
|
|
|