Re: [PATCH v3 0/3] x86/cacheinfo: Set the number of leaves per CPU

From: Andreas Herrmann
Date: Fri Sep 01 2023 - 02:49:16 EST


On Fri, Aug 04, 2023 at 06:24:18PM -0700, Ricardo Neri wrote:
> Hi,

Hi Ricardo,

> This is v3 of a patchset to set the number of cache leaves independently
> for each CPU. v1 and v2 can be found here [1] and here [2].

I am on CC of your patch set and glanced through it.
Long ago I've touched related code but now I am not really up-to-date
to do a qualified review in this area. First, I would have to look
into documentation to refresh my memory etc. pp.

I've not seen (or it escaped me) information that this was tested on a
variety of machines that might be affected by this change. And there
are no Tested-by-tags.

Even if changes look simple and reasonable they can cause issues.

Thus from my POV it would be good to have some information what tests
were done. I am not asking to test on all possible systems but just
knowing which system(s) was (were) used for functional testing is of
value.

> Changes since v2:
> * This version uncovered a NULL-pointer dereference in recent changes to
> cacheinfo[3]. This dereference is observed when the system does not
> configure cacheinfo early during boot nor makes corrections later
> during CPU hotplug; as is the case in x86. Patch 1 fixes this issue.
>
> Changes since v1:
> * Dave Hansen suggested to use the existing per-CPU ci_cpu_cacheinfo
> variable. Now the global variable num_cache_leaves became useless.
> * While here, I noticed that init_cache_level() also became useless:
> x86 does not need ci_cpu_cacheinfo::num_levels.
>
> [1]. https://lore.kernel.org/lkml/20230314231658.30169-1-ricardo.neri-calderon@xxxxxxxxxxxxxxx/
> [2]. https://lore.kernel.org/all/20230424001956.21434-1-ricardo.neri-calderon@xxxxxxxxxxxxxxx/
> [3]. https://lore.kernel.org/all/20230412185759.755408-1-rrendec@xxxxxxxxxx/
>
> Ricardo Neri (3):
> cacheinfo: Allocate memory for memory if not done from the primary CPU
> x86/cacheinfo: Delete global num_cache_leaves
> x86/cacheinfo: Clean out init_cache_level()
>
> arch/x86/kernel/cpu/cacheinfo.c | 50 ++++++++++++++++-----------------
> drivers/base/cacheinfo.c | 6 +++-
> 2 files changed, 30 insertions(+), 26 deletions(-)
>
> --
> 2.25.1
>

--
Regards,
Andreas

SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nürnberg, Germany
GF: Ivo Totev, Andrew McDonald, Werner Knoblich
(HRB 36809, AG Nürnberg)