From: David Vernet <void@manifault.com>
To: Christian Loehle <christian.loehle@arm.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
"Huang Rui" <ray.huang@amd.com>,
"Mario Limonciello" <mario.limonciello@amd.com>,
"Perry Yuan" <perry.yuan@amd.com>,
"K Prateek Nayak" <kprateek.nayak@amd.com>,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
"André Almeida" <andrealmeid@igalia.com>,
"Changwoo Min" <changwoo@igalia.com>
Subject: Re: [RFC PATCH 0/4] cpufreq/amd-pstate: Per-core EPP boost for recently-busy CPUs
Date: Thu, 30 Jul 2026 00:57:45 -0500 [thread overview]
Message-ID: <amrZ08BnDP4OriHa@maniforge> (raw)
In-Reply-To: <700ebebe-f4ab-4329-ad43-716d74d6621c@arm.com>
[-- Attachment #1: Type: text/plain, Size: 2946 bytes --]
On Tue, Jul 28, 2026 at 03:17:50PM +0100, Christian Loehle wrote:
> On 7/28/26 08:31, David Vernet wrote:
[...]
> > Testing methodology
> > ===================
> >
> > All numbers are from a Steam Deck LCD (Van Gogh APU) running in active
> > mode at EPP=balance_performance, using the Civilization VI graphics
> > benchmark as a single-thread CPU-bound workload with a repeatable
> > built-in benchmark pass.
> >
> > Comparisons were run as interleaved A/B tests with 6 iterations per
> > configuration. For each run I collected per-frame frame times and the
> > busy core's frequency, and derived average fps, 1%-low fps and the p99
> > and p999 frame-time percentiles. Deltas were evaluated with Welch's
> > t-test, and I report the p-values alongside the deltas below.
> >
> > Results:
> >
> > Default settings
> > ----------------
> > The busy core's median frequency sat at 2.43 GHz despite 98%
> > utilization, which is the frequency droop described above.
>
> Two things to confirm for my understanding:
> -Median frequency is the 50th percentile when weighing the OPPs by
> residency, right?
Yes, effectively. It's the median of 500 samples of scaling_cur_freq
taken at 50 ms intervals.
> - You're also using busy_pct = delta_MPERF * 100 / delta_TSC as
> utilization, right? (Not util_avg or anything like that)
The 98% I mentioned in the cover letter is the render thread's on-CPU
share of wall clock during the benchmark window. The trigger in patch 3
is busy_pct = delta_MPERF * 100 / delta_TSC.
> Your observation looks like a firmware or SMU issue.
> Can we confirm the (short) sleeps reset the demand-estimation, i.e.
> by tracing cpu_idle/sched_switch and sample APERF/MPERF alongside it?
Good idea. I ran this experiment and I think you're correct that it's a
firmware or SMU issue. I did three 60s captures of sched_switch +
power:cpu_idle via trace-cmd during the Civ6 graphics benchmark with a
pinned sampler reading APERF/MPERF on all 8 CPUs at 1 ms alongside, and
it showed that frequency drops from 3.5 GHz to a ~2.4 GHz plateau
whenever the render task blocks for more than .2 ms. This drop then
seems to persist for at least 8ms after the task wakes up (sometimes
persisting for several seconds). I also don't think C state matters
here, as this happens even if I restrict cpuidle to POLL and C1 only.
This is the post-wake effective busy clock, controlled for how long the
render task was blocked:
idle time pre 0-2ms 2-4ms 4-6ms 6-8ms
<0.2ms 3.50 3.50 3.50 3.50 3.50
0.2-0.5ms 3.49 2.43 2.42 2.43 2.43
2-5ms 2.43 2.43 2.43 2.43 2.42
>5ms 3.50 2.43 2.43 2.43 2.42
> Also rt-app might be helpful to get a feel of how this behaves (and
> create a similar pathological case like the single-threaded game).
Yeah that's a good idea. I can try that this weekend.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
prev parent reply other threads:[~2026-07-30 5:57 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-28 7:31 [RFC PATCH 0/4] cpufreq/amd-pstate: Per-core EPP boost for recently-busy CPUs David Vernet
2026-07-28 7:31 ` [RFC PATCH 1/4] cpufreq/amd-pstate: Document missing kernel-doc members David Vernet
2026-07-28 15:06 ` Mario Limonciello
2026-07-28 7:31 ` [RFC PATCH 2/4] cpufreq/amd-pstate: Update cppc_req_cached before writing the MSR David Vernet
2026-07-28 7:31 ` [RFC PATCH 3/4] cpufreq/amd-pstate: Add per-core EPP boost for recently-busy CPUs David Vernet
2026-07-28 21:02 ` Mario Limonciello
2026-07-28 7:31 ` [RFC PATCH 4/4] Documentation: amd-pstate: Document the epp_boost parameter David Vernet
2026-07-28 7:36 ` [RFC PATCH 0/4] cpufreq/amd-pstate: Per-core EPP boost for recently-busy CPUs David Vernet
2026-07-28 14:17 ` Christian Loehle
2026-07-28 19:43 ` Mario Limonciello
2026-07-29 3:12 ` K Prateek Nayak
2026-07-30 7:22 ` David Vernet
2026-07-30 5:57 ` David Vernet [this message]
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=amrZ08BnDP4OriHa@maniforge \
--to=void@manifault.com \
--cc=andrealmeid@igalia.com \
--cc=changwoo@igalia.com \
--cc=christian.loehle@arm.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=perry.yuan@amd.com \
--cc=rafael@kernel.org \
--cc=ray.huang@amd.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