From: Lorenzo Pieralisi <email@example.com> To: Daniel Lezcano <firstname.lastname@example.org> Cc: Viresh Kumar <email@example.com>, Sudeep Holla <firstname.lastname@example.org>, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, Amit Daniel Kachhap <firstname.lastname@example.org> Subject: Re: [PATCH v3 6/7] thermal/drivers/cpu_cooling: Introduce the cpu idle cooling driver Date: Mon, 16 Apr 2018 15:22:43 +0100 [thread overview] Message-ID: <20180416142243.GB32565@red-moon> (raw) In-Reply-To: <email@example.com> On Mon, Apr 16, 2018 at 03:57:03PM +0200, Daniel Lezcano wrote: > On 16/04/2018 14:30, Lorenzo Pieralisi wrote: > > On Mon, Apr 16, 2018 at 02:10:30PM +0200, Daniel Lezcano wrote: > >> On 16/04/2018 12:10, Viresh Kumar wrote: > >>> On 16-04-18, 12:03, Daniel Lezcano wrote: > >>>> On 16/04/2018 11:50, Viresh Kumar wrote: > >>>>> On 16-04-18, 11:45, Daniel Lezcano wrote: > >>>>>> Can you elaborate a bit ? I'm not sure to get the point. > >>>>> > >>>>> Sure. With your current code on Hikey960 (big/LITTLE), you end up > >>>>> creating two cooling devices, one for the big cluster and one for > >>>>> small cluster. Which is the right thing to do, as we also have two > >>>>> cpufreq cooling devices. > >>>>> > >>>>> But with the change Sudeep is referring to, the helper you used to get > >>>>> cluster id will return 0 (SoC id) for all the 8 CPUs. So your code > >>>>> will end up creating a single cpuidle cooling device for all the CPUs. > >>>>> Which would be wrong. > >>>> > >>>> Is the semantic of topology_physical_package_id changing ? > >>> > >>> That's what I understood from his email. > >>> > >>>> I don't > >>>> understand the change Sudeep is referring to. > >> > >> Actually there is no impact with the change Sudeep is referring to. It > >> is for ACPI, we are DT based. Confirmed with Jeremy. > >> > >> So AFAICT, it is not a problem. > > > > It is a problem - DT or ACPI alike. Sudeep was referring to the notion > > of "cluster" that has no architectural meaning whatsoever and using > > topology_physical_package_id() to detect a "cluster" was/is/will always > > be the wrong thing to do. The notion of cluster must not appear in the > > kernel at all, it has no architectural meaning. I understand you need > > to group CPUs but that has to be done in a different way, through > > cooling devices, thermal domains or power domains DT/ACPI bindings but > > not by using topology masks. > > I don't get it. What is the cluster concept defined in the ARM > documentation? > > ARM Cortex-A53 MPCore Processor Technical Reference Manual > > 4.5.2. Multiprocessor Affinity Register > > I see the documentation says: > > A cluster with two cores, three cores, ... > > How the kernel can represent that if you kill the > topology_physical_package_id() ? >From an Arm ARM perspective (ARM v8 reference manual), the MPIDR_EL1 has no notion of cluster which means that a cluster is not architecturally defined on Arm systems. Currently, as Morten explained today, topology_physical_package_id() is supposed to represent a "cluster" and that's completely wrong because a "cluster" cannot be defined from an architectural perspective. It was a bodge used as a shortcut, wrongly. We should have never used that API for that purpose and there must be no code in the kernel relying on: topology_physical_package_id() to define a cluster; the information you require to group CPUs must come from something else, which is firmware bindings(DT or ACPI) as I mentioned. Please speak to Sudeep who will fill you on the reasoning above. Thanks, Lorenzo
next prev parent reply other threads:[~2018-04-16 14:22 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-05 16:16 [PATCH v3 0/7] CPU cooling device new strategies Daniel Lezcano 2018-04-05 16:16 ` [PATCH v3 1/7] thermal/drivers/cpu_cooling: Fixup the header and copyright Daniel Lezcano [not found] ` <20180411061514.GL7671@vireshk-i7> 2018-04-11 8:56 ` Daniel Lezcano 2018-04-05 16:16 ` [PATCH v3 2/7] thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX) Daniel Lezcano 2018-04-05 16:16 ` [PATCH v3 3/7] thermal/drivers/cpu_cooling: Remove pointless field Daniel Lezcano 2018-04-05 16:16 ` [PATCH v3 4/7] thermal/drivers/Kconfig: Convert the CPU cooling device to a choice Daniel Lezcano [not found] ` <20180411061851.GM7671@vireshk-i7> 2018-04-11 8:58 ` Daniel Lezcano 2018-04-05 16:16 ` [PATCH v3 5/7] thermal/drivers/cpu_cooling: Add idle cooling device documentation Daniel Lezcano 2018-04-05 16:16 ` [PATCH v3 6/7] thermal/drivers/cpu_cooling: Introduce the cpu idle cooling driver Daniel Lezcano 2018-04-11 8:51 ` Viresh Kumar 2018-04-11 9:29 ` Daniel Lezcano 2018-04-13 11:23 ` Sudeep Holla 2018-04-13 11:47 ` Daniel Lezcano 2018-04-16 7:37 ` Viresh Kumar 2018-04-16 7:44 ` Daniel Lezcano 2018-04-16 9:34 ` Sudeep Holla 2018-04-16 9:37 ` Viresh Kumar 2018-04-16 9:45 ` Daniel Lezcano 2018-04-16 9:50 ` Viresh Kumar 2018-04-16 10:03 ` Daniel Lezcano 2018-04-16 10:10 ` Viresh Kumar 2018-04-16 12:10 ` Daniel Lezcano 2018-04-16 12:30 ` Lorenzo Pieralisi 2018-04-16 13:57 ` Daniel Lezcano 2018-04-16 14:22 ` Lorenzo Pieralisi [this message] 2018-04-17 7:17 ` Daniel Lezcano 2018-04-17 10:24 ` Lorenzo Pieralisi 2018-04-16 12:31 ` Sudeep Holla 2018-04-16 12:49 ` Daniel Lezcano 2018-04-16 13:03 ` Sudeep Holla 2018-04-16 12:29 ` Sudeep Holla 2018-04-13 11:38 ` Daniel Thompson 2018-04-13 11:46 ` Daniel Lezcano 2019-08-05 5:11 ` Martin Kepplinger 2019-08-05 6:53 ` Martin Kepplinger 2019-08-05 7:39 ` Daniel Lezcano 2019-08-05 7:42 ` Martin Kepplinger 2019-08-05 7:58 ` Daniel Lezcano 2019-10-25 11:22 ` Martin Kepplinger 2019-10-25 14:45 ` Daniel Lezcano 2019-10-26 18:23 ` Martin Kepplinger 2019-10-28 15:16 ` Daniel Lezcano 2019-08-05 7:37 ` Daniel Lezcano 2019-08-05 7:40 ` Martin Kepplinger 2018-04-05 16:16 ` [PATCH v3 7/7] cpuidle/drivers/cpuidle-arm: Register the cooling device Daniel Lezcano 2018-04-11 8:51 ` Viresh Kumar
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=20180416142243.GB32565@red-moon \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH v3 6/7] thermal/drivers/cpu_cooling: Introduce the cpu idle cooling driver' \ /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
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).