Re: [PATCH v2 12/23] sched/cache: Add migrate_llc_task migration type for cache-aware balancing
From: Peter Zijlstra
Date: Wed Dec 10 2025 - 08:34:58 EST
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!