From: Amit Kucheria <amit.kucheria@verdurent.com>
To: Thara Gopinath <thara.gopinath@linaro.org>
Cc: Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
ionela.voinescu@arm.com,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Zhang Rui <rui.zhang@intel.com>,
qperret@google.com, Daniel Lezcano <daniel.lezcano@linaro.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
Steven Rostedt <rostedt@goodmis.org>,
Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Sudeep Holla <sudeep.holla@arm.com>,
Juri Lelli <juri.lelli@redhat.com>,
Jonathan Corbet <corbet@lwn.net>,
LKML <linux-kernel@vger.kernel.org>,
Amit Daniel Kachhap <amit.kachhap@gmail.com>,
Javi Merino <javi.merino@kernel.org>
Subject: Re: [Patch v10 6/9] sched/fair: Enable periodic update of average thermal pressure
Date: Thu, 27 Feb 2020 14:33:01 +0530 [thread overview]
Message-ID: <CAHLCerNWYHSE=0m_AqH2UY6gKvK7EV64JaZxnLC_TufNrO7ZBg@mail.gmail.com> (raw)
In-Reply-To: <20200222005213.3873-7-thara.gopinath@linaro.org>
On Sat, Feb 22, 2020 at 6:22 AM Thara Gopinath
<thara.gopinath@linaro.org> wrote:
>
> Introduce support in scheduler periodic tick and other CFS bookkeeping
> apis to trigger the process of computing average thermal pressure for a
> cpu. Also consider avg_thermal.load_avg in others_have_blocked which
> allows for decay of pelt signals.
>
> Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org>
> ---
> v8->v9:
> - Moved periodic triggering of thermal pressure averaging from CFS
> tick function to generic scheduler core tick function as per
> Peter's review comments.
>
> kernel/sched/core.c | 3 +++
> kernel/sched/fair.c | 7 +++++++
> 2 files changed, 10 insertions(+)
Hi Thara,
This patch has a fuzz while applying to v5.6-rc2. Just FYI.
Regards,
Amit
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index e94819d573be..160b5e9e8945 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -3588,6 +3588,7 @@ void scheduler_tick(void)
> struct rq *rq = cpu_rq(cpu);
> struct task_struct *curr = rq->curr;
> struct rq_flags rf;
> + unsigned long thermal_pressure;
>
> arch_scale_freq_tick();
> sched_clock_tick();
> @@ -3595,6 +3596,8 @@ void scheduler_tick(void)
> rq_lock(rq, &rf);
>
> update_rq_clock(rq);
> + thermal_pressure = arch_scale_thermal_pressure(cpu_of(rq));
> + update_thermal_load_avg(rq_clock_task(rq), rq, thermal_pressure);
> curr->sched_class->task_tick(rq, curr, 0);
> calc_global_load_tick(rq);
> psi_task_tick(rq);
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index f38ff5a335d3..00b21a5b71f0 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -7536,6 +7536,9 @@ static inline bool others_have_blocked(struct rq *rq)
> if (READ_ONCE(rq->avg_dl.util_avg))
> return true;
>
> + if (thermal_load_avg(rq))
> + return true;
> +
> #ifdef CONFIG_HAVE_SCHED_AVG_IRQ
> if (READ_ONCE(rq->avg_irq.util_avg))
> return true;
> @@ -7561,6 +7564,7 @@ static bool __update_blocked_others(struct rq *rq, bool *done)
> {
> const struct sched_class *curr_class;
> u64 now = rq_clock_pelt(rq);
> + unsigned long thermal_pressure;
> bool decayed;
>
> /*
> @@ -7569,8 +7573,11 @@ static bool __update_blocked_others(struct rq *rq, bool *done)
> */
> curr_class = rq->curr->sched_class;
>
> + thermal_pressure = arch_scale_thermal_pressure(cpu_of(rq));
> +
> decayed = update_rt_rq_load_avg(now, rq, curr_class == &rt_sched_class) |
> update_dl_rq_load_avg(now, rq, curr_class == &dl_sched_class) |
> + update_thermal_load_avg(rq_clock_task(rq), rq, thermal_pressure) |
> update_irq_load_avg(rq, 0);
>
> if (others_have_blocked(rq))
> --
> 2.20.1
>
next prev parent reply other threads:[~2020-02-27 9:03 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-22 0:52 [Patch v10 0/9] Introduce Thermal Pressure Thara Gopinath
2020-02-22 0:52 ` [Patch v10 1/9] sched/pelt: Add support to track thermal pressure Thara Gopinath
2020-02-22 0:59 ` Randy Dunlap
2020-02-22 18:27 ` Thara Gopinath
2020-02-22 18:50 ` Randy Dunlap
2020-02-24 14:33 ` Thara Gopinath
2020-02-25 15:47 ` Peter Zijlstra
2020-02-25 16:43 ` Thara Gopinath
2020-03-06 14:42 ` [tip: sched/core] " tip-bot2 for Thara Gopinath
2020-02-22 0:52 ` [Patch v10 2/9] sched/topology: Add hook to read per cpu " Thara Gopinath
2020-03-06 14:42 ` [tip: sched/core] sched/topology: Add callback to read per CPU " tip-bot2 for Thara Gopinath
2020-02-22 0:52 ` [Patch v10 3/9] drivers/base/arch_topology: Add infrastructure to store and update instantaneous " Thara Gopinath
2020-03-06 14:42 ` [tip: sched/core] " tip-bot2 for Thara Gopinath
2020-02-22 0:52 ` [Patch v10 4/9] arm64/topology: Populate arch_scale_thermal_pressure for arm64 platforms Thara Gopinath
2020-03-06 14:42 ` [tip: sched/core] arm64/topology: Populate arch_scale_thermal_pressure() " tip-bot2 for Thara Gopinath
2020-02-22 0:52 ` [Patch v10 5/9] arm/topology: Populate arch_scale_thermal_pressure for arm platforms Thara Gopinath
2020-03-06 14:42 ` [tip: sched/core] arm/topology: Populate arch_scale_thermal_pressure() for ARM platforms tip-bot2 for Thara Gopinath
2020-02-22 0:52 ` [Patch v10 6/9] sched/fair: Enable periodic update of average thermal pressure Thara Gopinath
2020-02-27 9:03 ` Amit Kucheria [this message]
2020-03-06 14:42 ` [tip: sched/core] " tip-bot2 for Thara Gopinath
2020-02-22 0:52 ` [Patch v10 7/9] sched/fair: update cpu_capacity to reflect " Thara Gopinath
2020-03-06 14:42 ` [tip: sched/core] sched/fair: Update " tip-bot2 for Thara Gopinath
2020-02-22 0:52 ` [Patch v10 8/9] thermal/cpu-cooling: Update thermal pressure in case of a maximum frequency capping Thara Gopinath
2020-03-06 14:42 ` [tip: sched/core] " tip-bot2 for Thara Gopinath
2020-02-22 0:52 ` [Patch v10 9/9] sched/fair: Enable tuning of decay period Thara Gopinath
2020-03-06 14:42 ` [tip: sched/core] " tip-bot2 for Thara Gopinath
2020-02-27 9:01 ` [Patch v10 0/9] Introduce Thermal Pressure Amit Kucheria
[not found] ` <CAP=VYLqWfqOZT6ec9cKyKOsOhu7HhVn2f_eU+ca006i4CV8R-w@mail.gmail.com>
2020-04-16 13:40 ` Thara Gopinath
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='CAHLCerNWYHSE=0m_AqH2UY6gKvK7EV64JaZxnLC_TufNrO7ZBg@mail.gmail.com' \
--to=amit.kucheria@verdurent.com \
--cc=amit.kachhap@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=daniel.lezcano@linaro.org \
--cc=dietmar.eggemann@arm.com \
--cc=ionela.voinescu@arm.com \
--cc=javi.merino@kernel.org \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=qperret@google.com \
--cc=rostedt@goodmis.org \
--cc=rui.zhang@intel.com \
--cc=sudeep.holla@arm.com \
--cc=thara.gopinath@linaro.org \
--cc=vincent.guittot@linaro.org \
--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 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.