该CPU频率定时统计数据都是零:
$ sort --unique /sys/devices/system/cpu/cpu*/cpufreq/stats/time_in_state | column
1600000 0 2100000 0 2600000 0 3100000 0
1700000 0 2200000 0 2800000 0 3300000 0
1900000 0 2400000 0 2900000 0 3400000 0
2000000 0 2500000 0 3000000 0 3401000 0
Run Code Online (Sandbox Code Playgroud)
这怎么可能?真的没有时间花在任何状态吗?
/proc/cpuinfoCPU 显然在频率状态之间转换:
$ grep --perl-regexp --only-matching '(?<=cpu MHz\t\t: )[\d.]+' /proc/cpuinfo | column
1600.000 1600.000 3401.000 1600.000
2900.000 1600.000 2100.000 1600.000
$ while sleep 10; do column /sys/devices/system/cpu/cpu*/cpufreq/stats/total_trans; done
17839 17278 17497 17336 12332 14358 14054 17647
17885 17313 17545 17384 12359 14394 14082 17691
17888 17323 17556 17391 12359 14399 14085 17693
17904 17336 17576 17417 12374 14402 14091 17696
Run Code Online (Sandbox Code Playgroud)有人在论坛上问过这个问题,但从未收到回复。
Linux 内核 3.11 中存在与此相关的问题。该错误已通过以下补丁修复:
http://permalink.gmane.org/gmane.linux.kernel.cpufreq/11672%3E
https://lkml.org/lkml/2013/9/7/126
升级内核(到 3.12-rc1 或更高版本)应该可以解决问题。
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |