Thread (25 messages) 25 messages, 5 authors, 2022-05-20

Re: [PATCH v2 8/8] arch_topology: Add support to build llc_sibling on DT platforms

From: Sudeep Holla <hidden>
Date: 2022-05-20 15:07:10
Also in: linux-riscv, lkml

On Fri, May 20, 2022 at 09:36:20AM -0500, Rob Herring wrote:
On Fri, May 20, 2022 at 01:59:59PM +0100, Sudeep Holla wrote:
quoted
On Thu, May 19, 2022 at 01:10:51PM -0500, Rob Herring wrote:
quoted
On Wed, May 18, 2022 at 4:34 AM Sudeep Holla [off-list ref] wrote:
quoted
ACPI PPTT provides cache identifiers and especially the last level cache
identifier is used in obtaining last level cache siblings amongst CPUs.

While we have the cpu map representing all the CPUs sharing last level
cache in the cacheinfo driver, it is populated quite late in the boot
while the information is needed to build scheduler domains quite early.
Late is because it's a device_initcall() rather than late in the cpu
hotplug state machine, right?
Right. The expectation is to run in on each online CPU in CPU hotplug state
machine for some architectures. We may not need that on arm64 especially
since we get all info from DT or ACPI, but e.g. x86 uses cpuid which needs
to be executed on that CPU.
That's a separate issue. I'm not suggesting changing that part (that 
would just be an optimization).
quoted
quoted
The late aspect is for sysfs presumably,but I think we could decouple that.
OK, not sure when this sched_domain info is actually needed. It think it
could be decoupled if we can wait until all the cpus are online.
No need to wait for all cpus to be online. I think you keep doing 
it as part of cpu hotplug. The device_initcall() is used because you 
cannot have struct device or sysfs calls before the driver core is 
initialized. If we run the cacheinfo code earlier (I think the arch code 
will have to call it) just like the topology code and skip the sysfs 
parts, then you can use it.
Yes I was thinking something on similar lines, though I didn't think of
pushing code to arch. Let me check, must be possible.
quoted
quoted
Do all the firmware cache parsing early and then populate the sysfs parts
later.
Yes that may work on DT/ACPI based systems, as I said x86 relies on cpuid.
I'd assume using cpuid works at any time?
I think so, I can't recall the details since I looked at that about 5 years
ago. I have to check again anyways to explore early initialisation.

-- 
Regards,
Sudeep

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help