Re: [PATCH v3 1/4] sched/fair: add SD_CLUSTER in comments

From: Valentin Schneider
Date: Tue Feb 06 2024 - 08:16:24 EST


On 05/02/24 18:46, Ricardo Neri wrote:
> On Fri, Feb 02, 2024 at 03:27:32PM +0100, Valentin Schneider wrote:
>>
>> Subject nit: the prefix should be sched/topology
>>
>> On 01/02/24 19:54, alexs@xxxxxxxxxx wrote:
>> > From: Alex Shi <alexs@xxxxxxxxxx>
>> >
>> > The description of SD_CLUSTER is missing. Add it.
>> >
>> > Signed-off-by: Alex Shi <alexs@xxxxxxxxxx>
>> > To: Ricardo Neri <ricardo.neri-calderon@xxxxxxxxxxxxxxx>
>> > To: Valentin Schneider <vschneid@xxxxxxxxxx>
>> > To: Vincent Guittot <vincent.guittot@xxxxxxxxxx>
>> > To: Juri Lelli <juri.lelli@xxxxxxxxxx>
>> > To: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>> > To: Ingo Molnar <mingo@xxxxxxxxxx>
>> > ---
>> > kernel/sched/topology.c | 1 +
>> > 1 file changed, 1 insertion(+)
>> >
>> > diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
>> > index 10d1391e7416..8b45f16a1890 100644
>> > --- a/kernel/sched/topology.c
>> > +++ b/kernel/sched/topology.c
>> > @@ -1554,6 +1554,7 @@ static struct cpumask ***sched_domains_numa_masks;
>> > * function:
>> > *
>> > * SD_SHARE_CPUCAPACITY - describes SMT topologies
>> > + * SD_CLUSTER - describes CPU Cluster topologies
>>
>> So I know this is the naming we've gone for the "Cluster" naming, but this
>> comment isn't really explaining anything.
>>
>> include/linux/sched/sd_flags.h has a bit more info already:
>> * Domain members share CPU cluster (LLC tags or L2 cache)
>
> I also thought of this, but I didn't want to suggest to repeat in topolog.c
> what is described in sd_flags.h.
>
> Maybe it is better to remove the descriptions of all flags here and instead
> direct the reader to sd_flags.h?
>

Yeah I agree on less duplication.

>>
>> I had to go through a bit of git history to remember what the CLUSTER thing
>> was about, how about this:
>>
>> * SD_CLUSTER - describes shared shared caches, cache tags or busses
>
> AFAIK, this describes a subset of CPUs in the package that share a
> resource, likely L2 cache.
>
>> * SD_SHARE_PKG_RESOURCES - describes shared LLC cache
>>
>> And looking at this it would make sense to:
>> rename SD_CLUSTER into SD_SHARE_PKG_RESOURCES
>
> but not all CPUs in the package share the resource

But SD_CLUSTER never expands beyond the package, right?

Regardless, my main point is that having both SD_CLUSTER and
SD_SHARE_PKG_RESOURCES is a source of confusion (at the very least for
myself), and given SD_SHARE_PKG_RESOURCES is really used to mean "shares
LLC" (see update_top_cache_domain()), we could make that flag more explicit
and lift some ambiguity with SD_CLUSTER.

>
>> rename SD_SHARE_PKG_RESOURCES into SD_SHARE_LLC
>> but that's another topic...
>>