Re: [RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware

2019-10-18 Thread Douglas Raillard
On 10/18/19 8:59 AM, Peter Zijlstra wrote: > On Fri, Oct 18, 2019 at 09:44:44AM +0200, Dietmar Eggemann wrote: >> On 17/10/2019 16:11, Peter Zijlstra wrote: >>> On Thu, Oct 17, 2019 at 12:11:16PM +0100, Quentin Perret wrote: >> >> [...] >> >>> It only boosts when 'rq->cfs.avg.util' increases whi

Re: [RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware

2019-10-18 Thread Douglas Raillard
On 10/18/19 4:15 PM, Vincent Guittot wrote: > On Fri, 18 Oct 2019 at 16:44, Douglas Raillard > wrote: >> >> >> >> On 10/18/19 1:07 PM, Peter Zijlstra wrote: >>> On Fri, Oct 18, 2019 at 12:46:25PM +0100, Douglas Raillard wrote: >>> >>>&g

Re: [RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware

2019-10-18 Thread Douglas Raillard
On 10/18/19 1:07 PM, Peter Zijlstra wrote: On Fri, Oct 18, 2019 at 12:46:25PM +0100, Douglas Raillard wrote: What I don't see is how that that difference makes sense as input to: cost(x) : (1 + x) * cost_j The actual input is: x = (EM_COST_MARGIN_SCALE/SCHED_CAPACITY_SCALE) *

Re: [RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware

2019-10-18 Thread Douglas Raillard
On 10/17/19 8:07 PM, Peter Zijlstra wrote: On Thu, Oct 17, 2019 at 03:23:04PM +0100, Douglas Raillard wrote: On 10/17/19 10:50 AM, Peter Zijlstra wrote: I'm still thinking about the exact means you're using to raise C; that is, the 'util - util_est' as cost_margin. It

Re: [RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware

2019-10-17 Thread Douglas Raillard
Hi Peter, On 10/17/19 10:50 AM, Peter Zijlstra wrote: On Mon, Oct 14, 2019 at 04:50:24PM +0100, Douglas Raillard wrote: I posted some numbers based on a similar experiment on the v2 of that series that are still applicable: TL;DR the rt-app negative slack is divided by 1.75 by this series

Re: [RFC PATCH v3 4/6] sched/cpufreq: Introduce sugov_cpu_ramp_boost

2019-10-17 Thread Douglas Raillard
On 10/17/19 9:57 AM, Dietmar Eggemann wrote: On 11/10/2019 15:44, Douglas RAILLARD wrote: [...] @@ -181,6 +185,42 @@ static void sugov_deferred_update(struct sugov_policy *sg_policy, u64 time, } } +static unsigned long sugov_cpu_ramp_boost(struct sugov_cpu *sg_cpu

Re: [RFC PATCH v3 1/6] PM: Introduce em_pd_get_higher_freq()

2019-10-17 Thread Douglas Raillard
Hi Dietmar, On 10/17/19 10:58 AM, Dietmar Eggemann wrote: On 11/10/2019 15:44, Douglas RAILLARD wrote: [...] diff --git a/include/linux/energy_model.h b/include/linux/energy_model.h index d249b88a4d5a..dd6a35f099ea 100644 --- a/include/linux/energy_model.h +++ b/include/linux/energy_model.h

Re: [RFC PATCH v3 2/6] sched/cpufreq: Attach perf domain to sugov policy

2019-10-17 Thread Douglas Raillard
Hi Dietmar, On 10/17/19 9:57 AM, Dietmar Eggemann wrote: On 11/10/2019 15:44, Douglas RAILLARD wrote: [...] @@ -66,6 +70,38 @@ static DEFINE_PER_CPU(struct sugov_cpu, sugov_cpu); / Governor internals ***/ +#ifdef CONFIG_ENERGY_MODEL

Re: [PATCH] sched/fair: util_est: fast ramp-up EWMA on utilization increases

2019-10-14 Thread Douglas Raillard
Hi Peter, On 10/14/19 3:52 PM, Peter Zijlstra wrote: The energy aware schedutil patches remimded me this was still pending. On Fri, Aug 02, 2019 at 10:47:25AM +0100, Patrick Bellasi wrote: Hi Peter, Vincent, is there anything different I can do on this? I think both Vincent and me are basic

Re: [RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware

2019-10-14 Thread Douglas Raillard
Hi Peter, On 10/14/19 3:53 PM, Peter Zijlstra wrote: On Fri, Oct 11, 2019 at 02:44:54PM +0100, Douglas RAILLARD wrote: This has been ligthly tested with a rtapp task ramping from 10% to 75% utilisation on a big core. Results are improved by fast ramp-up EWMA [1], since it greatly reduces the

Re: [RFC PATCH v3 4/6] sched/cpufreq: Introduce sugov_cpu_ramp_boost

2019-10-14 Thread Douglas Raillard
Hi Peter, On 10/14/19 3:33 PM, Peter Zijlstra wrote: On Fri, Oct 11, 2019 at 02:44:58PM +0100, Douglas RAILLARD wrote: Use the utilization signals dynamic to detect when the utilization of a set of tasks starts increasing because of a change in tasks' behavior. This allows detecting

[RFC PATCH v3 4/6] sched/cpufreq: Introduce sugov_cpu_ramp_boost

2019-10-11 Thread Douglas RAILLARD
st is disabled as the impact of blocked utilization on util_avg will make the delta with util_est_enqueued not very informative. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 44 1 file changed, 44 insertions(+) diff --git a/kernel/

[RFC PATCH v3 1/6] PM: Introduce em_pd_get_higher_freq()

2019-10-11 Thread Douglas RAILLARD
with the same efficiency are assumed to be equivalent, since they will consume as much energy for a given amount of work to do. That may take more or less time depending on the frequency, but will consume the same energy. Signed-off-by: Douglas RAILLARD --- include/linux/energy_model.h | 53

[RFC PATCH v3 5/6] sched/cpufreq: Boost schedutil frequency ramp up

2019-10-11 Thread Douglas RAILLARD
maximum of all CPU's boost is used. Since the extra power expenditure is bounded, it cannot skyrocket even on platforms with a large number of cores in the same frequency domain and/or very high ratio between lowest and highest OPP cost. Signed-off-by: Douglas RAILLARD --- kernel/

[RFC PATCH v3 2/6] sched/cpufreq: Attach perf domain to sugov policy

2019-10-11 Thread Douglas RAILLARD
Attach an Energy Model perf_domain to each sugov_policy to prepare the ground for energy-aware schedutil. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 39 1 file changed, 39 insertions(+) diff --git a/kernel/sched/cpufreq_schedutil.c b

[RFC PATCH v3 3/6] sched/cpufreq: Hook em_pd_get_higher_power() into get_next_freq()

2019-10-11 Thread Douglas RAILLARD
circumstances. This also prepares the ground for energy-aware frequency boosting. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 8 1 file changed, 8 insertions(+) diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 9abda58827c0

[RFC PATCH v3 6/6] sched/cpufreq: Add schedutil_em_tp tracepoint

2019-10-11 Thread Douglas RAILLARD
Introduce a new tracepoint reporting the effect of using the Energy Model inside get_next_freq() in schedutil. Signed-off-by: Douglas RAILLARD --- include/trace/events/power.h | 9 + kernel/sched/cpufreq_schedutil.c | 20 ++-- 2 files changed, 23 insertions(+), 6

[RFC PATCH v3 0/6] sched/cpufreq: Make schedutil energy aware

2019-10-11 Thread Douglas RAILLARD
_update() to avoid boosting when the utilization is decreasing. * Add a tracepoint for testing. Douglas RAILLARD (6): PM: Introduce em_pd_get_higher_freq() sched/cpufreq: Attach perf domain to sugov policy sched/cpufreq: Hook em_pd_get_higher_power() into get_next_freq() sched/cpufreq: Int

Re: [RFC PATCH v2 0/5] sched/cpufreq: Make schedutil energy aware

2019-08-09 Thread Douglas Raillard
Hi Patrick, On 7/9/19 11:37 AM, Patrick Bellasi wrote: On 08-Jul 14:46, Douglas Raillard wrote: Hi Patrick, On 7/8/19 12:09 PM, Patrick Bellasi wrote: On 03-Jul 17:36, Douglas Raillard wrote: On 7/2/19 4:51 PM, Peter Zijlstra wrote: On Thu, Jun 27, 2019 at 06:15:58PM +0100, Douglas

Re: [PATCH 1/2] cpufreq: drivers: Enable frequency invariance in qcom-cpufreq-hw

2019-08-09 Thread Douglas Raillard
Hi Quentin, On 8/8/19 6:32 PM, Quentin Perret wrote: Hi Douglas, On Thursday 08 Aug 2019 at 14:18:57 (+0100), Douglas RAILLARD wrote: Add calls to arch_set_freq_scale() in qcom-cpufreq-hw driver to enable frequency invariance. Is there a patch 2/2 ? That slipped through when format-patch

Re: [PATCH] sched/cpufreq: Align trace event behavior of fast switching

2019-08-08 Thread Douglas Raillard
Hi Rafael, On 8/7/19 9:40 PM, Rafael J. Wysocki wrote: On Wed, Aug 7, 2019 at 5:34 PM Douglas RAILLARD wrote: Fast switching path only emits an event for the CPU of interest, whereas the regular path emits an event for all the CPUs that had their frequency changed, i.e. all the CPUs sharing

[PATCH 1/2] cpufreq: drivers: Enable frequency invariance in qcom-cpufreq-hw

2019-08-08 Thread Douglas RAILLARD
Add calls to arch_set_freq_scale() in qcom-cpufreq-hw driver to enable frequency invariance. Signed-off-by: Douglas RAILLARD --- drivers/cpufreq/qcom-cpufreq-hw.c | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq

[PATCH] sched/cpufreq: Align trace event behavior of fast switching

2019-08-07 Thread Douglas RAILLARD
switching path will not give the correct frequency signal. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 1f82ab108bab

Re: [RFC PATCH v2 0/5] sched/cpufreq: Make schedutil energy aware

2019-07-08 Thread Douglas Raillard
On 7/8/19 12:13 PM, Patrick Bellasi wrote: On 03-Jul 14:38, Douglas Raillard wrote: Hi Peter, On 7/2/19 4:44 PM, Peter Zijlstra wrote: On Thu, Jun 27, 2019 at 06:15:58PM +0100, Douglas RAILLARD wrote: Make schedutil cpufreq governor energy-aware. - patch 1 introduces a function to

Re: [RFC PATCH v2 0/5] sched/cpufreq: Make schedutil energy aware

2019-07-08 Thread Douglas Raillard
Hi Patrick, On 7/8/19 12:09 PM, Patrick Bellasi wrote: On 03-Jul 17:36, Douglas Raillard wrote: On 7/2/19 4:51 PM, Peter Zijlstra wrote: On Thu, Jun 27, 2019 at 06:15:58PM +0100, Douglas RAILLARD wrote: [...] I'm not immediately seeing how it is transient; that is, PELT has a wobb

Re: [RFC PATCH v2 0/5] sched/cpufreq: Make schedutil energy aware

2019-07-03 Thread Douglas Raillard
On 7/2/19 4:51 PM, Peter Zijlstra wrote: On Thu, Jun 27, 2019 at 06:15:58PM +0100, Douglas RAILLARD wrote: Make schedutil cpufreq governor energy-aware. - patch 4 adds sugov_cpu_ramp_boost() function. - patch 5 updates sugov_update_(single|shared)() to make use of sugov_cpu_ramp_boost

Re: [RFC PATCH v2 0/5] sched/cpufreq: Make schedutil energy aware

2019-07-03 Thread Douglas Raillard
Hi Peter, On 7/2/19 4:44 PM, Peter Zijlstra wrote: On Thu, Jun 27, 2019 at 06:15:58PM +0100, Douglas RAILLARD wrote: Make schedutil cpufreq governor energy-aware. - patch 1 introduces a function to retrieve a frequency given a base frequency and an energy cost margin. - patch 2 links

[RFC PATCH v2 4/5] sched/cpufreq: Introduce sugov_cpu_ramp_boost

2019-06-27 Thread Douglas RAILLARD
st is disabled as the impact of blocked utilization on util_avg will make the delta with util_est_enqueued not very informative. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 42 1 file changed, 42 insertions(+) diff --git a/kernel/

[RFC PATCH v2 0/5] sched/cpufreq: Make schedutil energy aware

2019-06-27 Thread Douglas RAILLARD
als, rather than using idle calls count. This makes the ramp boost much more accurate in finding boost opportunities, and give a "continuous" output rather than a boolean. * Add EM_COST_MARGIN_SCALE=1024 to represent the margin values of em_pd_get_higher_freq(). Douglas RA

[RFC PATCH v2 1/5] PM: Introduce em_pd_get_higher_freq()

2019-06-27 Thread Douglas RAILLARD
with the same efficiency are assumed to be equivalent, since they will consume as much energy for a given amount of work to do. That may take more or less time depending on the frequency, but will consume the same energy. Signed-off-by: Douglas RAILLARD --- include/linux/energy_model.h | 53

[RFC PATCH v2 3/5] sched/cpufreq: Hook em_pd_get_higher_power() into get_next_freq()

2019-06-27 Thread Douglas RAILLARD
circumstances. This also prepares the ground for energy-aware frequency boosting. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 8 1 file changed, 8 insertions(+) diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 0a3ccc20adeb

[RFC PATCH v2 2/5] sched/cpufreq: Attach perf domain to sugov policy

2019-06-27 Thread Douglas RAILLARD
Attach an Energy Model perf_domain to each sugov_policy to prepare the ground for energy-aware schedutil. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 39 1 file changed, 39 insertions(+) diff --git a/kernel/sched/cpufreq_schedutil.c b

[RFC PATCH v2 5/5] sched/cpufreq: Boost schedutil frequency ramp up

2019-06-27 Thread Douglas RAILLARD
maximum of all CPU's boost is used. Since the extra power expenditure is bounded, it cannot skyrocket even on platforms with a large number of cores in the same frequency domain and/or very high ratio between lowest and highest OPP cost. Signed-off-by: Douglas RAILLARD --- kernel/

Re: [RFC PATCH 6/7] sched/cpufreq: Improve sugov_cpu_is_busy accuracy

2019-06-19 Thread Douglas Raillard
Hi Patrick, On 5/16/19 1:55 PM, Patrick Bellasi wrote: On 08-May 18:43, douglas.raill...@arm.com wrote: From: Douglas RAILLARD Avoid assuming a CPU is busy when it has begun being idle before get_next_freq() is called. This is achieved by making sure the CPU will not be detected as busy by

Re: [RFC PATCH 1/7] PM: Introduce em_pd_get_higher_freq()

2019-06-19 Thread Douglas Raillard
Hi Patrick, On 5/16/19 2:22 PM, Patrick Bellasi wrote: On 16-May 14:01, Quentin Perret wrote: On Thursday 16 May 2019 at 13:42:00 (+0100), Patrick Bellasi wrote: +static inline unsigned long em_pd_get_higher_freq(struct em_perf_domain *pd, + unsigned long min_freq, unsigned long cost_mar

Re: Linux Testing Microconference at LPC

2019-06-10 Thread Douglas Raillard
Hi Dhaval, On 5/22/19 5:11 PM, Dhaval Giani wrote: Please let us know what topics you believe should be a part of the micro conference this year. At OSPM right now, Douglas and Ionela were talking about their scheduler behavioral testing framework using LISA and rt-app. This is an interesting

Re: [RFC PATCH 1/7] PM: Introduce em_pd_get_higher_freq()

2019-05-16 Thread Douglas Raillard
Hi Patrick, On 5/16/19 1:42 PM, Patrick Bellasi wrote: On 08-May 18:42, douglas.raill...@arm.com wrote: From: Douglas RAILLARD em_pd_get_higher_freq() returns a frequency greater or equal to the provided one while taking into account a given cost margin. It also skips inefficient OPPs that

Re: [RFC PATCH 0/7] sched/cpufreq: Make schedutil energy aware

2019-05-13 Thread Douglas Raillard
Hi Viresh, Rafael, On 5/13/19 8:12 AM, Viresh Kumar wrote: On Wed, May 8, 2019 at 11:57 PM wrote: From: Douglas RAILLARD Make schedutil cpufreq governor energy-aware. Hi Douglas, I was wondering on why the cpufreq maintainers weren't cc'd for this set and then I no

[RFC PATCH 4/7] sched/cpufreq: Move up sugov_cpu_is_busy()

2019-05-08 Thread douglas . raillard
From: Douglas RAILLARD Move sugov_cpu_is_busy() static function of cpufreq_schedutil.c higher in the file so it can be used by other functions. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 26 +- 1 file changed, 13 insertions(+), 13 deletions

[RFC PATCH 2/7] sched/cpufreq: Attach perf domain to sugov policy

2019-05-08 Thread douglas . raillard
From: Douglas RAILLARD Attach an Energy Model perf_domain to each sugov_policy to prepare the ground for energy-aware schedutil. Signed-off-by: Douglas RAILLARD --- kernel/sched/cpufreq_schedutil.c | 39 1 file changed, 39 insertions(+) diff --git a/kernel

[RFC PATCH 0/7] sched/cpufreq: Make schedutil energy aware

2019-05-08 Thread douglas . raillard
From: Douglas RAILLARD Make schedutil cpufreq governor energy-aware. - patch 1 introduces a function to retrieve a frequency given a base frequency and an energy cost margin. - patch 2 links Energy Model perf_domain to sugov_policy. - patch 3 updates get_next_freq() to make use of the Energy

[RFC PATCH 1/7] PM: Introduce em_pd_get_higher_freq()

2019-05-08 Thread douglas . raillard
From: Douglas RAILLARD em_pd_get_higher_freq() returns a frequency greater or equal to the provided one while taking into account a given cost margin. It also skips inefficient OPPs that have a higher cost than another one with a higher frequency. Signed-off-by: Douglas RAILLARD --- include

[RFC PATCH 6/7] sched/cpufreq: Improve sugov_cpu_is_busy accuracy

2019-05-08 Thread douglas . raillard
From: Douglas RAILLARD Avoid assuming a CPU is busy when it has begun being idle before get_next_freq() is called. This is achieved by making sure the CPU will not be detected as busy by other CPUs whenever its utilization is decreasing. Signed-off-by: Douglas RAILLARD --- kernel/sched

[RFC PATCH 3/7] sched/cpufreq: Hook em_pd_get_higher_power() into get_next_freq()

2019-05-08 Thread douglas . raillard
From: Douglas RAILLARD Choose the highest OPP for a given energy cost, allowing to skip lower frequencies that would not be cheaper in terms of consumed power. These frequencies can still be interesting to keep in the energy model to give more freedom to thermal throttling, but should not be

[RFC PATCH 7/7] sched/cpufreq: Boost schedutil frequency ramp up

2019-05-08 Thread douglas . raillard
From: Douglas RAILLARD In some situations, it can be interesting to spend temporarily more power if that can give a useful frequency boost. The sugov_cpu_is_busy() heuristic is reused to check if there has been some idle time on all CPUs in the considered perf domain since last call to

[RFC PATCH 5/7] sched/cpufreq: sugov_cpu_is_busy for shared policy

2019-05-08 Thread douglas . raillard
From: Douglas RAILLARD Allow using sugov_cpu_is_busy() from sugov_update_shared(). This means that the heuristic needs to return stable results across multiple calls for a given CPU, even if there has been no utilization change since last call. sugov_cpu_is_busy() currently both checks business