web-dev-qa-db-ja.com

CPUスケーリング:現在の周波数を最小-最大範囲外にするにはどうすればよいですか?

CPUが高い周波数で動作しない理由を理解しようとしています( related link

最小値と最大値が定義されたときに、有効な値が最終的にその範囲から外れる可能性があることを誰かが説明できますか?

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
3267000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 
3300000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 
1199960


$ cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.30 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.27 GHz and 3.30 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.20 GHz.
  boost state support:
    Supported: yes
    Active: yes
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

また、誰かがcpuinfo_cur_freqscaling_cur_freqの違いを説明できますか?


問題を解決するために開いた関連の問題(ここで言及されていない有用な追加情報が含まれている場合があります)


追加情報:

$ Sudo rdmsr -a 0x19a
0
0
0
0
rdmsr: No CPU 4
4

プロセッサによって異なりますが、あなたの場合、cpuinfo_cur_freqscaling_cur_freqは同じものです。
一部のプロセッサでは、cpuinfo_cur_freqにハードウェア読み取りが含まれ、時間の面で「高価」になることがあります。これが、アクセスにSudoを必要とする理由です。

CPU周波数は、設定した制限を超えている可能性があります。これは、負荷が十分に軽い場合、要求内容に関係なく、プロセッサ自体がPLL(位相ロックループ)でバックオフできるためです。実際に実行する作業がある場合、CPU周波数が非常に速くスピンアップすることを心配しないでください。あなたの場合、パフォーマンスガバナーを使用しています。これにより、CPU周波数のランプアップ時間が可能な限り速くなります。

あなたが参照した他の質問について、そして私があちらで言及したように、クロック変調が関係していると思います。これはintel_pstate CPU周波数ドライバの問題です。クロック変調が有効になっているかどうかを確認または拒否するには、この結果を質問に追加してください。

$ Sudo modprobe msr
$ Sudo rdmsr -a 0x19a

パッケージmsr-toolsがrdmsrプリミティブに必要であることに注意してください。提供された情報をデコードします。

3
Doug Smythies