From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Quentin Perret <quentin.perret@arm.com>
Cc: linux-pm@vger.kernel.org, viresh.kumar@linaro.org,
amit.kachhap@gmail.com, rjw@rjwysocki.net,
linux-kernel@vger.kernel.org, will.deacon@arm.com,
edubezval@gmail.com, catalin.marinas@arm.com,
rui.zhang@intel.com, javi.merino@kernel.org,
ionela.voinescu@arm.com, dietmar.eggemann@arm.com,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 3/3] thermal: cpu_cooling: Migrate to using the EM framework
Date: Fri, 29 Mar 2019 18:17:58 +0100 [thread overview]
Message-ID: <eeaf6156-c591-cc21-d097-b6c5cdb62a5a@linaro.org> (raw)
In-Reply-To: <20190329091636.gbmh5hzw46ucangr@queper01-ThinkPad-T460s>
On 29/03/2019 10:16, Quentin Perret wrote:
> Hi Daniel,
>
> On Thursday 28 Mar 2019 at 21:23:35 (+0100), Daniel Lezcano wrote:
>>> /**
>>> * struct time_in_idle - Idle time stats
>>> * @time: previous reading of the absolute time that this cpu was idle
>>> @@ -82,7 +70,7 @@ struct time_in_idle {
>>> * frequency.
>>> * @max_level: maximum cooling level. One less than total number of valid
>>> * cpufreq frequencies.
>>> - * @freq_table: Freq table in descending order of frequencies
>>> + * @em: Reference on the Energy Model of the device
>>> * @cdev: thermal_cooling_device pointer to keep track of the
>>> * registered cooling device.
>>> * @policy: cpufreq policy.
>>> @@ -98,7 +86,7 @@ struct cpufreq_cooling_device {
>>> unsigned int cpufreq_state;
>>> unsigned int clipped_freq;
>>> unsigned int max_level;
>>> - struct freq_table *freq_table; /* In descending order */
>>> + struct em_perf_domain *em;
>>
>> Why do you need to add this field? it will be accessible via policy->em, no?
>
> You mean via the CPUFreq policy ? Then no, the EM isn't attached to the
> CPUFreq policy. And we can't attach it directly to the CPUFreq policy
> since in *theory* it is not required to map 1:1 to CPUFreq policies
> (even though that _is_ true for all existing platforms). That's one of
> the things this patch checks in that em_is_sane() function below.
>
> FWIW, the idea of the design is, the EM framework is 'independent' and
> it's up to the client subsystems (scheduler, IPA) to check if it actually
> works for them. In the case of the scheduler, for example, we can't use
> an EM that's too complex because that would cause too much overhead, so
> we don't start EAS if that's not the case. See:
>
> https://elixir.bootlin.com/linux/latest/source/kernel/sched/topology.c#L367
>
> In the case of IPA, we need to do something similar. We can't use an EM
> that doesn't map 1:1 to CPUFreq policies, so we bail out if that's not
> true, etc, ... This isn't supposed to trigger any time soon, but it's
> good to have a check just to be on the safe side I think.
Ok, makes sense. Thanks for the clarification.
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
_______________________________________________
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:[~2019-03-29 17:18 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-28 10:13 [PATCH 0/3] cpu_cooling: Make IPA use PM_EM Quentin Perret
2019-03-28 10:13 ` [PATCH 1/3] arm64: defconfig: Enable CONFIG_ENERGY_MODEL Quentin Perret
2019-03-28 10:22 ` Quentin Perret
2019-03-28 17:27 ` Daniel Lezcano
2019-03-28 17:42 ` Quentin Perret
2019-03-28 19:51 ` Daniel Lezcano
2019-03-29 9:03 ` Quentin Perret
2019-03-28 10:13 ` [PATCH 2/3] PM / EM: Expose perf domain struct Quentin Perret
2019-03-28 10:13 ` [PATCH 3/3] thermal: cpu_cooling: Migrate to using the EM framework Quentin Perret
2019-03-28 20:23 ` Daniel Lezcano
2019-03-29 9:16 ` Quentin Perret
2019-03-29 17:17 ` Daniel Lezcano [this message]
2019-04-10 5:44 ` Viresh Kumar
2019-04-10 8:57 ` Quentin Perret
2019-04-10 10:14 ` Viresh Kumar
2019-04-10 10:36 ` Quentin Perret
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=eeaf6156-c591-cc21-d097-b6c5cdb62a5a@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=amit.kachhap@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=edubezval@gmail.com \
--cc=ionela.voinescu@arm.com \
--cc=javi.merino@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=quentin.perret@arm.com \
--cc=rjw@rjwysocki.net \
--cc=rui.zhang@intel.com \
--cc=viresh.kumar@linaro.org \
--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).