[Help] Overwriting Apollo Lake TDP on linux

I switched to linux mint today with my pentium n4200 laptop.
You can overwrite the CPU’s TDP limit set by the manufacturer (acer in my case) by writing 0x000000DD8A00 to the MSR at 0x610.
I did this on windows with the programm RW-Everyhing by using the command
“WRMSR 0x610 0x0 0x00DD8?00 0” where ? is the tdp from 0 to E (0 to 15).
Now, I didn’t even know what msr, wrmsr or the values and adress meant until today and I think I need some help now.

  • I know that 0x610 is the address of the register.
  • I’m assuming that “0x0 0x00DD8?00” is the new value for that register since the default value returned by rdmsr has the same syntax as the second number with 0000 as padding at the start of it.
  • I’m also assuming that the 0 at the end of that command means “write to CPU0’s register”.

I installed msr-tools which has the two prgramms rdmsr and wrmsr but
“sudo wrmsr 0x610 0x000000DD8E00” (CPU 0 is the default CPU in wrmsr.) doesn’t seem to overwrite the TDP, even though “sudo rdmsr 0x610” returns the new values.

Does anyone here know what I’m doing wrong? I didn’t find anything on google about doing this on linux and RW-Everything doesn’t come with any documentation.

Thanks for your help

Like upping the TDP of the chip for more thermal headroom? Why? That does not seem advisable.

If the cooling is good enough to keep the CPU under TJmax than it will clock to its limits. What would upping the limit do for you. If you are looking at this as a way to dump more voltage and get higher clocks that is a fast way to kill a chip.

1 Like

I installed thermal pads and temps on 15W TDP are below the stock 6W TDP temps without pads, I also don’t care if the power delivery dies.
The performance gain in gpu/cpu (about 60%) and cpu-only (it compiles things what feels like 10 times faster) workloads is massive because the CPU of my laptop model has been configured with TDP of 6W, even though it can be configured to 10W by the manufacturer.

Hi,

I know it has been a few months.

Have you been successful at increasing the TDP value in linux by any chance? It is literally the one post I was able to find online regarding modifying the TDP value in linux. Which, I find is odd, because my Acer Swift 1 is much more robust in Ubuntu that it ever was in Win10. The laptop is almost made for Linux.

Anyways, I too, was able to modify the value with wrmsr, but this did not result in any difference in the CPU’s behaviour, unlike doing this in Windows. Just wondering if you had any success.

Thanks!

He hasn’t been around since September

You can use wrmsr to unlock the max turbo ratio across all cpus.

The problem is there is like zero tutorials on it and understanding the MSR registry is a bit complex

This is essentially what happends when people are hacking their v3 xeons by deleting the microcode from the motherboard.

All the cpus can ramp to their max core ratio and the microcode is unable to stop them.

This is writing msrs to control power limits and core ratios.

The benefit of this is you can do it across a wide range of cpus.

I figured out the problem in the end.

On windows changing the tdp was no problem but under linux it wouldn’t do it anymore.
The reason is because I updated the bios right before switching to linux thinking that I won’t be able to do it anymore without windows.
Acer locked down TDP control with that bios update and I ended up selling my laptop.