Re: [PATCH v2 2/6] cpufreq: schedutil: reset sg_cpus's flags at IDLE enter

From: Saravana Kannan
Date: Tue Jul 11 2017 - 15:16:59 EST


On 07/07/2017 03:17 AM, Juri Lelli wrote:
On 06/07/17 21:43, Joel Fernandes wrote:
On Tue, Jul 4, 2017 at 10:34 AM, Patrick Bellasi
<patrick.bellasi@xxxxxxx> wrote:

[...]

@@ -304,6 +304,12 @@ static void sugov_update_shared(struct update_util_data *hook, u64 time,

sg_cpu->util = util;
sg_cpu->max = max;
+
+ /* CPU is entering IDLE, reset flags without triggering an update */
+ if (unlikely(flags & SCHED_CPUFREQ_IDLE)) {
+ sg_cpu->flags = 0;
+ goto done;
+ }

Instead of defining a new flag for idle, wouldn't another way be to
just clear the flag from the RT scheduling class with an extra call to
cpufreq_update_util with flags = 0 during dequeue_rt_entity? That
seems to me to be also the right place to clear the flag since the
flag is set in the corresponding class to begin with.


Make sense to me too. Also considering that for DL (with my patches) we
don't generally want to clear the flag at dequeue time, but only when
the 0-lag timer fires.


Makes sense to me too.

-Saravana


--
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project