在Linux内核CPU频率子系统中,struct cpufreq_策略有什么用途

在Linux内核CPU频率子系统中,struct cpufreq_策略有什么用途,linux,linux-kernel,x86,cpu,power-management,Linux,Linux Kernel,X86,Cpu,Power Management,我在读关于CPUFreq子系统的书。有两个司机 缩放调控器:决定下一个频率的选择 缩放驱动程序:直接与硬件通信,并设置缩放调控器提供的频率 通过各种各样的结构,我明白了这一点 struct cpufreq_driver->表示与硬件对话并更改频率的缩放驱动程序的结构 struct cpufreq_调控器-表示CPU频率调控器的结构 struct cpufreq_策略的用途是什么,它作为回调传递给struct cpufreq_调控器的所有成员?据我所知(阅读:我在源代码树中走了五分钟),状态由

我在读关于CPUFreq子系统的书。有两个司机

  • 缩放调控器:决定下一个频率的选择
  • 缩放驱动程序:直接与硬件通信,并设置缩放调控器提供的频率
通过各种各样的结构,我明白了这一点

struct cpufreq_driver->表示与硬件对话并更改频率的缩放驱动程序的结构

struct cpufreq_调控器-表示CPU频率调控器的结构

struct cpufreq_策略的用途是什么,它作为回调传递给struct cpufreq_调控器的所有成员?

据我所知(阅读:我在源代码树中走了五分钟),状态由调控器管理,并由缩放驱动程序处理

它包含调控器工作的频率限制、同步对象(例如
rwsem
)、频率表、受策略影响的CPU等

在这个调控器示例中,该策略用于初始化一些可能由扩展驱动程序使用的每cpu结构。
请注意,这些驱动程序基本上在两种模式下工作:
target_index
,其中频率是根据频率表(策略中)中的索引设置的;以及
set_policy
,其中频率限制是为要在其中运行的硬件(即英特尔的HWP)或软件设置的

我还没有完全掌握全貌(这似乎是一个很大的工作),但我希望这足以让你开始