[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251016074032.GX3289052@noisy.programming.kicks-ass.net>
Date: Thu, 16 Oct 2025 09:40:32 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: "Chen, Yu C" <yu.c.chen@...el.com>
Cc: Tim Chen <tim.c.chen@...ux.intel.com>, Ingo Molnar <mingo@...hat.com>,
K Prateek Nayak <kprateek.nayak@....com>,
"Gautham R . Shenoy" <gautham.shenoy@....com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Juri Lelli <juri.lelli@...hat.com>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Steven Rostedt <rostedt@...dmis.org>,
Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>,
Valentin Schneider <vschneid@...hat.com>,
Madadi Vineeth Reddy <vineethr@...ux.ibm.com>,
Hillf Danton <hdanton@...a.com>,
Shrikanth Hegde <sshegde@...ux.ibm.com>,
Jianyong Wu <jianyong.wu@...look.com>,
Yangyu Chen <cyy@...self.name>,
Tingyin Duan <tingyin.duan@...il.com>,
Vern Hao <vernhao@...cent.com>, Len Brown <len.brown@...el.com>,
Aubrey Li <aubrey.li@...el.com>, Zhao Liu <zhao1.liu@...el.com>,
Chen Yu <yu.chen.surf@...il.com>,
Adam Li <adamli@...amperecomputing.com>,
Tim Chen <tim.c.chen@...el.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 04/19] sched/fair: Introduce a static key to enable cache
aware only for multi LLCs
On Thu, Oct 16, 2025 at 12:25:27AM +0800, Chen, Yu C wrote:
> On 10/15/2025 7:04 PM, Peter Zijlstra wrote:
> > On Sat, Oct 11, 2025 at 11:24:41AM -0700, Tim Chen wrote:
> > > From: Chen Yu <yu.c.chen@...el.com>
> > >
> > > Enable cache-aware load balancing only if at least 1 NUMA node has
> > > more than one LLC.
> > >
> > > Suggested-by: Libo Chen <libo.chen@...cle.com>
> > > Suggested-by: Adam Li <adamli@...amperecomputing.com>
> > > Signed-off-by: Chen Yu <yu.c.chen@...el.com>
> > > Signed-off-by: Tim Chen <tim.c.chen@...ux.intel.com>
> > > ---
> > > kernel/sched/fair.c | 15 ++++++++++++---
> > > kernel/sched/sched.h | 1 +
> > > kernel/sched/topology.c | 14 ++++++++++++--
> > > 3 files changed, 25 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> > > index cd080468ddc9..3d643449c48c 100644
> > > --- a/kernel/sched/fair.c
> > > +++ b/kernel/sched/fair.c
> > > @@ -1208,6 +1208,14 @@ static s64 update_se(struct rq *rq, struct sched_entity *se)
> > > __read_mostly unsigned int llc_overload_pct = 50;
> > > __read_mostly unsigned int llc_imb_pct = 20;
> > > +DEFINE_STATIC_KEY_FALSE(sched_cache_allowed);
> > > +
> > > +static inline bool sched_cache_enabled(void)
> > > +{
> > > + return sched_feat(SCHED_CACHE) &&
> > > + static_branch_likely(&sched_cache_allowed);
> > > +}
> >
> > Urgh; do we really need _2_ static keys stacked for this? I'm thinking
> > one should be well enough.
>
> SCHED_CACHE allows user space to turn on/off the feature at runtime,
> while sched_cache_allow is a hardware capability. This capability is
> disabled if there are no multiple LLCs within one node. I’m not sure
> if using one key could support the above two scenarios.
Of course it can! There is one decision 'is cache aware crap enabled',
you only need one branch for that. You just need to make the code that
sets the branch state a little more complicated.
Things like sysctl/kernel/sched_schedstats
sysctl/kernel/sched_energy_aware debugfs/sched/numa_balancing all work
like this.
Take the sched_energy_aware one, that is very similar; it will only
enable if the topology supports energy aware stuff. But then still lets
userspace disable it.
Same for this. The static branch condition should be:
'topology-has-multi-llc && userspace-wants-it'.
Powered by blists - more mailing lists