I had the same issue which has also started after upgrading to 17.10. Also, my specs are quite similar.
Finally, I was able to resolve it by simply booting in UEFI mode.
It makes my CPU driver behave more optimally:
- In BIOS boot mode performance governor is always on with turbo boost and current frequency is always equal to max frequency.
- In UEFI powersave is preferred with performance mode kicking in when needed and frequency rising on demand.
No more overheating issues. Tested back and forth.
Update: Troubleshooting steps I've taken
Step 1: Check logs in /var/log
. System and kernel logs reported temperature reaching high levels several minutes before each shutdown:
Nov 12 13:36:20 kernel: [ 899.138274] CPU0: Package temperature above threshold, cpu clock throttled (total events = 1)
Nov 12 13:36:20 kernel: [ 899.139245] CPU0: Core temperature/speed normal
Notice that in the very same second it says that temperature is back to normal. Weird, but nothing else was suspicious in logs.
Step 2: Measure the temperature which triggers shutdown. I used lm-sensors
to watch sensor values every second and dump the results to a file.
The shutdown temperatures were more or less at 95 celcius - a few degrees short of 100 which normally should trigger shutdown.
Step 3: Test various power/temperature management packages like tlp
, laptop-mode-tools
, cpufreq
, cpupower
, etc. -- none of them helped.
Step 4: Examine /sys/devices/system/cpu/cpu*/cpufreq
directory for clues. I noticed that scaling_cur_freq
, scaling_min_freq
and scaling_max_freq
files always showed the same value which is 3500000 for me. Also 3,5 GHz is a turbo boost mode. Weird.
Step 5: Use cpupower
to manually change the CPU governor to powersave and later to throttle the CPU. Did not help. It looked, however, as if the CPU did not throttle even if the command succeeded.
Step 6: Change the CPU driver and disable intel_pstate
in grub config file.
Step 7: Switch to alternative graphic card drivers -- did not help at all.
Step 8: Disassemble the laptop and clean it - TINY bit better, but did not resolve the issue :)
Step 8: Change boot mode since it could potentially influence low-level drivers. I repeated step 4 afterwards and noticed the CPU behaved differently indeed.
Maybe someone else will be able to enlighten us how this actually works :)
Best Answer
ThrottleStop writes data to the multiplier request register. This is MSR 0x199. You should be able to write a simple batch file that writes the same data to this register when you are using Linux.
You can use the MSR Tool to see what values ThrottleStop is writing to this register.
http://www.mediafire.com/download/myjkxzkzzmd/MSR.zip
It lets you read and write data to various CPU registers in Windows. Doing the same thing should be doable in Linux. Setting a multiplier in MSR 0x199 that is less than the default maximum should allow you to slow your CPU down which will reduce how much heat it puts out. That's all the ThrottleStop - Set Multiplier feature does. Clock modulation is hiding in MSR 0x19A. Using that register is useful on the 2nd and 3rd Gen Core i CPUs when your goal is to limit heat output.