[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2b245785-7cad-4b27-81a6-7e87160049ab@redhat.com>
Date: Fri, 11 Jul 2025 14:41:01 +1000
From: Gavin Shan <gshan@...hat.com>
To: James Morse <james.morse@....com>, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J . Wysocki" <rafael@...nel.org>, sudeep.holla@....com,
Rob Herring <robh@...nel.org>, Ben Horgan <ben.horgan@....com>,
Jonathan Cameron <jonathan.cameron@...wei.com>,
Catalin Marinas <catalin.marinas@....com>, WillDeaconwill@...nel.org
Subject: Re: [PATCH v2 1/3] cacheinfo: Set cache 'id' based on DT data
On 7/5/25 3:38 AM, James Morse wrote:
> From: Rob Herring <robh@...nel.org>
>
> Use the minimum CPU h/w id of the CPUs associated with the cache for the
> cache 'id'. This will provide a stable id value for a given system. As
> we need to check all possible CPUs, we can't use the shared_cpu_map
> which is just online CPUs. As there's not a cache to CPUs mapping in DT,
> we have to walk all CPU nodes and then walk cache levels.
>
> The cache_id exposed to user-space has historically been 32 bits, and
> is too late to change. This value is parsed into a u32 by user-space
> libraries such as libvirt:
> https://github.com/libvirt/libvirt/blob/master/src/util/virresctrl.c#L1588
>
> Give up on assigning cache-id's if a CPU h/w id greater than 32 bits
> is found.
>
> Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> Cc: "Rafael J. Wysocki" <rafael@...nel.org>
> Signed-off-by: Rob Herring <robh@...nel.org>
> [ ben: converted to use the __free cleanup idiom ]
> Signed-off-by: Ben Horgan <ben.horgan@....com>
> [ morse: Add checks to give up if a value larger than 32 bits is seen. ]
> Signed-off-by: James Morse <james.morse@....com>
> ---
> Use as a 32bit value has also been seen in DPDK patches here:
> http://inbox.dpdk.org/dev/20241021015246.304431-2-wathsala.vithanage@arm.com/
>
> Changes since v1:
> * Remove the second loop in favour of a helper.
>
> An open question from v1 is whether it would be preferable to use an
> index into the DT of the CPU nodes instead of the hardware id. This would
> save an arch specific swizzle - but the numbers would change if the DT
> were changed. This scheme isn't sensitive to the order of DT nodes.
>
> ---
> drivers/base/cacheinfo.c | 38 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
With Ben Horgan's concern addressed, LGTM:
Reviewed-by: Gavin Shan <gshan@...ha.com>
Powered by blists - more mailing lists