Linux cpufreq 调节器是否会临时更改 sysfs 的scaling_max_freq?

Linux cpufreq 调节器是否会临时更改 sysfs 的scaling_max_freq?

变量 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最初的设置。

相关内容