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

From: kuiliang Shi
Date: Tue Feb 06 2024 - 21:36:19 EST




On 2/7/24 5:57 AM, Ricardo Neri wrote:
> On Tue, Feb 06, 2024 at 02:16:06PM +0100, Valentin Schneider wrote:
>> 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?
>
> Correct.
>
>>
>> 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),
>
> Agreed!
>
>> 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.
>
> As Yicong stated, cluster topology should mean CPUs beyond SMT that share
> some resource but not LLC.
>
> It makes sense to me to keep SD_CLUSTER name as it is today and rename
> SD_SHARE_PKG_RESOURCES as SD_SHARE_LLC.

yes, agree with his.