LINUX.ORG.RU

не получается выставить параметры частоты CPU на процессоре AMD Epyc

 , ,


0

2

Имеетя машина с процессором AMD Epyc 7702P, ядро 4.19.71 (староватое, но менять не могу). Пытаюсь выставить настройки частоты с помощью cpupower:

# 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 you requested available and modprobed?
    - Trying to set an invalid policy?
    - Trying to set a specific frequency, but userspace governor is not available,
       for example because of hardware which cannot be set to a specific frequency
       or because the userspace governor isn't loaded?
#

Начинаю разбираться:

# 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/
<пусто>

Непонятно, почему отсутствуют cpufreq драйвера

Конфиг ядра имеет:

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

Пробовал отключать CONFIG_X86_INTEL_PSTATE, добавлять CONFIG_X86_POWERNOW_K8 (единственный относящийся к AMD), но не помогло.

Временно обновил ядро до 5.4.0. Немного подебажил драйвера drivers/cpufreq/cpufreq.c and drivers/cpufreq/acpi-cpufreq.c и выяснилось, что драйвер acpi-cpufreq при попытке инициализации на процессоре возвращает ошибку -EIO и сообщение:

ACPI-based processor performance control unavailable

Конкретнее, цепочка функций следующая:

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() пытается читать _PCT объект из ACPI таблицы и обламывается, ибо не может найти.

Означает ли это, что в БИОСе нет полной поддержки ACPI, или нужно обновить микрокод на процессоре, или таки что-то отсутствует в ядре?

★★

Последнее исправление: cruz7 (всего исправлений: 6)

Debian? Первые Zen его ядро, ЕМНИП, должно поддерживать.

Korchevatel ★★★★★
()
Ответ на: комментарий от cruz7

Обновил вопрос. Судя по всему проблема с поддержкой ACPI (или части его) в БИОСе.

cruz7 ★★
() автор топика

ядро 4.19.71 (староватое, но менять не могу

ушибленные штабильностью держат марку

anonymous
()
Ответ на: комментарий от anonymous

ядро 4.19.71 (староватое, но менять не могу

ушибленные штабильностью держат марку

Аналогично на 5.4.0

cruz7 ★★
() автор топика

Проблема решилась путем установления в BIOS параметра Power Regulator:

BIOS/Platform Configuration
     -> Power and Performance Options
          -> Power Regulator
               [*] OS Control Mode
cruz7 ★★
() автор топика
Последнее исправление: cruz7 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.