Defina o limite de aceleração da temperatura da CPU no Ubuntu / Thinkpad

8

Recebo as seguintes mensagens de erro algumas vezes por hora:

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

Especificação de hardware:

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:

Defino bateria e AC como desempenho nas configurações do meu BIOS, o BIOS está atualizado.

Qual é o problema

O problema é que um limite de temperatura da CPU é atingido muito cedo, acontece em torno de 75 ° C, mesmo que a CPU seja permitido alcançar até 100 ° C . A temperatura nunca vai além de 85 ° C. Então a potência da CPU é acelerada tão rápido.

Não sei se posso ter um problema de hardware do fabricante relacionado à pasta térmica inadequada ou se é relacionado a software. Antes de enviá-lo para a Lenovo, quero ter certeza de que não é um problema self-made .

Estatísticas

Quando eu faço um teste de estresse

stress -c 4 -t 300

a mensagem de erro acontece quase instantaneamente.

O i7z fornece a seguinte saída:

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

Como dito, nunca excede o Temp 85, mas a CPU é sufocada.

sensores mostra o seguinte resultado

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)

Mas o cenário alto provavelmente não tem efeito.

thermald

Então eu brinquei com o thermal naquela época.

Esta é minha configuração ajustada que eu encontrei aqui :

<?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>

Isso não faz diferença real, mas posso ver pelo menos as configurações de limite (as últimas linhas):

╰─ 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

Considerações finais / perguntas

  • É possível definir o limite de temperatura da CPU?
  • É para ser configurado ou está relacionado a BIOS / hardware?
  • Meu hardware (pasta térmica) pode estar com defeito?
  • Ou será que eu analisei algo completamente errado?

Atualização # 1

Depois de aprofundar este tópico e ler vários artigos sobre o afogamento de CPU da Intel e outros posts que enfrentam problemas semelhantes (ou apenas pequenos) em outros sistemas operacionais e kernels, cheguei à conclusão de que meu laptop pode não estar se comportando mal, pensei que seria.

Embora as mensagens do kernel ainda sejam bizarras, a razão pode ser um nível errado de printk do kernel ou qualquer outra. Também recupero essas mensagens quando a temperatura do meu pacote da CPU está em torno de + 52,0 ° C e a freqüência do CPU está apenas em 1200MHz. Isso simplesmente não faz nenhum sentido.

Ao testar meu laptop com testes de estresse, posso ver as mensagens de erro, mas na verdade as CPUs não são estranguladas. Se eu testar apenas 1 núcleo, obtenho uma velocidade total de turbo de 3.900MHz. Testar todos os 4 núcleos reduz a frequência máxima para ~ 3.300MHz. Qual é o comportamento esperado .

Então, vou deixar essa questão de lado - a menos que alguém aqui forneça mais informações.

Atualização nº 2

Nenhuma alteração após a atualização do sistema:

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
    
por Christopher Will 08.03.2018 / 22:09

0 respostas