From: "Doug Smythies" <dsmythies@telus.net>
To: "'Rafael J. Wysocki'" <rafael@kernel.org>,
"'Linux PM'" <linux-pm@vger.kernel.org>
Cc: "'LKML'" <linux-kernel@vger.kernel.org>,
"'Srinivas Pandruvada'" <srinivas.pandruvada@linux.intel.com>
Subject: RE: [PATCH v2 0/6] cpufreq: intel_pstate: Set cpuinfo_min_freq to a lower value with HWP enabled plus cleanups
Date: Sun, 21 Jun 2026 16:34:10 -0700 [thread overview]
Message-ID: <001a01dd01d6$762c8080$62858180$@telus.net> (raw)
In-Reply-To: <6005456.DvuYhMxLoT@rafael.j.wysocki>
On 2026.06.19 10:32 Rafael wrote:
> This is in v2 because technically it is an update of
>
> https://lore.kernel.org/linux-pm/2381464.iZASKD2KPV@rafael.j.wysocki/
>
> but it contains new patches.
>
> This series updates the intel_pstate driver to set cpuinfo_min_freq to a lower
> value when HWP is enabled to support systems in which CPUs can actually run
> at performance levels below the current minimum level.
>
> It also carries out some code cleanups, mostly related to HWP, either in
> preparation for the functional changes or top of them.
>
> Thanks!
Hi Rafael,
Is there a way to test this? I have tried everything I can think of and have
been unable to get the processor frequency below the old minimum of 800 MHz.
No matter what I do, I always see greater or equal to 8 for each CPU in the
IA32_PERF_STATUS register, or by looking at non stale entries in:
grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
Example:
doug@s19:~$ grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq:100000
/sys/devices/system/cpu/cpu10/cpufreq/scaling_cur_freq:100000
/sys/devices/system/cpu/cpu11/cpufreq/scaling_cur_freq:100000
/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq:800013
/sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq:800014
/sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq:799996
/sys/devices/system/cpu/cpu4/cpufreq/scaling_cur_freq:800023
/sys/devices/system/cpu/cpu5/cpufreq/scaling_cur_freq:800053
/sys/devices/system/cpu/cpu6/cpufreq/scaling_cur_freq:100000
/sys/devices/system/cpu/cpu7/cpufreq/scaling_cur_freq:100000
/sys/devices/system/cpu/cpu8/cpufreq/scaling_cur_freq:100000
/sys/devices/system/cpu/cpu9/cpufreq/scaling_cur_freq:100000
Readers note:
Stale entries are just "scaling_min_freq".
Non-stale entries tend to be not nice round numbers.
For me this patch set introduces confusion between min and max
frequency settings and what I actually get. I can set " scaling_min_freq"
to 100 MHz and "scaling_max_freq" to 100MHz, but never get them.
Before this patch set, I always got what I asked for.
Other details:
Processor: Intel(R) Core(TM) i5-10600K CPU @ 4.10GHz
MSR_PLATFORM_INFO (0x0ce) 808083af1012900
Other stuff from my msr0decoder program:
doug@s19:~$ sudo c/msr-decoder
How many CPUs?: 12
8.) 0x198: IA32_PERF_STATUS : CPU 11-0 : 8 : 8 : 8 : 8 : 8 : 8 : 8 : 8 : 8 : 8 : 8 : 8 :
B.) 0x770: IA32_PM_ENABLE: 1 : HWP enable
1.) 0x19C: IA32_THERM_STATUS: 88470000
2.) 0x1AA: MSR_MISC_PWR_MGMT: 401CC0 EIST enabled Coordination enabled OOB Bit 8 reset OOB Bit 18 reset
3.) 0x1B1: IA32_PACKAGE_THERM_STATUS: 88450000
4.) 0x64F: MSR_CORE_PERF_LIMIT_REASONS: 200000 RATLL
A.) 0x1FC: MSR_POWER_CTL: 3C005D : C1E disable : EEO disable : RHO disable
5.) 0x771: IA32_HWP_CAPABILITIES (performance): 10B2930 : high 48 : guaranteed 41 : efficient 11 : lowest 1
6.) 0x774: IA32_HWP_REQUEST: CPU 11-0 :
raw: 80010101 : 80010101 : 80010101 : 80010101 : 80010101 : 80010101 : 80010101 : 80010101 : 80010101 : 80010101 : 80010101 : 80010101 :
min: 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 :
max: 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 :
des: 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 : 1 :
epp: 128 : 128 : 128 : 128 : 128 : 128 : 128 : 128 : 128 : 128 : 128 : 128 :
act: 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 :
7.) 0x777: IA32_HWP_STATUS: 0 : high 0 : guaranteed 0 : efficient 0 : lowest 0
The driver was intel_cpufreq, governor conservative (but I tried them all). I also tried epp = 255 so as to slow down the processor response time.
... Doug
prev parent reply other threads:[~2026-06-21 23:34 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-19 17:31 [PATCH v2 0/6] cpufreq: intel_pstate: Set cpuinfo_min_freq to a lower value with HWP enabled plus cleanups Rafael J. Wysocki
2026-06-19 17:32 ` [PATCH v2 1/6] cpufreq: intel_pstate: Fix setting minimum P-state at init time Rafael J. Wysocki
2026-06-19 17:35 ` [PATCH v2 2/6] cpufreq: intel_pstate: Introduce intel_pstate_update_freq_limits() Rafael J. Wysocki
2026-06-19 17:40 ` [PATCH v2 3/6] cpufreq: intel_pstate: Set initial scaling_min_freq value Rafael J. Wysocki
2026-06-19 17:42 ` [PATCH v2 4/6] cpufreq: intel_pstate: Consolidate frequency values computation Rafael J. Wysocki
2026-06-19 17:44 ` [PATCH v2 5/6] cpufreq: intel_pstate: Consolidate HWP P-states initialization Rafael J. Wysocki
2026-06-19 17:45 ` [PATCH v2 6/6] cpufreq: intel_pstate: Move two functions closer to callers Rafael J. Wysocki
2026-06-21 21:50 ` [PATCH v2 0/6] cpufreq: intel_pstate: Set cpuinfo_min_freq to a lower value with HWP enabled plus cleanups srinivas pandruvada
2026-06-21 23:34 ` Doug Smythies [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='001a01dd01d6$762c8080$62858180$@telus.net' \
--to=dsmythies@telus.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=srinivas.pandruvada@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.