Laptop CPU slows down to min freq on high load

Hello, I’ve been using Fedora for a while now on my “old” laptop, but I never managed to fix this issue I have where the CPU is throttling heavily under high load, even at normal temps.

The laptop is an ASUS VivoBook S15 S530FN, and it’s running an Intel i7-8565U 4C/8T CPU.
One important (maybe) detail to note is that the device does not have a battery installed at the moment, because the connector broke off the motherboard and nobody is willing to try repair it.

While idling, the CPU can easily turbo up to 4600mhz, but on high load (a benchmark for example), the frequency is lowered to the minimum allowed of 400mhz and power is limited to 6W, which is not ideal.
During benchmarks, the temperature is stable at 60°C.

I tried installing thermald, but absolutely nothing changed.

Since I’m dual booting Win11 on this laptop, I could easily check if the issue was present on the other OS, but Windows can run benchmarks up to 2000mhz just fine.

I tried running cpupower frequency-info on idle and during a benchmark, and these were the results:

Idle
Analisi della CPU 5:
  driver: intel_pstate
  CPU che operano alla stessa frequenza hardware: 5
  CPU che è necessario siano coordinate dal software: 5
  latenza massima durante la transizione:  Cannot determine or is not supported.
  limiti hardware: 400 MHz - 4.60 GHz
  gestori disponibili: performance powersave
  gestore attuale: la frequenza deve mantenersi tra 400 MHz e 4.60 GHz.
                   Il gestore "performance" può decidere quale velocità usare
                  in questo intervallo.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 4.55 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

Full load
analisi della CPU 4:
  driver: intel_pstate
  CPU che operano alla stessa frequenza hardware: 4
  CPU che è necessario siano coordinate dal software: 4
  latenza massima durante la transizione:  Cannot determine or is not supported.
  limiti hardware: 400 MHz - 4.60 GHz
  gestori disponibili: performance powersave
  gestore attuale: la frequenza deve mantenersi tra 400 MHz e 4.60 GHz.
                   Il gestore "performance" può decidere quale velocità usare
                  in questo intervallo.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 595 MHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

Does anyone have any suggestions?
Thanks in advance.

It definitely sounds thermal sensor related in some way. Can you grab the output of sensors when you notice the throttling? It might give us a clue if there’s a thermal issue with another component?

1 Like

It’s a pretty mid-level laptop, so don’t expect to get much info out of sensors:

Idle

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1: +24.0°C

asus-isa-0000
Adapter: ISA adapter
cpu_fan: 3200 RPM

BAT0-acpi-0
Adapter: ACPI interface
in0: 0.00 V
power1: 0.00 W

coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +62.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +61.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +62.0°C (high = +100.0°C, crit = +100.0°C)
Core 2: +62.0°C (high = +100.0°C, crit = +100.0°C)
Core 3: +60.0°C (high = +100.0°C, crit = +100.0°C)

pch_cannonlake-virtual-0
Adapter: Virtual device
temp1: +54.0°C

acpitz-acpi-0
Adapter: ACPI interface
temp1: +59.0°C

5 mins into benchmark

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1: +24.0°C

asus-isa-0000
Adapter: ISA adapter
cpu_fan: 3000 RPM

BAT0-acpi-0
Adapter: ACPI interface
in0: 0.00 V
power1: 0.00 W

coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +61.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +61.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +61.0°C (high = +100.0°C, crit = +100.0°C)
Core 2: +60.0°C (high = +100.0°C, crit = +100.0°C)
Core 3: +60.0°C (high = +100.0°C, crit = +100.0°C)

pch_cannonlake-virtual-0
Adapter: Virtual device
temp1: +54.0°C

acpitz-acpi-0
Adapter: ACPI interface
temp1: +60.0°C

Might be the same issue as reported in another thread:

My laptop doesn’t have a battery anymore, so the hardware resets every time I unplug it from the charger (often).
There is no CMOS battery, and this is also proven by the fact that it will power on immediately after I plug it in, and it takes quite a while for it to start booting (most probably due to memory training). Also, the clock resets every time.

Tomorrow I will try loading the BIOS defaults, but I doubt it will have some effect, as the UEFI has just some basic options.

The inside of the laptop is clean because I open it up often for maintenance (and that’s probably the reason why the connector broke off, but that’s not what matters here).

Unfortunately, the trick didn’t work.
I reset the UEFI to defaults and left the laptop unplugged overnight.
This morning, I turned it on and updated everything to latest (kernel 6.11.10-300).

Apart from the fact that it took ages to compile the Nvidia driver (because of the 4 cores running at 400mhz), on the next book absolutely nothing changed.

The exact second I start a heavy load, the frequency immediately drops to 400mhz.

Any other suggestions?