Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e864eaf authored by Quentin Perret's avatar Quentin Perret Committed by Satya Durga Srinivasu Prabhala
Browse files

ANDROID: cpufreq/schedutil: Select frequency using util_avg for RT



Schedutil always requests max frequency whenever a RT task is running.
Now that we have a better estimate of the utilization of RT runqueues,
it is possible to make a less conservative decision and scale frequency
according to the needs of the RT tasks.

To do so, protect the RT-go-to-max code with a new sched_feature.
The sched_feature is disabled by default, hence favoring energy savings
as required in mobile environments.

Signed-off-by: default avatarQuentin Perret <quentin.perret@arm.com>
Change-Id: Ic9f01c8703d4f843addaa0d684012a422fe9f3b8
Git-commit: c74d264106b150fad8949a985514d127c1e117c5
Git-repo: https://android.googlesource.com/kernel/common/


[satyap@codeaurora.org: fix trivial merge conflicts]
Signed-off-by: default avatarSatya Durga Srinivasu Prabhala <satyap@codeaurora.org>
parent 0dbcf5d8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -307,7 +307,7 @@ unsigned long schedutil_cpu_util(int cpu, unsigned long util_cfs,
	unsigned long dl_util, util, irq;
	struct rq *rq = cpu_rq(cpu);

	if (!IS_BUILTIN(CONFIG_UCLAMP_TASK) &&
	if (!IS_BUILTIN(CONFIG_UCLAMP_TASK) && sched_feat(SUGOV_RT_MAX_FREQ) &&
	    type == FREQUENCY_UTIL && rt_rq_is_runnable(&rq->rt)) {
		return max;
	}
+5 −0
Original line number Diff line number Diff line
@@ -94,3 +94,8 @@ SCHED_FEAT(UTIL_EST, true)
 * Fast pre-selection of CPU candidates for EAS.
 */
SCHED_FEAT(FIND_BEST_TARGET, true)

/*
 * Request max frequency from schedutil whenever a RT task is running.
 */
SCHED_FEAT(SUGOV_RT_MAX_FREQ, false)