From: Sudeep Holla <sudeep.holla@arm.com>
To: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Len Brown <len.brown@intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
x86@kernel.org, guohanjun@huawei.com,
linux-kernel@vger.kernel.org, linuxarm@huawei.com,
Brice Goglin <Brice.Goglin@inria.fr>,
linux-acpi@vger.kernel.org, Sudeep Holla <sudeep.holla@arm.com>,
Will Deacon <will@kernel.org>,
Morten Rasmussen <morten.rasmussen@arm.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH] topology: Represent clusters of CPUs within a die.
Date: Mon, 19 Oct 2020 11:01:00 +0100 [thread overview]
Message-ID: <20201019100100.GA12908@bogus> (raw)
In-Reply-To: <20201016152702.1513592-1-Jonathan.Cameron@huawei.com>
+Morten
On Fri, Oct 16, 2020 at 11:27:02PM +0800, Jonathan Cameron wrote:
> Both ACPI and DT provide the ability to describe additional layers of
> topology between that of individual cores and higher level constructs
> such as the level at which the last level cache is shared.
> In ACPI this can be represented in PPTT as a Processor Hierarchy
> Node Structure [1] that is the parent of the CPU cores and in turn
> has a parent Processor Hierarchy Nodes Structure representing
> a higher level of topology.
>
> For example Kunpeng 920 has clusters of 4 CPUs. These do not share
> any cache resources, but the interconnect topology is such that
> the cost to transfer ownership of a cacheline between CPUs within
> a cluster is lower than between CPUs in different clusters on the same
> die. Hence, it can make sense to deliberately schedule threads
> sharing data to a single cluster.
>
This is very SoC specific and hard to generalise, hence LLC is chosen
as one of the main factor to decide.
Are there any scheduler topology related changes to achieve the same ?
If so, we need their opinion on that.
> This patch simply exposes this information to userspace libraries
> like hwloc by providing cluster_cpus and related sysfs attributes.
> PoC of HWLOC support at [2].
>
OK, cluster is too Arm specific with no definition for it whatsoever.
How do you plan to support clusters of clusters or higher level of
hierarchy present in PPTT.
> Note this patch only handle the ACPI case.
>
If we decide to add this to sysfs, I prefer to keep DT implementation
also in sync. The bindings are in sync, just matter of implementation.
> Special consideration is needed for SMT processors, where it is
> necessary to move 2 levels up the hierarchy from the leaf nodes
> (thus skipping the processor core level).
>
> Currently the ID provided is the offset of the Processor
> Hierarchy Nodes Structure within PPTT. Whilst this is unique
> it is not terribly elegant so alternative suggestions welcome.
>
That is firmware choice. May be your firmware just fills in mandatory
fields and doesn't care about anything and everything optional. We do
check for valid UID fields and if that is not set, offset is used as
unique ID in kernel implementation. So if you enhance the firmware, the
kernel sysfs will become elegant as you expect 😉
> Note that arm64 / ACPI does not provide any means of identifying
> a die level in the topology but that may be unrelate to the cluster
> level.
>
Indeed. It can be cluster of clusters on some platform. If we need that
info, we should add it. My assumption was that generally each die forms
a NUMA node and hence the information is available there. I may be wrong.
> RFC questions:
> 1) Naming
> 2) Related to naming, do we want to represent all potential levels,
> or this enough? On Kunpeng920, the next level up from cluster happens
> to be covered by llc cache sharing, but in theory more than one
> level of cluster description might be needed by some future system.
That is my question above. Can't recall the terminology used in ACPI
PPTT, but IIRC "cluster" is not used to keep it generic. May be we need
to do the same here as the term "cluster" is ill-defined on Arm and I
would avoid using it if possible.
> 3) Do we need DT code in place? I'm not sure any DT based ARM64
> systems would have enough complexity for this to be useful.
I prefer to keep the implementation in sync
> 4) Other architectures? Is this useful on x86 for example?
>
AMD had multi-die within socket IIRC. IIUC, cpuid will provide the info
and nothing more is needed from ACPI ? I may be wrong, just guessing/asking.
--
Regards,
Sudeep
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-10-19 10:02 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-16 15:27 [RFC PATCH] topology: Represent clusters of CPUs within a die Jonathan Cameron
2020-10-17 6:44 ` Greg Kroah-Hartman
2020-10-19 8:08 ` Jonathan Cameron
2020-10-19 10:00 ` Brice Goglin
2020-10-19 12:38 ` Jonathan Cameron
2020-10-19 10:01 ` Sudeep Holla [this message]
2020-10-19 13:14 ` Jonathan Cameron
2020-10-19 10:35 ` Peter Zijlstra
2020-10-19 12:32 ` Jonathan Cameron
2020-10-19 12:50 ` Peter Zijlstra
2020-10-19 13:12 ` Brice Goglin
2020-10-19 13:13 ` Morten Rasmussen
2020-10-19 13:10 ` Morten Rasmussen
2020-10-19 13:41 ` Jonathan Cameron
2020-10-19 14:16 ` Morten Rasmussen
2020-10-19 14:42 ` Brice Goglin
2020-10-19 15:30 ` Jonathan Cameron
2020-10-19 13:48 ` Valentin Schneider
2020-10-19 14:27 ` Jonathan Cameron
2020-10-19 15:51 ` Valentin Schneider
2020-10-19 16:00 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201019100100.GA12908@bogus \
--to=sudeep.holla@arm.com \
--cc=Brice.Goglin@inria.fr \
--cc=Jonathan.Cameron@huawei.com \
--cc=gregkh@linuxfoundation.org \
--cc=guohanjun@huawei.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=morten.rasmussen@arm.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).