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
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
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) *
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
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
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
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
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
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
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
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
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/
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
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/
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
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
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
_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
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
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
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
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
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
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
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
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
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
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/
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
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
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
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
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
46 matches
Mail list logo