变量 sysfs 的 linux 文档scaling_max_freq
报告
允许属于此策略的 CPU 运行的最大频率(以 kHz 为单位)。
该属性是读写的,向其写入表示整数的字符串将导致设置新的限制(它不得低于该
scaling_min_freq
属性的值)。
我对上述内容的看法是我可以使用以下命令
$ echo 2133000 >/sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
向 cpufreq 调节器表明我希望 cpu0 以最大 2133Mhz 运行。设置值后,我可以通过以下方式检查它的设置
$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
这确实产生了 2133000
现在奇怪的部分来了,这促使我在这里提出这个问题:
在执行 CPU 密集型任务(例如内核构建)期间,我检查该值,/sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
它报告 1199000,这是一个低得多的频率。
现在我很困惑:谁改变了这个值? cpufreq 调节器?
更新/信息以表扬
dmesg
不显示任何限制消息make -j4
被用来这样使用intel cpu的4个四管线(model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
)uname -a
因此显示了Linux work 4.18.3-arch1-1-ARCH #1 SMP PREEMPT Sat Aug 18 09:22:54 UTC 2018 x86_64 GNU/Linux
我的 arch linux stock 内核- cpufreq 调节器是
schedutil
/sys/devices/system/cpu/cpufreq/policy0/scaling_driver
节目acpi-cpufreq
/sys/devices/system/cpu/cpu0/cpufreq/bios_limit
告诉 2666000 正如我所期望的 cpu 的最大频率。 (我应该在CPU压力期间检查这个值,还是在空闲状态下检查这个值?)
该笔记本电脑是 Lenovo Thinkpad X201t(平板电脑)型号,电源适配器是购买时为该型号提供的原装电源适配器。不过,我已暂时将主电源适配器更换为另一个电源适配器,并将报告结果。
要绝对清楚。scaling_max_freq
高CPU负载任务结束后恢复该值。在“几乎空闲”状态下,它再次告诉我2133000
最初的设置。