web-dev-qa-db-ja.com

Ubuntu / ThinkpadでCPU温度スロットルしきい値を設定する

1時間に数回、次のエラーメッセージが表示されます。

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

ハードウェア仕様:

ThinkPad X1 Yoga 2nd
N1NET33W (1.20 )
Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz
Production date 2017.11

ソフトウェア:

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:

BIOS設定でbatteryACの両方をperformanceに設定します、BIOSは最新です。

問題は何ですか

問題は、CPU温度のしきい値に達するのが早すぎることです。CPUが 100°Cまで到達可能 であっても、75°C付近で発生します。温度が85°Cを超えることはありません。そのため、CPUパワーは非常に速く調整されます。

サーマルペーストが不十分であるという製造元のハードウェアの問題があるのか​​、それともソフトウェアに関連するのかはわかりません。 Lenovoに送信する前に、それが自作の問題ではないことを確認したい

統計

ストレステストを実行するとき

stress -c 4 -t 300

エラーメッセージはほぼ瞬時に発生します。

i7zの出力は次のとおりです。

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

前述のとおり、85 Tempを超えることはありませんが、CPUは調整されます。

sensorsは次の出力を示します

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)

しかし、高い設定はおそらく効果がありません。

thermald

それで、私はThermaldで遊んでみました。

これは、調整済みの構成です ここで見つけました

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

これは実質的な違いはありませんが、少なくともしきい値の設定を確認できます(最後の行):

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

最終的な考え/質問

  • CPU温度のしきい値を設定することはできますか?
  • 設定するつもりですか、それともこのBIOS /ハードウェアに関連していますか?
  • ハードウェア(サーマルペースト)に欠陥がありますか?
  • それとも、何か完全に間違ったものを分析したのでしょうか?

#1を更新

このトピックをさらに深く掘り下げ、IntelのCPUスロットリングや他のオペレーティングシステムとカーネルで同じ(またはわずかに異なる)問題に直面している他の投稿に関するいくつかの記事を読んだ後、私は自分のラップトップが思ったように誤動作していないかもしれないという結論に達しました。

カーネルメッセージはまだ奇妙ですが、その理由は間違ったカーネルprintkレベルなどです。 CPUパッケージの温度が+ 52.0°C付近で、CPU周波数が1200MHzである場合にも、これらのメッセージを取得します。これはまったく意味がありません。

ストレステストでラップトップをテストすると、エラーメッセージが表示されますが、実際にはCPUが調整されません。 1コアのみをテストすると、3,900MHzのフルターボブースト速度が得られます。 4つのコアすべてをテストすると、最大周波数が最大3,300MHzに低下します。 予想される動作 です。

だから私はこの問題を脇に置きます-ここの誰かがより多くの内部を提供しない限り。

#2を更新

システム更新後の変更なし:

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

#3を更新

システム更新後の変更なし:

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

したがって、私の最終的な仮定は、ログが偽物である可能性が高いこと、またはログレベルが誤って設定されていることです。私のラップトップは正常に動作するだけでなく、調整もされないため、過熱することもありません。

それでも、誰かがこれをどのように修正することができるか予感がある場合は、お気軽に答えてください:-)

#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

しきい値調整メッセージが引き続き表示されます。

16

しょーた

あなたの提案された erpalmaのthrottle-tool を議論するために、私は答えを作成しました。

いくつかのシステムがフリーズするなど、このツールを少し試してみました:)残念ながら、システムの適切な構成がまだ見つかりませんでした。しかし、このツールは間違いなく私のシステムに影響を与えます。初めて何かを見たとき本当にスロットル/温度の挙動が変わります。

ツールがなければ、CPUの温度が85°Cを超えることはありませんでした。ツールをインストールしてサービスを開始すると、ストレス下で温度が98°Cに上昇し、コア周波数が(3187MHzではなく)〜3300MHzになることがわかります。

erpalmaは tool s-tui を推奨していますが、これも間違いなく推奨できます。

enter image description here

  1. 上記のスロットルサービスをインストールする前に
  2. サービスを有効にした後

システムを数日間監視し、報告します。どうもありがとう!

1

thermaldに対して提出された bug report があります。

負荷時のCPU周波数制御の不安定な動作

あなたが報告したのと同じエラーが発生します:

Oct 14 22:30:59 p5520 kernel: [ 9481.033687] CPU3: Package temperature above threshold, cpu clock throttled (total events = 5845)
Oct 14 22:30:59 p5520 kernel: [ 9481.033688] CPU7: Package temperature above threshold, cpu clock throttled (total events = 5845)
Oct 14 22:30:59 p5520 kernel: [ 9481.033718] CPU1: Package temperature above threshold, cpu clock throttled (total events = 5845)
Oct 14 22:30:59 p5520 kernel: [ 9481.033719] CPU5: Package temperature above threshold, cpu clock throttled (total events = 5845)
Oct 14 22:30:59 p5520 kernel: [ 9481.033720] CPU0: Package temperature above threshold, cpu clock throttled (total events = 5845)
Oct 14 22:30:59 p5520 kernel: [ 9481.033720] CPU4: Package temperature above threshold, cpu clock throttled (total events = 5845)
Oct 14 22:30:59 p5520 kernel: [ 9481.033722] CPU6: Package temperature above threshold, cpu clock throttled (total events = 5845)
Oct 14 22:30:59 p5520 kernel: [ 9481.033722] CPU2: Package temperature above threshold, cpu clock throttled (total events = 5845)
Oct 14 22:30:59 p5520 kernel: [ 9481.034709] CPU3: Package temperature/speed normal
Oct 14 22:30:59 p5520 kernel: [ 9481.034710] CPU0: Package temperature/speed normal
Oct 14 22:30:59 p5520 kernel: [ 9481.034711] CPU4: Package temperature/speed normal
Oct 14 22:30:59 p5520 kernel: [ 9481.034711] CPU7: Package temperature/speed normal
Oct 14 22:30:59 p5520 kernel: [ 9481.034738] CPU2: Package temperature/speed normal
Oct 14 22:30:59 p5520 kernel: [ 9481.034738] CPU6: Package temperature/speed normal
Oct 14 22:30:59 p5520 kernel: [ 9481.034739] CPU1: Package temperature/speed normal
Oct 14 22:30:59 p5520 kernel: [ 9481.034740] CPU5: Package temperature/speed normal

コメント#18のコメント:

コマンドラインからウィンドウでthermaldを実行してみてください。

systemctl stop thermald
#thermald --no-daemon --loglevel=info

次に、これをトリガーするものを実行し、上記のコマンドの出力を添付します。

バグレポートが状況に合っていると判断した場合は、電子メール通知を購読できます。


私のマシンでは、thermaldtlpがロードされている問題を再現できません。 5つのターミナルを開き、それぞれに入力しました。

while true ; do : ; done

発生したのは、5つのコアが100%および3100 MHzで実行されていることだけです。スロットルは発生していませんが、2つのラップトップファンが低速で動作しました。通常、Linuxではオフになっています(または、少なくとも聞こえません)。システムの温度は摂氏88度で、キーボードはこの回答の入力に応答します。しかし、リビングルームは少し暖かく感じます...

1