Re: [PATCH v2 12/23] sched/cache: Add migrate_llc_task migration type for cache-aware balancing

From: Chen, Yu C

Date: Mon Dec 15 2025 - 19:53:09 EST


On 12/10/2025 9:32 PM, Peter Zijlstra wrote:
On Wed, Dec 03, 2025 at 03:07:31PM -0800, Tim Chen wrote:
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index db555c11b5b8..529adf342ce0 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -9547,7 +9547,8 @@ enum migration_type {
migrate_load = 0,
migrate_util,
migrate_task,
- migrate_misfit
+ migrate_misfit,
+ migrate_llc_task
};
#define LBF_ALL_PINNED 0x01
@@ -10134,6 +10135,10 @@ static int detach_tasks(struct lb_env *env)
env->imbalance -= util;
break;
+ case migrate_llc_task:
+ env->imbalance--;
+ break;
+
case migrate_task:
env->imbalance--;
break;

@@ -12181,6 +12199,16 @@ static struct rq *sched_balance_find_src_rq(struct lb_env *env,
}
break;
+ case migrate_llc_task:
+#ifdef CONFIG_SCHED_CACHE
+ dst_llc = llc_id(env->dst_cpu);
+ if (dst_llc >= 0 &&
+ busiest_pref_llc < rq->nr_pref_llc[dst_llc]) {
+ busiest_pref_llc = rq->nr_pref_llc[dst_llc];
+ busiest = rq;
+ }
+#endif
+ break;
case migrate_task:
if (busiest_nr < nr_running) {
busiest_nr = nr_running;
@@ -12363,6 +12391,8 @@ static void update_lb_imbalance_stat(struct lb_env *env, struct sched_domain *sd
case migrate_misfit:
__schedstat_add(sd->lb_imbalance_misfit[idle], env->imbalance);
break;
+ case migrate_llc_task:
+ break;
}
}

The enum and all switch statements had the same order; you wrecked it!

OK, will fix the order.

Thanks,
Chenyu