linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: morten.rasmussen@foss.arm.com (Morten Rasmussen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 7/9] arm64: Topology, rename cluster_id
Date: Tue, 2 Jan 2018 11:30:14 +0000	[thread overview]
Message-ID: <20180102113014.GA28799@e105550-lin.cambridge.arm.com> (raw)
In-Reply-To: <965127a6-816b-8e0c-d228-a3d73a8c643a@huawei.com>

On Tue, Jan 02, 2018 at 10:29:35AM +0800, Xiongfeng Wang wrote:
> Hi,
> 
> On 2017/12/18 20:42, Morten Rasmussen wrote:
> > On Fri, Dec 15, 2017 at 10:36:35AM -0600, Jeremy Linton wrote:
> >> Hi,
> >>
> >> On 12/13/2017 12:02 PM, Lorenzo Pieralisi wrote:
> >>> [+Morten, Dietmar]
> >>>
> >>> $SUBJECT should be:
> >>>
> >>> arm64: topology: rename cluster_id
> >>
> [cut]
> >>
> >> I was hoping someone else would comment here, but my take at this point is
> >> that it doesn't really matter in a functional sense at the moment.
> >> Like the chiplet discussion it can be the subject of a future patch along
> >> with the patches which tweak the scheduler to understand the split.
> >>
> >> BTW, given that i'm OoO next week, and the following that are the holidays,
> >> I don't intend to repost this for a couple weeks. I don't think there are
> >> any issues with this set.
> >>
> >>>
> >>> There is also arch/arm to take into account, again, this patch is
> >>> just renaming (as it should have named since the beginning) a
> >>> topology level but we should consider everything from a legacy
> >>> perspective.
> > 
> > arch/arm has gone for thread/core/socket for the three topology levels
> > it supports.
> > 
> > I'm not sure what short term value keeping cluster_id has? Isn't it just
> > about where we make the package = cluster assignment? Currently it is in
> > the definition of topology_physical_package_id. If we keep cluster_id
> > and add package_id, it gets moved into the MPIDR/DT parsing code. 
> > 
> > Keeping cluster_id and introducing a topology_cluster_id function could
> > help cleaning up some of the users of topology_physical_package_id that
> > currently assumes package_id == cluster_id though.
> 
> I think we still need the information describing which cores are in one cluster.
> Many arm64 chips have the architecture core/cluster/socket. Cores in one cluster may
> share a same L2 cache. That information can be used to build the sched_domain. If we put
> cores in one cluster in one sched_domain, the performance will be better.(please see
> kernel/sched/topology.c:1197, cpu_coregroup_mask() uses 'core_sibling' to build a multi-core
> sched_domain)
> So I think we still need variable to record which cores are in one sched_domain for future use.

I agree that information about clusters is useful. The problem is that
we currently treat clusters as sockets (also known as dies or
physical_package_id depending on which bit of code you are looking at). We
don't handle the core/cluster/socket topology you mention as three
'levels' of grouping of cores. We currently create one sched_domain
levels for cores (in a cluster) and a parent sched_domain level of all
clusters in the system ignoring if those are in different sockets and
tell the scheduler that those clusters are all separate sockets. This
doesn't work very well for systems with many clusters and/or multiple
sockets.

How to solve that problem is a longer discussion which I'm happy to
have. This patch is just preparing to get rid of the assumption that
clusters are sockets as this is not in line with what other
architectures does and the assumptions made by the scheduler.

Morten

  reply	other threads:[~2018-01-02 11:30 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-01 22:23 [PATCH v5 0/9] Support PPTT for ARM64 Jeremy Linton
2017-12-01 22:23 ` [PATCH v5 1/9] arm64/acpi: Create arch specific cpu to acpi id helper Jeremy Linton
2017-12-01 22:23 ` [PATCH v5 2/9] ACPI/PPTT: Add Processor Properties Topology Table parsing Jeremy Linton
2017-12-12  1:10   ` Rafael J. Wysocki
2017-12-01 22:23 ` [PATCH v5 3/9] ACPI: Enable PPTT support on ARM64 Jeremy Linton
2017-12-13 17:26   ` Lorenzo Pieralisi
2018-01-05 21:58     ` Jeremy Linton
2018-01-05 22:07       ` Rafael J. Wysocki
2017-12-01 22:23 ` [PATCH v5 4/9] drivers: base cacheinfo: Add support for ACPI based firmware tables Jeremy Linton
2017-12-12  1:11   ` Rafael J. Wysocki
2017-12-12 17:03     ` Jeremy Linton
2017-12-12 17:25       ` Rafael J. Wysocki
2017-12-12 22:55         ` Jeremy Linton
2017-12-12 23:02           ` Rafael J. Wysocki
2017-12-12 23:37             ` Jeremy Linton
2017-12-12 23:41               ` Rafael J. Wysocki
2018-01-03 14:21               ` Sudeep Holla
2018-01-04 11:46                 ` Sudeep Holla
2017-12-01 22:23 ` [PATCH v5 5/9] arm64: " Jeremy Linton
2017-12-01 22:23 ` [PATCH v5 6/9] ACPI/PPTT: Add topology parsing code Jeremy Linton
2017-12-12  1:12   ` Rafael J. Wysocki
2017-12-12 16:13     ` Jeremy Linton
2017-12-13 17:38       ` Lorenzo Pieralisi
2017-12-13 22:28         ` Rafael J. Wysocki
2017-12-13 23:06           ` Jeremy Linton
2017-12-13 23:09             ` Rafael J. Wysocki
2018-01-03  8:49               ` vkilari at codeaurora.org
2018-01-03 16:57                 ` Jeremy Linton
2018-01-04  6:48                   ` vkilari at codeaurora.org
2018-01-04 17:50                     ` Jeremy Linton
2017-12-01 22:23 ` [PATCH v5 7/9] arm64: Topology, rename cluster_id Jeremy Linton
2017-12-13 18:02   ` Lorenzo Pieralisi
2017-12-15 16:36     ` Jeremy Linton
2017-12-18 12:42       ` Morten Rasmussen
2017-12-18 15:47         ` Lorenzo Pieralisi
2017-12-19  9:38           ` Morten Rasmussen
2018-01-02  2:29         ` Xiongfeng Wang
2018-01-02 11:30           ` Morten Rasmussen [this message]
2018-01-03 14:29           ` Sudeep Holla
2018-01-03 17:32             ` Jeremy Linton
2018-01-03 17:43               ` Sudeep Holla
2018-01-04  3:59               ` Xiongfeng Wang
2018-01-04 18:00                 ` Jeremy Linton
2018-01-04  4:14               ` Xiongfeng Wang
2017-12-01 22:23 ` [PATCH v5 8/9] arm64: topology: Enable ACPI/PPTT based CPU topology Jeremy Linton
2017-12-13 18:22   ` Lorenzo Pieralisi
2017-12-15 17:42     ` Jeremy Linton
2017-12-01 22:23 ` [PATCH v5 9/9] ACPI: Add PPTT to injectable table list Jeremy Linton

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=20180102113014.GA28799@e105550-lin.cambridge.arm.com \
    --to=morten.rasmussen@foss.arm.com \
    --cc=linux-arm-kernel@lists.infradead.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).