All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dietmar Eggemann <dietmar.eggemann@arm.com>
To: Thara Gopinath <thara.gopinath@linaro.org>,
	mingo@redhat.com, peterz@infradead.org, ionela.voinescu@arm.com,
	vincent.guittot@linaro.org, rui.zhang@intel.com,
	edubezval@gmail.com, qperret@google.com
Cc: linux-kernel@vger.kernel.org, amit.kachhap@gmail.com,
	javi.merino@kernel.org, daniel.lezcano@linaro.org
Subject: Re: [Patch v5 1/6] sched/pelt.c: Add support to track thermal pressure
Date: Wed, 6 Nov 2019 13:50:21 +0100	[thread overview]
Message-ID: <6e2b2a11-834d-a0ee-a386-1edc624a8050@arm.com> (raw)
In-Reply-To: <1572979786-20361-2-git-send-email-thara.gopinath@linaro.org>

On 05/11/2019 19:49, Thara Gopinath wrote:
> Extrapolating on the exisiting framework to track rt/dl utilization using

s/exisiting/existing

> pelt signals, add a similar mechanism to track thermal pressure. The
> difference here from rt/dl utilization tracking is that, instead of
> tracking time spent by a cpu running a rt/dl task through util_avg,
> the average thermal pressure is tracked through load_avg. This is
> because thermal pressure signal is weighted "delta" capacity
> and is not binary(util_avg is binary). "delta capacity" here
> means delta between the actual capacity of a cpu and the decreased
> capacity a cpu due to a thermal event.
> In order to track average thermal pressure, a new sched_avg variable
> avg_thermal is introduced. Function update_thermal_load_avg can be called
> to do the periodic bookeeping (accumulate, decay and average)

s/bookeeping/bookkeeping

> of the thermal pressure.
> 
> Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org>
> ---
>  kernel/sched/pelt.c  | 13 +++++++++++++
>  kernel/sched/pelt.h  |  7 +++++++
>  kernel/sched/sched.h |  1 +
>  3 files changed, 21 insertions(+)
> 
> diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c
> index a96db50..3821069 100644
> --- a/kernel/sched/pelt.c
> +++ b/kernel/sched/pelt.c
> @@ -353,6 +353,19 @@ int update_dl_rq_load_avg(u64 now, struct rq *rq, int running)
>  	return 0;
>  }

Minor thing: There are function headers for rt_rq, dl_rq and irq. rt_rq
even explains that 'load_avg and runnable_load_avg are not supported and
meaningless.' Could you do something similar for thermal here? It's not
self-explanatory why we track load_avg, runnable_load_avg and util_avg
for thermal but only use load_avg.

> +int update_thermal_load_avg(u64 now, struct rq *rq, u64 capacity)
> +{
> +	if (___update_load_sum(now, &rq->avg_thermal,
> +			       capacity,
> +			       capacity,
> +			       capacity)) {
> +		___update_load_avg(&rq->avg_thermal, 1, 1);
> +		return 1;
> +	}
> +
> +	return 0;
> +}
> +

[...]

  parent reply	other threads:[~2019-11-06 12:50 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-05 18:49 [Patch v5 0/6] Introduce Thermal Pressure Thara Gopinath
2019-11-05 18:49 ` [Patch v5 1/6] sched/pelt.c: Add support to track thermal pressure Thara Gopinath
2019-11-06  8:24   ` Vincent Guittot
2019-11-06 12:50   ` Dietmar Eggemann [this message]
2019-11-06 17:00     ` Thara Gopinath
2019-11-07 16:39   ` Qais Yousef
2019-11-19 10:50   ` Amit Kucheria
2019-11-05 18:49 ` [Patch v5 2/6] sched/fair: Add infrastructure to store and update instantaneous " Thara Gopinath
2019-11-05 20:21   ` Ionela Voinescu
2019-11-05 21:02     ` Thara Gopinath
2019-11-05 21:15       ` Ionela Voinescu
2019-11-05 21:29         ` Thara Gopinath
2019-11-05 21:53           ` Ionela Voinescu
2019-11-06 12:50             ` Dietmar Eggemann
2019-11-06 17:53               ` Thara Gopinath
2019-11-07  9:32                 ` Dietmar Eggemann
2019-11-07 10:48                   ` Vincent Guittot
2019-11-07 11:36                     ` Dietmar Eggemann
2019-11-06  8:27   ` Vincent Guittot
2019-11-06 17:00     ` Thara Gopinath
2019-11-19 10:51   ` Amit Kucheria
2019-11-05 18:49 ` [Patch v5 3/6] sched/fair: Enable periodic update of average " Thara Gopinath
2019-11-06  8:32   ` Vincent Guittot
2019-11-06 17:01     ` Thara Gopinath
2019-11-05 18:49 ` [Patch v5 4/6] sched/fair: update cpu_capcity to reflect " Thara Gopinath
2019-11-06 16:56   ` Qais Yousef
2019-11-06 17:31     ` Thara Gopinath
2019-11-06 17:41       ` Qais Yousef
2019-11-19 10:51   ` Amit Kucheria
2019-11-05 18:49 ` [Patch v5 5/6] thermal/cpu-cooling: Update thermal pressure in case of a maximum frequency capping Thara Gopinath
2019-11-06 12:50   ` Dietmar Eggemann
2019-11-06 17:28     ` Thara Gopinath
2019-11-07 13:00     ` Dietmar Eggemann
2019-11-05 18:49 ` [Patch v5 6/6] sched/fair: Enable tuning of decay period Thara Gopinath
2019-11-07 10:49   ` Vincent Guittot
2019-11-08 10:53     ` Dietmar Eggemann
2019-11-19 10:52   ` Amit Kucheria
2019-11-12 11:21 ` [Patch v5 0/6] Introduce Thermal Pressure Lukasz Luba
2019-11-19 15:12   ` Lukasz Luba
2019-11-19 10:54 ` Amit Kucheria

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=6e2b2a11-834d-a0ee-a386-1edc624a8050@arm.com \
    --to=dietmar.eggemann@arm.com \
    --cc=amit.kachhap@gmail.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=edubezval@gmail.com \
    --cc=ionela.voinescu@arm.com \
    --cc=javi.merino@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=qperret@google.com \
    --cc=rui.zhang@intel.com \
    --cc=thara.gopinath@linaro.org \
    --cc=vincent.guittot@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.