Lenovo Laptop CPU Frequencies

I have a lenovo laptop (Lenovo IdeaPad S340-14IIL) with an Intel i7-1065G7 CPU, for the last few days it has been using incorrect max frequency settings.

It should be capable of turboing up to 3.9ghz but its maxing out at 1.6ghz

I did a reset by holding down the power button, and that upped reported hardware limit back to 3.9ghz, but cpupower is still reporting that ‘current policy’ allows frequency to be within 400mhz and 1.3ghz.

I am running auto-cpufreq but that should be limiting the max freq to 3ghz via the config file. Its reporting CPU max frequency as 1300mhz via --stats

$ cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 400 MHz - 3.90 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 400 MHz and 1.30 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 1.50 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

$ lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  8
  On-line CPU(s) list:   0-7
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz
    CPU family:          6
    Model:               126
    Thread(s) per core:  2
    Core(s) per socket:  4
    Socket(s):           1
    Stepping:            5
    CPU(s) scaling MHz:  33%
    CPU max MHz:         3900.0000
    CPU min MHz:         400.0000
    BogoMIPS:            2996.00
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mc
                         a cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss 
                         ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art
                          arch_perfmon pebs bts rep_good nopl xtopology nonstop_
                         tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes6
                         4 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr p
                         dcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline
                         _timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefe
                         tch cpuid_fault epb invpcid_single ssbd ibrs ibpb stibp
                          ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ep
                         t_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpc
                         id avx512f avx512dq rdseed adx smap avx512ifma clflusho
                         pt intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt 
                         xsavec xgetbv1 xsaves split_lock_detect dtherm ida arat
                          pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_
                         req avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vp
                         clmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdp
                         id fsrm md_clear flush_l1d arch_capabilities
Virtualization features: 
  Virtualization:        VT-x
Caches (sum of all):     
  L1d:                   192 KiB (4 instances)
  L1i:                   128 KiB (4 instances)
  L2:                    2 MiB (4 instances)
  L3:                    8 MiB (1 instance)
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-7
  Itlb multihit:         KVM: Mitigation: VMX disabled
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Mitigation; Clear CPU buffers; SMT vulnerable
  Retbleed:              Mitigation; Enhanced IBRS
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer
  Spectre v2:            Mitigation; Enhanced IBRS, IBPB conditional, RSB fillin
                         g, PBRSB-eIBRS SW sequence
  Srbds:                 Mitigation; Microcode
  Tsx async abort:       Not affected

Use acpi_cpufreq module/driver instead.
See this and pay attention to the second blue note … CPU frequency scaling - ArchWiki

Thanks for the response. I have tried disabling the intel_pstate driver a couple of times already, it then switches over to the acpi_cpufreq driver, but the max frequency via policy is still set to something like 1.5ghz, a long way short of the hardware limit of 3.9ghz.

I don’t actually want it to run at 3.9ghz as the cooling is woefully inadequate for that, which is why I have auto-cpufreq limiting the max frequency to 3ghz, that was working well.

I should add I have had a couple of thermal events, the laptop instantaneously powering itself off while running a game. The CPU runs at reasonable temperatures when the fan has spun up, the problem is that the fan curve is very lethargic, i’ve seen the laptop go from 60c to 100c before the fan even ramps up, which I why i’m limiting it to 3ghz via auto-cpufreq.

My fear Is that i have a faulty sensor triggering BD PROCHOT, but if that is what’s happening i’ve been unable to do anything about it so far.

I’m going to try completely removing thermald and auto-cpufreq, if that doesn’t have an effect then I might just have to bin the laptop and get something else.