From: hongyan.xia <hongyan.xia@transsion.com>
To: Dietmar Eggemann <dietmar.eggemann@arm.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Valentin Schneider <vschneid@redhat.com>,
K Prateek Nayak <kprateek.nayak@amd.com>
Cc: hupu <hupu@transsion.com>, jiazi.li <jiazi.li@transsion.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Qais Yousef <qyousef@layalina.io>,
Christian Loehle <christian.loehle@arm.com>
Subject: Re: [PATCH] sched/fair: Revert boost in cpu_util()
Date: Fri, 22 May 2026 09:36:46 +0000 [thread overview]
Message-ID: <bc7720fa-012c-4f0e-add6-4db526fdaa2d@transsion.com> (raw)
In-Reply-To: <0f7dd656-5ee4-4c14-a27c-fa30c12a676a@arm.com>
On 5/22/2026 3:49 PM, Dietmar Eggemann wrote:
> On 18.05.26 04:40, hongyan.xia(夏弘彦) wrote:
>> From: Hongyan Xia <hongyan.xia@transsion.com>
>
> I'm on vacation this week so will have a closer look beginning of next week.
Vacation certainly more important. Patches can wait :)
>> We have seen a massive power consumption regression (20% SoC power
>> increase in many apps) after updating our kernel. After bisection we
>
> What is the kernel version you updated to? Which one you have been using
> so far?
>
> Are you using Android on your devices? I remember there was some
> functionality added to avoid janks in display pipeline.
Yes, this is Android but with scheduler vendor hooks stripped, so kernel
6.6 schedutil with some GKI patches on top. There is "something to avoid
janks", but to make sure the results can be shared upstream, such
Android things are disabled, leaving basically vanilla schedutil.
>> pinpointed the regression to the cpu_util(boost) feature. After
>> reverting the boost feature the massive energy regression is gone.
>> Detailed trace analysis down below. The regression is found across quite
>> many apps but Youtube is one of the worst offenders, shown in the
>> 1080p60fps video benchmark:
>>
>> Setup FPS SoC Power (mW) diff
>> w/ boost 59.94 913.6
>> w/o boost 59.93 720.4 -21.15%
>>
>> Signed-off-by: Hongyan Xia <hongyan.xia@transsion.com>
>>
>> ---
>> Analysis:
>
> [...]
>
>> 2. Using the absolute value of runnable_avg to drive frequency is
>> too high to be reasonable:
>>
>> We use runnable in a _relative_ way to util to know whether there is
>
> Is this part of the value adds you put on top of mainline kernel? Are
> you able to share this here?
By 'we' I mean upstream schedutil, like the comparison in
util_est_update between util and runnable to know whether there is
contention. The results I shared in this thread were always run on a
setup that doesn't include our internal stuff.
>> contention in several places. However, the _absolute_ value should not
>> be used like util. Runnable_avg tends to be significantly higher,
>> making it much easier to saturate frequency.
>>
>> For example, if three tasks each with a util of 100 contend on the same
>> rq, the rq util is 300 but runnable_avg shoots up to 900. 900 drives the
>> CPU at the max frequency, and it's highly questionable whether this
>> boost is the right decision.
>
> Shouldn't this be max 600, in case the task's runtime overlap perfectly?
> In case they don't overlap at all runnable_avg should be util_avg. Is
> this a theoretical example or taken from your traces?
You are right, the first task that completes no longer accumulates
runnable_avg, so the runnable_avg of the three tasks are 100, 200, 300,
so 600 in total.
This is only a theoretical example, although in apps like Youtube
playback we do see the average frequency hovering around 1.5x w/ boost
than w/o boost, so in reality there is still a big difference.
>> 3. Runnable_avg may not even reflect true contention:
>>
>> When tasks are dependent, the bottleneck is often the data flow between
>> tasks, not the contention seen by runnable_avg. Boosting frequency with
>> runnable in such scenarios wastes power without performance benefits.
>
> That's probably true. But here any global feature (which doesn't need
> per-task setup) won't be able to give perfect results, only per-task
> setup can fix this.
Our observation seems that few tasks benefit and most of our workloads
suffer from a big energy regression, so putting this feature on the
generic path might not be the best thing.
Christian did suggest some gaming benchmarks. Sadly our setup has a
completely different governor for gaming. I will try to rip out
everything and put games back on vanilla schedutil. Hopefully I will
come back soon with gaming results.
next prev parent reply other threads:[~2026-05-22 9:36 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-18 2:40 hongyan.xia(夏弘彦)
2026-05-18 10:04 ` Christian Loehle
2026-05-18 11:37 ` hongyan.xia(夏弘彦)
2026-05-19 1:17 ` Qais Yousef
2026-05-19 2:41 ` hongyan.xia(夏弘彦)
2026-05-19 13:30 ` Qais Yousef
2026-05-26 7:35 ` Hongyan Xia
2026-05-22 7:49 ` Dietmar Eggemann
2026-05-22 9:36 ` hongyan.xia [this message]
2026-05-26 17:16 ` Dietmar Eggemann
2026-05-27 3:18 ` Hongyan Xia
2026-05-26 17:16 ` Dietmar Eggemann
2026-05-28 1:41 ` Hongyan Xia
2026-06-04 6:53 ` Hongyan Xia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bc7720fa-012c-4f0e-add6-4db526fdaa2d@transsion.com \
--to=hongyan.xia@transsion.com \
--cc=bsegall@google.com \
--cc=christian.loehle@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=hupu@transsion.com \
--cc=jiazi.li@transsion.com \
--cc=juri.lelli@redhat.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=qyousef@layalina.io \
--cc=rafael@kernel.org \
--cc=rostedt@goodmis.org \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
--cc=vschneid@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®