Что такое использование struct cpufreq_policy в Linux Подсистеме частоты ядра ядра - PullRequest
1 голос
/ 05 апреля 2020

Я читал о подсистеме CPUFreq. Существует два драйвера

  • Регуляторы масштабирования: которые определяют, какой должна быть следующая частота, для выбора
  • Драйверы масштабирования: напрямую связываются с оборудованием и устанавливают частоту, предоставляемую регуляторами масштабирования

Проходя через различные структуры, я понял, что

struct cpufreq_driver -> Структура, представляющая драйвер масштабирования, который взаимодействует с оборудованием и изменяет частоту

struct cpufreq_governor - Структура, представляющая регулятор частоты процессора

Какая польза от структуры cpufreq_policy, она передается в качестве обратного вызова всем членам структуры cpufreq_governor?

1 Ответ

1 голос
/ 05 апреля 2020

Насколько я понимаю (читай: я прошел пять минут в дереве исходников), struct cpufreq_policy - это состояние, управляемое управляющими и обрабатываемое драйверами масштабирования.

Содержит ограничения по частоте, в которых работает регулятор, объекты синхронизации (например, rwsem), таблицу частот, ЦП, на которые влияет политика, и так далее.

В этом примере регулятора здесь политика используется для инициализации некоторой структуры для каждого процессора, которая, вероятно, используется драйвером масштабирования.
Обратите внимание, что эти драйверы работают в основном в два режима: target_index, где частота задается из индекса в таблице частот (в политике) и set_policy, где задаются пределы частоты для аппаратного обеспечения (т. е. HWP для Intel) или программного обеспечения для работы внутри.

Я не совсем понял полную картину (кажется, много работы), но я надеюсь, что этого достаточно, чтобы вы начали.

...