Re: [PATCH v2 0/6] cpufreq: intel_pstate: Set cpuinfo_min_freq to a lower value with HWP enabled plus cleanups
From: Rafael J. Wysocki
Date: Mon Jun 22 2026 - 12:36:44 EST
On Mon, Jun 22, 2026 at 1:34 AM Doug Smythies <dsmythies@xxxxxxxxx> wrote:
>
> 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.
So that's most likely the lowest level you can get on that system.
> 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.
Fair enough.
> 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
>