使用 AMD Epyc CPU 的机器,内核 4.19.71(也尝试过 5.4.0),尝试设置 CPU 性能调节器失败:
# cpupower frequency-set -g performance
Setting cpu: 0
Error setting new values. Common errors:
- Do you have proper administration rights? (super-user?)
- Is the governor yoequested available and modprobed?
- Trying to set an invalid policy?
- Trying to set a specific frequency, but usere governor is not available,
for example because of hardware which cannot be set to a specific frequency
or because the usere governor isn't loaded?
#
所以我开始排除故障:
# cpupower frequency-info
yzing CPU 0:
no or unknown cpufreq driver is active on this CPU
CPUs which run at the same hardware frequency: Not Available
CPUs which need to have their frequency coordinated by software: Not Available
maximum transition latency: Cannot determine or is not supported.
Not Available
available cpufreq governors: Not Available
Unable to determine current policy
current CPU frequency: Unable to call hardware
current CPU frequency: Unable to call to kernel
boost state support:
Supported: yes
Active: yes
Boost States: 0
Total States: 3
Pstate-P0: 2000MHz
Pstate-P1: 1800MHz
Pstate-P2: 1500MHz
#
# ls /sys/devices/system/cpu/cpufreq/
<Empty>
#
#
内核.config
具有以下选项:
CONFIG_CPU_FREQ=y
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_INTEL_PSTATE=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
所以,我花了一些时间来调试驱动程序的行为-drivers/cpufreq/cpufreq.c
和drivers/cpufreq/acpi-cpufreq.c
,发现acpi-cpufreq
实际上失败了消息:
基于 ACPI 的处理器性能控制不可用
调用链如下:
cpufreq_add_dev()
-> cpufreq_online(cpu)
-> cpufreq_driver->init() [*]
[*]
acpi_cpufreq_cpu_init()
-> acpi_processor_register_performance()
-> acpi_processor_get_performance_info()
<return -EIO>
据我了解,在acpi_processor_get_performance_info()
驱动程序尝试从ACPI
表中读取_PCT
对象并失败,因为找不到它。
这是否意味着 BIOS 没有完全支持 ACPI,或者 CPU 微码需要更新,或者内核缺少一些东西?
我很乐意任何建议。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(29条)