linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeremy Linton <jeremy.linton@arm.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	sudeep.holla@arm.com, hanjun.guo@linaro.org, rjw@rjwysocki.net,
	will.deacon@arm.com, catalin.marinas@arm.com,
	gregkh@linuxfoundation.org, viresh.kumar@linaro.org,
	mark.rutland@arm.com, linux-kernel@vger.kernel.org,
	linux-pm@vger.kernel.org, jhugo@codeaurora.org,
	wangxiongfeng2@huawei.com, Jonathan.Zhang@cavium.com,
	ahs3@redhat.com, Jayachandran.Nair@cavium.com,
	austinwc@codeaurora.org
Subject: Re: [PATCH v3 6/7] arm64: topology: Enable ACPI/PPTT based CPU topology.
Date: Fri, 20 Oct 2017 11:14:31 -0500	[thread overview]
Message-ID: <e2772689-603b-f129-0643-f5d1f5e41a19@arm.com> (raw)
In-Reply-To: <20171020091428.GA21060@red-moon>

Hi,

On 10/20/2017 04:14 AM, Lorenzo Pieralisi wrote:
> On Thu, Oct 19, 2017 at 11:13:27AM -0500, Jeremy Linton wrote:
>> On 10/19/2017 10:56 AM, Lorenzo Pieralisi wrote:
>>> On Thu, Oct 12, 2017 at 02:48:55PM -0500, Jeremy Linton wrote:
>>>> Propagate the topology information from the PPTT tree to the
>>>> cpu_topology array. We can get the thread id, core_id and
>>>> cluster_id by assuming certain levels of the PPTT tree correspond
>>>> to those concepts. The package_id is flagged in the tree and can be
>>>> found by passing an arbitrary large level to setup_acpi_cpu_topology()
>>>> which terminates its search when it finds an ACPI node flagged
>>>> as the physical package. If the tree doesn't contain enough
>>>> levels to represent all of thread/core/cod/package then the package
>>>> id will be used for the missing levels.
>>>>
>>>> Since server/ACPI machines are more likely to be multisocket and NUMA,
>>>
>>> I think this stuff is vague enough already so to start with I would drop
>>> patch 4 and 5 and stop assuming what machines are more likely to ship
>>> with ACPI than DT.
>>>
>>> I am just saying, for the umpteenth time, that these levels have no
>>> architectural meaning _whatsoever_, level is a hierarchy concept
>>> with no architectural meaning attached.
>>
>> ?
>>
>> Did anyone say anything about that? No, I think the only thing being
>> guaranteed here is that the kernel's physical_id maps to an ACPI
>> defined socket. Which seems to be the mindset of pretty much the
>> entire !arm64 community meaning they are optimizing their software
>> and the kernel with that concept in mind.
>>
>> Are you denying the existence of non-uniformity between threads
>> running on different physical sockets?
> 
> No, I have not explained my POV clearly, apologies.
> 
> AFAIK, the kernel currently deals with 2 (3 - if SMT) topology layers.
> 
> 1) thread
> 2) core
> 3) package
> 
> What I wanted to say is, that, to simplify this series, you do not need
> to introduce the COD topology level, since it is just another arbitrary
> topology level (ie there is no way you can pinpoint which level
> corresponds to COD with PPTT - or DT for the sake of this discussion)
> that would not be used in the kernel (apart from big.LITTLE cpufreq
> driver and PSCI checker whose usage of topology_physical_package_id() is
> questionable anyway).

Oh! But, i'm at a loss as to what to do with those two users if I set 
the node which has the physical socket flag set, as the "cluster_id" in 
the topology.

Granted, this being ACPI I don't expect the cpufreq driver to be active 
(given CPPC) and the psci checker might be ignored? Even so, its a bit 
of a misnomer what is actually happening. Are we good with this?


> 
> PPTT allows you to define what level corresponds to a package, use
> it to initialize the package topology level (that on ARM internal
> variables we call cluster) and be done with it.
> 
> I do not think that adding another topology level improves anything as
> far as ACPI topology detection is concerned, you are not able to use it
> in the scheduler or from userspace to group CPUs anyway.

