[PATCH] arch_topology: support parsing cache topology from DT

From: 王擎
Date: Wed Apr 06 2022 - 23:12:02 EST



>> From: wangqing <11112896@xxxxxxxxxx>
>>
>> When ACPI is not enabled, we can parse cache topolopy from DT:
>> *             cpu0: cpu@000 {
>> *                     next-level-cache = <&L2_1>;
>> *                     L2_1: l2-cache {
>> *                              compatible = "cache";
>> *                             next-level-cache = <&L3_1>;
>> *                      };
>> *                     L3_1: l3-cache {
>> *                              compatible = "cache";
>> *                      };
>> *             };
>> *
>> *             cpu1: cpu@001 {
>> *                     next-level-cache = <&L2_1>;
>> *             };
>> *             cpu2: cpu@002 {
>> *                     L2_2: l2-cache {
>> *                              compatible = "cache";
>> *                             next-level-cache = <&L3_1>;
>> *                     };
>> *             };
>> *
>> *             cpu3: cpu@003 {
>> *                     next-level-cache = <&L2_2>;
>> *             };
>> cache_topology hold the pointer describing "next-level-cache",
>> it can describe the cache topology of every level.
>>
>> Expand the use of llc_sibling when ACPI is not enabled.
>>
>
>You seem to have posted this patch as part of the series first. One patch
>was rejected and then you post this without any history. It confuses if you
>don't provide all the background/history.

Yes, the series contains several parts, the sched_domain part was rejected
temporary. But it has nothing to do with this patch, that's why I took it apart.
The background doesn't matter, let's focus on this patch itself.

>
>Having said that, NACK for this patch as it stands. We have
>drivers/base/cacheinfo.c which has all the parsing of cache information.
>IIRC we already consider LLC but highlight if anything is particularly
>missing. I am unable to follow/understand with you commit message.

cacheinfo.c just describes the properties of the cache, It can't describe
the cache topology, some like cpuinfo and cpu topology.

llc_sibling is not used at all if ACPI is not enabled, because llc_id
always be -1, and cpu_coregroup_mask() always return the core_sibling.

Why not get the cache topology from DT if the arch support GENERIC_ARCH_TOPOLOGY.

Thanks,
Wang

>
>--
>Regards,
>Sudeep