Ubuntu – Undervolting Ivy bridge core i7 laptop with Ubuntu 16.04 – TLP & PHC not suitable

intel-cpupower-management

Linux noobe exploring the possibilities of Ubuntu.

My question is, how to undervolt my Dell E6530 with a core i7-3720QM?
I'm running Ubuntu 16.04LTS (Loving it!) and read the posts on here relevant to my question. They suggest installing TLP, which I have done. Reading the TLP documents, undervolting with TLP requires installing PHC. Running through the PHC install it is apparent there is not a version suitable for the later model core i Intel CPUs as they use P-states. PHC would also not install for my Kernel version (4.4)

From PHC wiki page
"Note: Current Intel core i CPUs use Intel P-states instead of acpi_cpufreq and are therefor not compatible with PHC."

So if PHC (and therefore TLP?) can't be used to undervolt, how do I do it on the more current generations of Intel CPUs? (or just my Ivy bridge gen)

To be clear I'm looking at a pure undervolt, not just changing frequencies (although the flexibility to do both is desirable).

Thanks in advance for any and all help,
Nigel

Best Answer

So if PHC (and therefore TLP?) can't be used to undervolt

… then no one is working to support it and it can't be done – yet, probably never. To my knowledge PHC and TLP are independent projects they just complement each other in some setups.

Here is a description from the Arch wiki about PHC:

PHC is an acpi-cpufreq patch built with the purpose of enabling undervolting on your processor.

Also note there has never been a guaranteed result, according to the PHC website:

This is possible because we utilize the production tolerance of a CPU. CPUs have different production qualities so the vendor defines voltages every CPU -even those with low quality- will work with. If your CPU is of higher quality you can easily run it with lower voltages without getting unstable.

Wikipedia explains what P-states are: a range of states that define clock frequency and power consumption, which includes voltage scaling, e.g. under or overvolting (boost).

These states are implementation-dependent.

Read this like: when Intel introduced "P-states" they implemented a design to take more control over dynamic frequency and voltage scaling, handing over control from the OS or user back to the CPU. Early implementations of this technology – if you remember – only allowed the OS to tell a "dumb" processor to not run at full clock speed all the time. Intel went further with Skylake introducing Speed Shift and with that taking away even more control over the processor from the OS/user in order minimize delays and squeeze as much performance and energy consumption out of their current designs with the state of the art.

Edit: This sounds like a praise of Intel and you might argue that a user should still have control over these parameters. Consider this from Intel's perspective: absolute control over the product. They also removed the option to choose a CPU clock multiplier on their mainstream models and only enable it on the expensive models.