linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Quentin Perret <quentin.perret@arm.com>,
	edubezval@gmail.com, rui.zhang@intel.com, javi.merino@kernel.org,
	viresh.kumar@linaro.org, amit.kachhap@gmail.com,
	rjw@rjwysocki.net, catalin.marinas@arm.com, will@kernel.org
Cc: dietmar.eggemann@arm.com, ionela.voinescu@arm.com,
	mka@chromium.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v6 0/3] Make IPA use PM_EM
Date: Thu, 1 Aug 2019 15:00:10 +0200	[thread overview]
Message-ID: <ba2cd83a-7c3b-9f75-2413-a0ef3ed463d3@linaro.org> (raw)
In-Reply-To: <20190801124643.17112-1-quentin.perret@arm.com>


Hi Rui,

is it possible to merge these patches? They are acked-by since May.

Thanks

  -- Daniel


On 01/08/2019 14:46, Quentin Perret wrote:
> Changes in v6
> *************
>  - Added Daniel's and Viresh's Acked-by to all patches
> 
> Changes in v5:
> **************
>  - Changed patch 02 to guard IPA-specific code in cpu_cooling.c with
>    appropriate ifdefery (Daniel)
>  - Rebased on 5.2-rc2
> 
> Changes in v4:
> **************
>  - Added Viresh's Acked-by to all 3 patches
>  - Improved commit message of patch 3/3 to explain how it has no
>    functional impact on existing users (Eduardo)
> 
> Changes in v3:
> **************
>  - Changed warning message for unordered tables to something more
>    explicit (Viresh)
>  - Changed WARN() into a pr_err() for consistency
> 
> Changes in v2:
> **************
>  - Fixed patch 01/03 to actually enable CONFIG_ENERGY_MODEL
>  - Added "depends on ENERGY_MODEL" to IPA (Daniel)
>  - Added check to bail out if the freq table is unsorted (Viresh)
> 
> Cover letter:
> *************
> 
> The Intelligent Power Allocator (IPA) thermal governor uses an Energy
> Model (or EM) of the CPUs to re-distribute the power budget. To do so,
> it builds a table of <frequency, power> tuples where the power values
> are computed using the 'dynamic-power-coefficient' DT property. All of
> this is done in and only for the thermal subsystem, and more
> specifically for CPUs -- the power of other types of devices is obtained
> differently.
> 
> Recently, the CPU scheduler has seen the introduction of Energy Aware
> Scheduling (EAS) patches, which also rely on an EM of the CPUs. This EM,
> however, is managed by an independent framework, called PM_EM, aimed to
> be used by all kernel subsystems interested in the power consumed by
> CPUs, and not only the scheduler.
> 
> This patch series follows this logic and removes the (now redundant)
> thermal-specific EM computation code to migrate IPA to use PM_EM
> instead.
> 
> Doing so should have no visible functional impact for existing users of
> IPA since:
> 
>  - during the 5.1 development cycle, a series of patches [1] introduced
>    in PM_OPP some infrastructure (dev_pm_opp_of_register_em()) enabling
>    the registration of EMs in PM_EM using the DT property used by IPA;
> 
>  - the existing upstream cpufreq drivers marked with the
>    'CPUFREQ_IS_COOLING_DEV' flag all call dev_pm_opp_of_register_em(),
>    which means they all support PM_EM (the only two exceptions are
>    qoriq-cpufreq which doesn't in fact use an EM and scmi-cpufreq which
>    already supports PM_EM without using the PM_OPP infrastructurei
>    because it read power costs directly from firmware);
> 
> So, migrating IPA to using PM_EM should effectively be just plumbing
> since for the existing IPA users the PM_EM tables will contain the
> exact same power values that IPA used to compute on its own until now.
> The only new dependency is to compile in CONFIG_ENERGY_MODEL.
> 
> Why is this migration still a good thing ? For three main reasons.
> 
>  1. it removes redundant code;
> 
>  2. it introduces an abstraction layer between IPA and the EM
>     computation. PM_EM offers to EAS and IPA (and potentially other
>     clients) standardized EM tables and hides 'how' these tables have
>     been obtained. PM_EM as of now supports power values either coming
>     from the 'dynamic-power-coefficient' DT property or obtained
>     directly from firmware using SCMI. The latter is a new feature for
>     IPA and that comes 'for free' with the migration. This will also be
>     true in the future every time PM_EM gets support for other ways of
>     loading the EM. Moreover, PM_EM is documented and has a debugfs
>     interface which should help adding support for new platforms.
> 
>  3. it builds a consistent view of the EM of CPUs across kernel
>     subsystems, which is a pre-requisite for any kind of future work
>     aiming at a smarter power allocation using scheduler knowledge about
>     the system for example.
> 
> [1] https://lore.kernel.org/lkml/20190204110952.16025-1-quentin.perret@arm.com/
> 
> 
> Quentin Perret (3):
>   arm64: defconfig: Enable CONFIG_ENERGY_MODEL
>   thermal: cpu_cooling: Make the power-related code depend on IPA
>   thermal: cpu_cooling: Migrate to using the EM framework
> 
>  arch/arm64/configs/defconfig  |   1 +
>  drivers/thermal/Kconfig       |   1 +
>  drivers/thermal/cpu_cooling.c | 428 ++++++++++++++--------------------
>  3 files changed, 178 insertions(+), 252 deletions(-)
> 


-- 
 <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


      parent reply	other threads:[~2019-08-01 13:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-01 12:46 [PATCH v6 0/3] Make IPA use PM_EM Quentin Perret
2019-08-01 12:46 ` [PATCH v6 1/3] arm64: defconfig: Enable CONFIG_ENERGY_MODEL Quentin Perret
2019-08-01 12:46 ` [PATCH v6 2/3] thermal: cpu_cooling: Make the power-related code depend on IPA Quentin Perret
2019-08-01 12:46 ` [PATCH v6 3/3] thermal: cpu_cooling: Migrate to using the EM framework Quentin Perret
2019-08-07 15:42   ` Quentin Perret
2019-08-01 13:00 ` Daniel Lezcano [this message]

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=ba2cd83a-7c3b-9f75-2413-a0ef3ed463d3@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=mka@chromium.org \
    --cc=quentin.perret@arm.com \
    --cc=rjw@rjwysocki.net \
    --cc=rui.zhang@intel.com \
    --cc=viresh.kumar@linaro.org \
    --cc=will@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).