acpi_cpufreq ドライバーを使用しています。time_in_state から平均頻度が次のようにカウントされる理由を理解するのを手伝ってください。
For each line in time_in_state file:
1) Read line from time_in_state file, get frequency: freq
2) Get delta time betwen previous and current reading: delta_times
3) total_freq_times += freq*delta_times
4) total_times += delta_times
Average frequency = total_freq_times/total_times
ターボブーストがオンの場合、i7zツールまたはmsrレジスタの読み取りによって収集された平均周波数は境界で等しくありませんか?
time_in_state の最初の行周波数はターボ モードを表し、私の場合は 1996000 であることを理解しています。
CPU でバランスの取れた負荷を実行すると、CPU 使用率が 70 ~ 80% になります。time_in_state で平均頻度をカウントすると、1899249.88 になります (time_in_state の最初の行カウンターに増分はありません) が、msr を読んだり、i7z ツールで監視したりすると、2129067.50 が表示されます。
i7z CPUによると、すでにターボモードになっていますが、time_in_stateはそうではありません...
誰か説明できますか?