From: Thara Gopinath <thara.gopinath@linaro.org>
To: Ionela Voinescu <ionela.voinescu@arm.com>
Cc: mingo@redhat.com, peterz@infradead.org,
vincent.guittot@linaro.org, rui.zhang@intel.com,
edubezval@gmail.com, qperret@google.com,
linux-kernel@vger.kernel.org, amit.kachhap@gmail.com,
javi.merino@kernel.org, daniel.lezcano@linaro.org
Subject: Re: [Patch v4 0/6] Introduce Thermal Pressure
Date: Thu, 31 Oct 2019 12:41:20 -0400 [thread overview]
Message-ID: <5DBB0EB0.9050106@linaro.org> (raw)
In-Reply-To: <20191031094420.GA19197@e108754-lin>
On 10/31/2019 05:44 AM, Ionela Voinescu wrote:
> Hi Thara,
>
> On Tuesday 22 Oct 2019 at 16:34:19 (-0400), Thara Gopinath wrote:
>> Thermal governors can respond to an overheat event of a cpu by
>> capping the cpu's maximum possible frequency. This in turn
>> means that the maximum available compute capacity of the
>> cpu is restricted. But today in the kernel, task scheduler is
>> not notified of capping of maximum frequency of a cpu.
>> In other words, scheduler is unware of maximum capacity
>
> Nit: s/unware/unaware
>
>> restrictions placed on a cpu due to thermal activity.
>> This patch series attempts to address this issue.
>> The benefits identified are better task placement among available
>> cpus in event of overheating which in turn leads to better
>> performance numbers.
>>
>> The reduction in the maximum possible capacity of a cpu due to a
>> thermal event can be considered as thermal pressure. Instantaneous
>> thermal pressure is hard to record and can sometime be erroneous
>> as there can be mismatch between the actual capping of capacity
>> and scheduler recording it. Thus solution is to have a weighted
>> average per cpu value for thermal pressure over time.
>> The weight reflects the amount of time the cpu has spent at a
>> capped maximum frequency. Since thermal pressure is recorded as
>> an average, it must be decayed periodically. Exisiting algorithm
>> in the kernel scheduler pelt framework is re-used to calculate
>> the weighted average. This patch series also defines a sysctl
>> inerface to allow for a configurable decay period.
>>
>> Regarding testing, basic build, boot and sanity testing have been
>> performed on db845c platform with debian file system.
>> Further, dhrystone and hackbench tests have been
>> run with the thermal pressure algorithm. During testing, due to
>> constraints of step wise governor in dealing with big little systems,
>> trip point 0 temperature was made assymetric between cpus in little
>> cluster and big cluster; the idea being that
>> big core will heat up and cpu cooling device will throttle the
>> frequency of the big cores faster, there by limiting the maximum available
>> capacity and the scheduler will spread out tasks to little cores as well.
>>
>
> Can you please share the changes you've made to sdm845.dtsi and a kernel
> base on top of which to apply your patches? I would like to reproduce
> your results and run more tests and it would be good if our setups were
> as close as possible.
Hi Ionela
Thank you for the review.
So I tested this on 5.4-rc1 kernel. The dtsi changes is to reduce the
thermal trip points for the big CPUs to 60000 or 70000 from the default
90000. I did this for 2 reasons
1. I could never get the db845 to heat up sufficiently for my test cases
with the default trip.
2. I was using the default step-wise governor for thermal. I did not
want little and big to start throttling by the same % because then the
task placement ratio will remain the same between little and big cores.
>
>> Test Results
>>
>> Hackbench: 1 group , 30000 loops, 10 runs
>> Result SD
>> (Secs) (% of mean)
>> No Thermal Pressure 14.03 2.69%
>> Thermal Pressure PELT Algo. Decay : 32 ms 13.29 0.56%
>> Thermal Pressure PELT Algo. Decay : 64 ms 12.57 1.56%
>> Thermal Pressure PELT Algo. Decay : 128 ms 12.71 1.04%
>> Thermal Pressure PELT Algo. Decay : 256 ms 12.29 1.42%
>> Thermal Pressure PELT Algo. Decay : 512 ms 12.42 1.15%
>>
>> Dhrystone Run Time : 20 threads, 3000 MLOOPS
>> Result SD
>> (Secs) (% of mean)
>> No Thermal Pressure 9.452 4.49%
>> Thermal Pressure PELT Algo. Decay : 32 ms 8.793 5.30%
>> Thermal Pressure PELT Algo. Decay : 64 ms 8.981 5.29%
>> Thermal Pressure PELT Algo. Decay : 128 ms 8.647 6.62%
>> Thermal Pressure PELT Algo. Decay : 256 ms 8.774 6.45%
>> Thermal Pressure PELT Algo. Decay : 512 ms 8.603 5.41%
>>
>
> Do you happen to know by how much the CPUs were capped during these
> experiments?
I don't have any captured results here. I know that big cores were
capped and at times there was capacity inversion.
Also I will fix the nit comments above.
>
> Thanks,
> Ionela.
>
--
Warm Regards
Thara
next prev parent reply other threads:[~2019-10-31 16:41 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-22 20:34 [Patch v4 0/6] Introduce Thermal Pressure Thara Gopinath
2019-10-22 20:34 ` [Patch v4 1/6] sched/pelt.c: Add support to track thermal pressure Thara Gopinath
2019-10-31 9:47 ` Ionela Voinescu
2019-10-22 20:34 ` [Patch v4 2/6] sched: Add infrastructure to store and update instantaneous " Thara Gopinath
2019-10-28 15:21 ` Peter Zijlstra
2019-10-30 21:37 ` Thara Gopinath
2019-11-01 12:17 ` Dietmar Eggemann
2019-11-01 20:57 ` Thara Gopinath
2019-11-04 17:29 ` Dietmar Eggemann
2019-11-04 17:34 ` Vincent Guittot
2019-11-04 17:41 ` Dietmar Eggemann
2019-11-04 17:48 ` Vincent Guittot
2019-10-22 20:34 ` [Patch v4 3/6] sched/fair: Enable CFS periodic tick to update " Thara Gopinath
2019-10-28 15:24 ` Peter Zijlstra
2019-10-28 15:27 ` Peter Zijlstra
2019-10-30 21:41 ` Thara Gopinath
2019-10-31 16:11 ` Dietmar Eggemann
2019-10-31 16:46 ` Thara Gopinath
2019-10-22 20:34 ` [Patch v4 4/6] sched/fair: update cpu_capcity to reflect " Thara Gopinath
2019-10-23 12:28 ` Qais Yousef
2019-10-28 15:30 ` Peter Zijlstra
2019-10-31 10:53 ` Qais Yousef
2019-10-31 15:38 ` Dietmar Eggemann
2019-10-31 15:48 ` Vincent Guittot
2019-10-31 16:17 ` Dietmar Eggemann
2019-10-31 16:31 ` Vincent Guittot
2019-10-31 16:44 ` Dietmar Eggemann
2019-10-31 16:03 ` Thara Gopinath
2019-10-31 16:56 ` Qais Yousef
2019-10-22 20:34 ` [Patch v4 5/6] thermal/cpu-cooling: Update thermal pressure in case of a maximum frequency capping Thara Gopinath
2019-10-28 15:33 ` Peter Zijlstra
2019-10-31 16:29 ` Dietmar Eggemann
2019-10-31 16:38 ` Vincent Guittot
2019-11-01 15:47 ` Ionela Voinescu
2019-11-01 21:04 ` Thara Gopinath
2019-11-04 14:41 ` Ionela Voinescu
2019-10-31 16:46 ` Thara Gopinath
2019-10-22 20:34 ` [Patch v4 6/6] sched: thermal: Enable tuning of decay period Thara Gopinath
2019-10-28 15:42 ` Peter Zijlstra
2019-11-04 16:12 ` Ionela Voinescu
2019-11-05 20:26 ` Thara Gopinath
2019-11-05 21:29 ` Ionela Voinescu
2019-10-29 15:34 ` [Patch v4 0/6] Introduce Thermal Pressure Daniel Lezcano
2019-10-31 10:07 ` Ionela Voinescu
2019-10-31 11:54 ` Daniel Lezcano
2019-10-31 12:57 ` Ionela Voinescu
2019-10-31 17:48 ` Daniel Lezcano
2019-10-31 9:44 ` Ionela Voinescu
2019-10-31 16:41 ` Thara Gopinath [this message]
2019-10-31 16:52 ` Thara Gopinath
2019-11-05 21:04 ` Ionela Voinescu
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=5DBB0EB0.9050106@linaro.org \
--to=thara.gopinath@linaro.org \
--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=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 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).