linux: AMD Epyc에서 ACPI 지원이 부족합니까?

linux: AMD Epyc에서 ACPI 지원이 부족합니까?

AMD Epyc CPU, BIOS A43 v1.20, Linux 커널 5.4.0을 갖춘 서버 HPE ProLiant 시스템이 있습니다.

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

관련 정보