linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC/RFT][PATCH] cpufreq: schedutil: Reduce frequencies slower
@ 2017-03-30 21:36 Rafael J. Wysocki
  2017-03-31 10:22 ` Juri Lelli
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2017-03-30 21:36 UTC (permalink / raw)
  To: Linux PM
  Cc: LKML, Peter Zijlstra, Srinivas Pandruvada, Viresh Kumar,
	Juri Lelli, Vincent Guittot, Patrick Bellasi, Joel Fernandes,
	Morten Rasmussen, John

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

The schedutil governor reduces frequencies too fast in some
situations which cases undesirable performance drops to
appear.

To address that issue, make schedutil reduce the frequency slower by
setting it to the average of the value chosen during the previous
iteration of governor computations and the new one coming from its
frequency selection formula.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=194963
Reported-by: John <john.ettedgui@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

This addresses a practical issue, but one in the "responsiveness" or
"interactivity" category which is quite hard to represent quantitatively.

As reported by John in BZ194963, schedutil does not ramp up P-states quickly
enough which causes audio issues to appear in his gaming setup.  At least it
evidently is worse than ondemand in this respect and the patch below helps.

The patch essentially repeats the trick added some time ago to the load-based
P-state selection algorithm in intel_pstate, which allowed us to make it viable
for performance-oriented users, and which is to reduce frequencies at a slower
pace.

The reason why I chose the average is because it is computationally cheap
and pretty much the max reasonable slowdown and the idea is that in case
there's something about to run that we don't know about yet, it is better to
stay at a higher level for a while more to avoid having to get up from the floor
every time.

But technically speaking it is a filter. :-)

So among other things I'm wondering if that leads to substantial increases in
energy consumption anywhere.

Thanks,
Rafael

---
 kernel/sched/cpufreq_schedutil.c |    3 +++
 1 file changed, 3 insertions(+)

Index: linux-pm/kernel/sched/cpufreq_schedutil.c
===================================================================
--- linux-pm.orig/kernel/sched/cpufreq_schedutil.c
+++ linux-pm/kernel/sched/cpufreq_schedutil.c
@@ -101,6 +101,9 @@ static void sugov_update_commit(struct s
 	if (sg_policy->next_freq == next_freq)
 		return;
 
+	if (sg_policy->next_freq > next_freq)
+		next_freq = (sg_policy->next_freq + next_freq) >> 1;
+
 	sg_policy->next_freq = next_freq;
 	sg_policy->last_freq_update_time = time;
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-04-12  9:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-30 21:36 [RFC/RFT][PATCH] cpufreq: schedutil: Reduce frequencies slower Rafael J. Wysocki
2017-03-31 10:22 ` Juri Lelli
2017-03-31 21:51   ` Rafael J. Wysocki
     [not found]     ` <CAFEhuF=sWvuC3Q1NsqdRuiGzK4uD8ie5zbEnVsuGMdJK3y9e3Q@mail.gmail.com>
2017-04-01 23:29       ` Andres Oportus
2017-04-02  2:03         ` Rafael J. Wysocki
2017-04-02  4:38           ` Andres Oportus
2017-04-11 21:23 ` Rafael J. Wysocki
2017-04-12  9:01   ` Juri Lelli
2017-04-12  9:03 ` Viresh Kumar

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).