linux:AMD Epyc 上的 ACPI 支持很差?

linux:AMD Epyc 上的 ACPI 支持很差?

我有一个服务器 HPE ProLiant 系统,配备 AMD Epyc CPU、BIOS A43 v1.20、Linux 内核 5.4.0。

cpupower总是报告没有可用的驱动程序,因此我无法设置 CPU 频率(详细信息在我的其他问题中)linux:无法使用 cpupower 设置 cpu 频率调节器):

# cpupower frequency-info
analyzing 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>
#
#

我调试驱动程序行为的努力 - 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 微码需要更新,或者内核缺少某些东西?

我很乐意提供任何建议/评论。

答案1

我在BIOS中设置以下参数后问题得到解决:

BIOS/Platform Configuration
     -> Power and Performance Options
          -> Power Regulator
               [*] OS Control Mode

显然它允许操作系统更改和检查请求P-states的状态等。P-state

相关内容