Hi, Sudeep,

Please see this call-graph:

static int detect_cache_attributes(unsigned int cpu)
        ....
        ret = populate_cache_leaves(cpu);
        ....
        ret = cache_shared_cpu_map_setup(cpu); -->
cache_setup_of_node() --> cache_of_set_props() -->
cache_size()/cache_nr_sets

populate_cache_leaves() is arch-specific, All archs except arm64 have
provide initial values to cacheinfo:size and cacheinfo:number_of_sets.

Related files:
arch/nds32/kernel/cacheinfo.c
arch/riscv/kernel/cacheinfo.c
arch/s390/kernel/cache.c
arch/mips/kernel/cacheinfo.c
arch/x86/kernel/cpu/cacheinfo.c

Regards,
Huacai

On Wed, Oct 17, 2018 at 5:35 PM Sudeep Holla <sudeep.ho...@arm.com> wrote:
>
> On Wed, Oct 17, 2018 at 09:26:03AM +0800, Huacai Chen wrote:
> > Commit 448a5a552f336bd7b847b1951 ("drivers: base: cacheinfo: use OF
> > property_read_u32 instead of get_property,read_number") makes cache
> > size and number_of_sets be 0 if DT doesn't provide there values. I
> > think this is unreasonable so make them keep the old values, which is
> > the same as old kernels.
> >
>
> What old values does the kernel have ? Which architecture are you referring ?
> If DT doesn't have entry then we can't expose sysfs, hence 0.
> Please provide more details on the issue you are seeing.
>
> --
> Regards,
> Sudeep

Reply via email to