Correct, and AFAIK after having poked a bit at the scheduler its sort of 
redundant as the generic cache sharing levels are more useful anyway.

> 
> Does this answer your question ?
Yes, other than what to do with the two drivers.

> 
> Thanks,
> Lorenzo
> 

  reply	other threads:[~2017-10-20 16:14 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-12 19:48 [PATCH v3 0/7] Support PPTT for ARM64 Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 1/7] ACPI/PPTT: Add Processor Properties Topology Table parsing Jeremy Linton
2017-10-13  9:56   ` Julien Thierry
2017-10-13 22:41     ` Jeremy Linton
2017-10-13 14:23   ` tn
2017-10-13 19:58     ` Jeremy Linton
2017-10-16 14:24   ` John Garry
2017-10-17 13:25   ` Tomasz Nowicki
2017-10-17 15:22     ` Jeremy Linton
2017-10-18  1:10       ` Xiongfeng Wang
2017-10-18  5:39       ` Tomasz Nowicki
2017-10-18 10:24         ` Tomasz Nowicki
2017-10-18 17:30           ` Jeremy Linton
2017-10-19  5:18             ` Tomasz Nowicki
2017-10-19 10:25               ` John Garry
2017-10-27  5:21                 ` Tomasz Nowicki
2017-10-19 14:24               ` Jeremy Linton
2017-10-19 10:22   ` Lorenzo Pieralisi
2017-10-19 15:43     ` Jeremy Linton
2017-10-20 10:15       ` Lorenzo Pieralisi
2017-10-20 19:53   ` Christ, Austin
2017-10-23 21:14     ` Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 2/7] ACPI: Enable PPTT support on ARM64 Jeremy Linton
2017-10-13  9:53   ` Hanjun Guo
2017-10-13 17:51     ` Jeremy Linton
2017-10-18 16:47   ` Lorenzo Pieralisi
2017-10-18 17:38     ` Jeremy Linton
2017-10-19  9:12       ` Lorenzo Pieralisi
2017-10-12 19:48 ` [PATCH v3 3/7] drivers: base: cacheinfo: arm64: Add support for ACPI based firmware tables Jeremy Linton
2017-10-19 15:20   ` Lorenzo Pieralisi
2017-10-19 15:52     ` Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 4/7] Topology: Add cluster on die macros and arm64 decoding Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 5/7] arm64: Fixup users of topology_physical_package_id Jeremy Linton
2017-10-12 19:48 ` [PATCH v3 6/7] arm64: topology: Enable ACPI/PPTT based CPU topology Jeremy Linton
2017-10-19 15:56   ` Lorenzo Pieralisi
2017-10-19 16:13     ` Jeremy Linton
2017-10-20  9:14       ` Lorenzo Pieralisi
2017-10-20 16:14         ` Jeremy Linton [this message]
2017-10-20 16:42           ` Sudeep Holla
2017-10-20 19:55           ` Jeffrey Hugo
2017-10-23 21:26             ` Jeremy Linton
2017-10-19 16:54     ` Jeremy Linton
2017-10-20  9:22       ` Lorenzo Pieralisi
2017-11-01 20:29         ` Al Stone
2017-11-02 10:48           ` Lorenzo Pieralisi
2017-10-12 19:48 ` [PATCH v3 7/7] ACPI: Add PPTT to injectable table list Jeremy Linton
2017-10-13 11:08 ` [PATCH v3 0/7] Support PPTT for ARM64 John Garry
2017-10-13 19:34   ` Jeremy Linton
2017-10-31 12:46 ` Jon Masters

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=e2772689-603b-f129-0643-f5d1f5e41a19@arm.com \
    --to=jeremy.linton@arm.com \
    --cc=Jayachandran.Nair@cavium.com \
    --cc=Jonathan.Zhang@cavium.com \
    --cc=ahs3@redhat.com \
    --cc=austinwc@codeaurora.org \
    --cc=catalin.marinas@arm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hanjun.guo@linaro.org \
    --cc=jhugo@codeaurora.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=rjw@rjwysocki.net \
    --cc=sudeep.holla@arm.com \
    --cc=viresh.kumar@linaro.org \
    --cc=wangxiongfeng2@huawei.com \
    --cc=will.deacon@arm.com \
    /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).