Re: [PATCH 12/19] sched/fair: Add migrate_llc_task migration type for cache-aware balancing
From: Tim Chen
Date: Mon Oct 27 2025 - 18:59:27 EST
On Mon, 2025-10-27 at 14:34 +0530, K Prateek Nayak wrote:
> Hello Tim,
>
> On 10/11/2025 11:54 PM, Tim Chen wrote:
> > @@ -12149,6 +12167,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_idx(env->dst_cpu);
> > + if (!cpus_share_cache(env->dst_cpu, rq->cpu) &&
>
> Busiest group is always a non-local group right? Can cpus_share_cache()
> ever happen given we are looking at groups of first !SD_LLC_SHARE
> domain for "migrate_llc_task"?
That's a good point. We should have already checked that busiest
and local are not in the same LLC when we mark migrate_llc_task.
We shouldn't need to do cpus_share_cache() check here.
Tim
>
> > + 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;