Re: [PATCH RFT v2] x86: move cacheinfo sysfs to generic cacheinfo infrastructure

Sudeep Holla
2015-03-04T09:52:58Z

On 03/03/15 18:45, Borislav Petkov wrote:
[...]

> Now, previously the code did
>
> - if (!per_cpu(ici_cpuid4_info, i))
> - continue;
>
>
> and __cache_cpumap_setup() already does:
>
> if (i == cpu || !sib_cpu_ci->info_list)
> continue;/* skip if itself or no cacheinfo */
>
> so maybe we should do that too in __cache_amd_cpumap_setup():
>
> if (!this_cpu_ci->info_list)
> continue;
>
> for the index == 3 case?
>
> It boots fine here with that change and it is consistent with the
> previous code.
>

Ok, I will add the above check. Sorry for missing that.

> And yes, the x86 cacheinfo code could use a serious rubbing and cleanup.
>
> Btw, this patch introduces a bunch of new sysfs nodes in the caches
> hierarchy:
>
> --- caches-guest-before.txt 2015-03-03 15:11:09.168276423 +0100
> +++ caches-guest-after.txt 2015-03-03 18:19:04.084426130 +0100
> @@ -1,6 +1,22 @@
> +/sys/devices/system/cpu/cpu0/cache/power/control:1:auto
> +/sys/devices/system/cpu/cpu0/cache/power/async:1:disabled
> +/sys/devices/system/cpu/cpu0/cache/power/runtime_enabled:1:disabled
> +/sys/devices/system/cpu/cpu0/cache/power/runtime_active_kids:1:0
> +/sys/devices/system/cpu/cpu0/cache/power/runtime_active_time:1:0
> +/sys/devices/system/cpu/cpu0/cache/power/runtime_status:1:unsupported
> +/sys/devices/system/cpu/cpu0/cache/power/runtime_usage:1:0
> +/sys/devices/system/cpu/cpu0/cache/power/runtime_suspended_time:1:0
> /sys/devices/system/cpu/cpu0/cache/index0/size:1:64K
> /sys/devices/system/cpu/cpu0/cache/index0/type:1:Data
> /sys/devices/system/cpu/cpu0/cache/index0/level:1:1
> +/sys/devices/system/cpu/cpu0/cache/index0/power/control:1:auto
> +/sys/devices/system/cpu/cpu0/cache/index0/power/async:1:disabled
> +/sys/devices/system/cpu/cpu0/cache/index0/power/runtime_enabled:1:disabled
> +/sys/devices/system/cpu/cpu0/cache/index0/power/runtime_active_kids:1:0
> +/sys/devices/system/cpu/cpu0/cache/index0/power/runtime_active_time:1:0
> +/sys/devices/system/cpu/cpu0/cache/index0/power/runtime_status:1:unsupported
> +/sys/devices/system/cpu/cpu0/cache/index0/power/runtime_usage:1:0
> +/sys/devices/system/cpu/cpu0/cache/index0/power/runtime_suspended_time:1:0
> /sys/devices/system/cpu/cpu0/cache/index0/number_of_sets:1:512
> /sys/devices/system/cpu/cpu0/cache/index0/shared_cpu_map:1:1
> /sys/devices/system/cpu/cpu0/cache/index0/shared_cpu_list:1:0
> ...
>
> What do those things mean? runtime_active_kids ?? Kids are active during
> runtime?! Well, that's a given, no need for a sysfs node for that :-)
>

Those extra sysfs are due to that fact that generic cacheinfo sysfs
is not using raw kobjects directly anymore (which was the case with most
of the old cacheinfo sysfs implementation), but uses device/device
attributes as Greg suggested to simply the code and reuse device model
code.

Regards,
Sudeep