I receive following error messages a couple of times per hour:
08.03.18 21:27 kernel CPU0: Core temperature above threshold, cpu clock throttled (total events = 2234)
08.03.18 21:27 kernel CPU2: Core temperature above threshold, cpu clock throttled (total events = 2234)
08.03.18 21:27 kernel CPU1: Package temperature above threshold, cpu clock throttled (total events = 2695)
08.03.18 21:27 kernel CPU3: Package temperature above threshold, cpu clock throttled (total events = 2695)
08.03.18 21:27 kernel CPU2: Package temperature above threshold, cpu clock throttled (total events = 2695)
08.03.18 21:27 kernel CPU0: Package temperature above threshold, cpu clock throttled (total events = 2695)
08.03.18 21:27 kernel CPU2: Core temperature/speed normal
08.03.18 21:27 kernel CPU0: Core temperature/speed normal
08.03.18 21:27 kernel CPU3: Package temperature/speed normal
08.03.18 21:27 kernel CPU1: Package temperature/speed normal
08.03.18 21:27 kernel CPU0: Package temperature/speed normal
08.03.18 21:27 kernel CPU2: Package temperature/speed normal
Hardware spec:
ThinkPad X1 Yoga 2nd
N1NET33W (1.20 )
Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz
Production date 2017.11
Software:
Distributor ID: Ubuntu
Description: Ubuntu 17.10
Release: 17.10
Codename: artful
Linux 4.13.0-36-generic #40-Ubuntu SMP Fri Feb 16 20:07:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Bios:
I set both battery and AC to performance in my BIOS settings, the BIOS is up to date.
What is the problem
The problem is that a threshold of CPU temperature is hit quite too early, it happens around 75°C, even though the CPU is allowed to reach up to 100°C. The temperature never goes higher than 85°C. So the CPU power gets throttled so fast.
I don't know if I may have a manufacturer hardware issue regarding inadequate thermal paste, or if it is software related. Before I send it to Lenovo I want to be sure it's not a self-made problem.
Stats
When I run a stress test
stress -c 4 -t 300
the error message happens almost instantly.
i7z gives following output:
Cpu speed from cpuinfo 2903.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2903 MHz
CPU Multiplier 29x || Bus clock frequency (BCLK) 100.10 MHz
Socket [0] - [physical cores=2, logical cores=4, max online cores ever=2]
TURBO ENABLED on 2 Cores, Hyper Threading ON
Max Frequency without considering Turbo 3003.10 MHz (100.10 x [30])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 39x/39x/39x/39x
Real Current Frequency 3187.97 MHz [100.10 x 31.85] (Max of below)
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore
Core 1 [0]: 3187.97 (31.85x) 99.9 0 0 0 85 1.0037
Core 2 [1]: 3187.97 (31.85x) 99.9 0 0 0 84 1.0037
C0 = Processor running without halting
C1 = Processor running with halts (States >C0 are power saver modes with cores idling)
C3 = Cores running with PLL turned off and core cache turned off
C6, C7 = Everything in C3 + core state saved to last level cache, C7 is deeper than C6
Above values in table are in percentage over the last 1 sec
[core-id] refers to core-id number in /proc/cpuinfo
'Garbage Values' message printed when garbage values are read
Ctrl+C to exit
As said, it never exceeds the 85 Temp, yet the CPU gets throttled.
sensors shows following output
iwlwifi-virtual-0
Adapter: Virtual device
temp1: +30.0°C
pch_skylake-virtual-0
Adapter: Virtual device
temp1: +52.0°C
acpitz-virtual-0
Adapter: Virtual device
temp1: +56.0°C (crit = +98.0°C)
thinkpad-isa-0000
Adapter: ISA adapter
fan1: 5859 RPM
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +59.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +59.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +58.0°C (high = +100.0°C, crit = +100.0°C)
But the high-setting probably has no effect.
thermald
So I've played around with thermald then.
This is my adjusted configuration that I've found here:
<?xml version="1.0" encoding="UTF-8"?>
<ThermalConfiguration>
<Platform>
<Name>Use Fan control first then CPU throttle</Name>
<ProductName>*</ProductName>
<Preference>QUIET</Preference>
<ThermalZones>
<ThermalZone>
<Type>x86_pkg_temp</Type>
<TripPoints>
<TripPoint>
<SensorType>x86_pkg_temp</SensorType>
<Temperature>90000</Temperature>
<type>passive</type>
<ControlType>SEQUENTIAL</ControlType>
<CoolingDevice>
<type>_fan_</type>
</CoolingDevice>
</TripPoint>
</TripPoints>
</ThermalZone>
</ThermalZones>
<CoolingDevices>
<CoolingDevice>
<Type>_fan_</Type>
<Path>/sys/bus/platform/devices/thinkpad_hwmon/pwm1</Path>
<MinState>100</MinState>
<MaxState>255</MaxState>
<IncDecStep>50</IncDecStep>
<DebouncePeriod>10</DebouncePeriod>
</CoolingDevice>
</CoolingDevices>
</Platform>
</ThermalConfiguration>
This makes no real difference, but I can see threshold settings at least (the last lines):
╰─ sudo thermald --no-daemon --loglevel=info
NO RAPL sysfs present
22 CPUID levels; family:model:stepping 0x6:8e:9 (6:142:9)
Running on a vanilla kernel
Polling mode is enabled: 4
sensor_update: type x86_pkg_temp
sensor_update: type pch_skylake
sensor_update: type iwlwifi
sensor_update: type acpitz
thd_read_default_thermal_sensors loaded 4 sensors
dts /sys/devices/platform/coretemp.0/name doesn't exist
dts /sys/class/hwmon/hwmon3/name doesn't exist
failed to open /dev/acpi_thermal_rel
failed to open /dev/acpi_thermal_rel
TRT/ART read failed
Dumping parsed XML Data
*** Index 0 ***
Name: UseFancontrolfirstthenCPUthrottle
UUID:
type: 0
Zone 0
Name: x86_pkg_temp
Trip Point 0
temp 90000
trip type 2
hyst id 0
sensor type x86_pkg_temp
cdev index 0
type _fan_
influence 0
SamplingPeriod 0
Cooling Dev 0
Type: _fan_
Path: /sys/bus/platform/devices/thinkpad_hwmon/pwm1
Min: 100
Max: 255
Step: 50
AutoDownControl: 0
Product Name matched [wildcard]
sensor index:3 x86_pkg_temp /sys/class/thermal/thermal_zone3/ Async:1
sensor index:1 pch_skylake /sys/class/thermal/thermal_zone1/ Async:0
sensor index:2 iwlwifi /sys/class/thermal/thermal_zone2/ Async:0
sensor index:0 acpitz /sys/class/thermal/thermal_zone0/ Async:0
sensor index:4 hwmon /sys/class/hwmon/hwmon1/temp1_input Async:0
sensor index:5 hwmon /sys/class/hwmon/hwmon1/temp2_input Async:0
sensor index:6 hwmon /sys/class/hwmon/hwmon1/temp3_input Async:0
thd_read_default_cooling devices loaded 4 cdevs
powercap RAPL no long term time window
Use Default pstate drv settings
Product Name matched [wildcard]
3: Processor, C:0 MN: 0 MX:10 ST:1 pt:/sys/class/thermal/ rd_bk 0
1: Processor, C:0 MN: 0 MX:10 ST:1 pt:/sys/class/thermal/ rd_bk 0
2: Processor, C:0 MN: 0 MX:10 ST:1 pt:/sys/class/thermal/ rd_bk 0
0: Processor, C:0 MN: 0 MX:10 ST:1 pt:/sys/class/thermal/ rd_bk 0
4: intel_pstate, C:0 MN: 0 MX:10 ST:1 pt:/sys/devices/system/cpu/intel_pstate/ rd_bk 1
5: _fan_, C:255 MN: 100 MX:255 ST:50 pt:/sys/bus/platform/devices/thinkpad_hwmon/pwm1 rd_bk 1
6: LCD, C:0 MN: 0 MX:1060 ST:106 pt:/sys/class/backlight/intel_backlight/ rd_bk 1
Sorted trip dump zone index:1 type:pch_skylake:
index 0: type:critical temp:115000 hyst:1 zone id:1 sensor id:1 cdev size:0
trip type: 0 temp: 115000
Sorted trip dump zone index:0 type:acpitz:
index 0: type:critical temp:98000 hyst:1 zone id:0 sensor id:0 cdev size:0
trip type: 0 temp: 98000
thd_read_default_thermal_zones loaded 2 zones
zone cpu will be created
dts zone /sys/devices/platform/coretemp.0/name doesn't exist
/sys/class/hwmon/hwmon4/name->iwlwifi
/sys/class/hwmon/hwmon2/name->pch_skylake
/sys/class/hwmon/hwmon0/name->acpitz
dts zone /sys/class/hwmon/hwmon3/name doesn't exist
/sys/class/hwmon/hwmon1/name->coretemp
Buggy max temp: to close to critical 90000
Core temp DTS :critical 100000, max 90000, psv 95000
node type: Element, name: CoolingDevice value: rapl_controller
node type: Element, name: CoolingDevice value: intel_pstate
node type: Element, name: CoolingDevice value: intel_powerclamp
node type: Element, name: CoolingDevice value: cpufreq
node type: Element, name: CoolingDevice value: Processor
CDEVS order specified in thermal-cpu-cdev-order.xml
Sorted trip dump zone index:4 type:cpu:
index 0: type:passive temp:95000 hyst:0 zone id:4 sensor id:65535 cdev size:2
cdev[0] intel_pstate
cdev[1] Processor
trip type: 2 temp: 95000
Product Name matched [wildcard]
zone x86_pkg_temp bounded
Sorted trip dump zone index:5 type:x86_pkg_temp:
index 0: type:passive temp:90000 hyst:0 zone id:5 sensor id:3 cdev size:1
cdev[0] _fan_
trip type: 2 temp: 90000
Zone 1: pch_skylake, Active:0 Bind:0 Sensor_cnt:1
..sensors..
sensor index:1 pch_skylake /sys/class/thermal/thermal_zone1/ Async:0
..trips..
index 0: type:critical temp:115000 hyst:1 zone id:1 sensor id:1 cdev size:0
Zone 0: acpitz, Active:0 Bind:0 Sensor_cnt:1
..sensors..
sensor index:0 acpitz /sys/class/thermal/thermal_zone0/ Async:0
..trips..
index 0: type:critical temp:98000 hyst:1 zone id:0 sensor id:0 cdev size:0
Zone 4: cpu, Active:1 Bind:0 Sensor_cnt:1
..sensors..
sensor index:3 x86_pkg_temp /sys/class/thermal/thermal_zone3/ Async:1
..trips..
index 0: type:passive temp:95000 hyst:0 zone id:4 sensor id:65535 cdev size:2
cdev[0] intel_pstate
cdev[1] Processor
index 1: type:polling temp:90000 hyst:0 zone id:4 sensor id:3 cdev size:0
Zone 5: x86_pkg_temp, Active:1 Bind:1 Sensor_cnt:1
..sensors..
sensor index:3 x86_pkg_temp /sys/class/thermal/thermal_zone3/ Async:1
..trips..
index 0: type:passive temp:90000 hyst:0 zone id:5 sensor id:3 cdev size:1
cdev[0] _fan_
index 1: type:polling temp:85000 hyst:0 zone id:5 sensor id:3 cdev size:0
FD = 7
Current user preference is 0
thd_engine_thread begin
Set : threshold:90000, temperature:53000, cdev:5(_fan_), curr_state:205, max_state:255
Set : threshold:90000, temperature:57000, cdev:5(_fan_), curr_state:155, max_state:255
Set : threshold:90000, temperature:85000, cdev:5(_fan_), curr_state:105, max_state:255
Set : threshold:90000, temperature:85000, cdev:5(_fan_), curr_state:100, max_state:255
Final thoughts/questions
- Is it possible to set the CPU temperature threshold?
- Is it meant to be set at all or is this BIOS/hardware related?
- May my hardware (thermal paste) be defect?
- Or did I maybe analysed something completely wrong?
Update #1
After diving deeper into this topic and reading several articles regarding Intel's CPU throttling and other posts facing same (or just slight different) issues on other operating systems and kernels, I came to the conclusion that my laptop may be not misbehaving as I thought it would.
Though the kernel-messages are still bizarre, but the reason could be a wrong kernel printk level or whatsoever. I also retrieve those messages when my CPU package temperature is around +52.0°C and CPU frequency just 1200MHz. This just does not make any sense at all.
When testing my laptop with stress-tests I can see the error messages, but in fact the CPUs don't get throttled. If I test 1 core only, I get full turbo boost speed of 3,900MHz. Testing all 4 cores reduces the maximum frequency to ~3,300MHz. Which is the expected behavior.
So I'll just put this issue aside - unless someone here may provide more insides.
Update #2
No changes after updating the system:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic
Linux4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Update #3
No changes after updating the system:
Distributor ID: Ubuntu
Description: Ubuntu 18.10
Release: 18.10
Codename: cosmic
Linux x1 4.18.0-13-generic #14-Ubuntu SMP Wed Dec 5 09:04:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
So my final assumption is that the logs are highly likely bogus or that the log-level is mis-configured. Because my laptop just works fine, nor does it get throttled, neither is it overheating.
Still, if anyone has a hunch how this could be fixed, feel free to answer :-)
Update #4
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.04
Release: 19.04
Codename: disco
Linux cw-x1 5.0.0-13-generic #14-Ubuntu SMP Mon Apr 15 14:59:14 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
I am still getting the threshold throttling messages.
Update #5
Same results with a fresh 19.10 installation:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
I just found a post that states that this issue is even not fixed with the brand new X1 Extreme 2nd Gen.
For the sake of fellow people who are thinking about buying the notebook I have, here are some issues I am facing besides:
- Touch screen not functioning properly
- Fingerprint not working
- Hibernate is only successful occasionally
- Switching between different working environments (office and home office) mostly never works due to graphic issues
- In general a lot of problems with multiple monitors
- Hard drive swapping occurs even though plenty of free RAM is available
- General and various issues with kscreen und xrandr
So, I guess I will surrender now and move to HP or Dell. For a laptop of ~2500€ I really do not want to have these kind of issues :-(
Update #6
Fun fact: I just received my Dell Precision 5540 with an Intel Core i9-9980HK yesterday.. and guess what..
11.12.19 22:11 kernel mce: CPU9: Package temperature above threshold, cpu clock throttled (total events = 412597)
11.12.19 22:11 kernel mce: CPU5: Package temperature above threshold, cpu clock throttled (total events = 412165)
11.12.19 22:11 kernel mce: CPU13: Package temperature above threshold, cpu clock throttled (total events = 412647)
11.12.19 22:11 kernel mce: CPU1: Package temperature above threshold, cpu clock throttled (total events = 412648)
11.12.19 22:11 kernel mce: CPU15: Package temperature above threshold, cpu clock throttled (total events = 412378)
11.12.19 22:11 kernel mce: CPU7: Package temperature above threshold, cpu clock throttled (total events = 412669)
11.12.19 22:11 kernel mce: CPU0: Package temperature above threshold, cpu clock throttled (total events = 412669)
11.12.19 22:11 kernel mce: CPU8: Package temperature above threshold, cpu clock throttled (total events = 412625)
11.12.19 22:11 kernel mce: CPU11: Package temperature above threshold, cpu clock throttled (total events = 412668)
11.12.19 22:11 kernel mce: CPU4: Package temperature above threshold, cpu clock throttled (total events = 412102)
11.12.19 22:11 kernel mce: CPU2: Package temperature above threshold, cpu clock throttled (total events = 412669)
11.12.19 22:11 kernel mce: CPU6: Package temperature above threshold, cpu clock throttled (total events = 412669)
11.12.19 22:11 kernel mce: CPU3: Package temperature above threshold, cpu clock throttled (total events = 412208)
11.12.19 22:11 kernel mce: CPU14: Package temperature above threshold, cpu clock throttled (total events = 412661)
11.12.19 22:11 kernel mce: CPU12: Package temperature above threshold, cpu clock throttled (total events = 411001)
11.12.19 22:11 kernel mce: CPU10: Package temperature above threshold, cpu clock throttled (total events = 412663)
11.12.19 22:11 kernel mce: CPU9: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU5: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU2: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU15: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU1: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU10: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU7: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU13: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU8: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU11: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU0: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU4: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU3: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU12: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU14: Package temperature/speed normal
11.12.19 22:11 kernel mce: CPU6: Package temperature/speed normal
I am both speechless and lackadaisical right now. I guess I just won't check my logs anymore :-( Case closed.
There is a bug report filed against
thermald
:People get the same errors you report:
Comment #18 says to:
If you decide the bug report fits your situation you can subscribe to the email notifications.
On my machine I can't duplicate the problem with
thermald
andtlp
loaded. I opened five terminals and typed into each one:All that happened is five cores are running at 100% and 3100 MHz. No throttling has occurred but it did make the two laptop fans run on low speed. Normally in Linux they are off (or at least I can't hear them). System temperature is 88 Celsius and keyboard is still responsive to type this answer. The living room does feel a bit warmer though...
@WinEunuuchs2Unix
I've created an answer, in order to discuss your proposed throttle-tool from erpalma.
I've played around with this tool a bit - including several systems freezes :) I couldn't find the proper configuration for my system yet, unfortunately. But this tool definitely has impact on my system. The first time I see something really changing the throttling/temperature behavior.
Without the tool my CPU temperature never got higher than 85°C. Once I've installed the tool and started the service, I can see the temperature increasing to 98°C under stress, with a core frequency of ~3300MHz (rather than 3187MHz).
erpalma recommends the tool s-tui, which I can definitely recommend too.
I will monitor my system for a couple of days, and will report back. Thanks for now!
I had the same issue, getting errors like this:
None of the previous answers here worked, but this answer on SuperUser gave me the idea of looking for a relevant BIOS setting.
I have disabled the speedstep function in my Lenovo E590 Ci8 BIOS and that has solved the problem for me, the above errors are gone.
EDIT-: Real solution i was installing ARCH Linux started having this problem from live boot for installation, resolved by installing latest INTEL PROCESSOR MICROCODE
When the log said the temperature is above threshold. It is above threshold(95C) at that moment. Intel cpu has short term turbo boost that can draw huge amount of power for very short time(less than 1s). If the monitor uses average temperature over 1s to measure max temperature it is usually not reflected. It is not good for the hardware but it is the effort to make the cpu more responsive.