找回密码
 注册
关于网站域名变更的通知
查看: 294|回复: 1
打印 上一主题 下一主题

Linux动态频率调节系统CPUFreq之cpufreq_governor的注册

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-10-24 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
注册cpufreq_governor% e% ~& Q6 k% B; w3 |2 f
. s1 r1 U5 |  Q- z

. p: A+ J6 v( q! S% _系统中可以同时存在多个governor策略,一个policy通过cpufreq_policy结构中的governor指针和某个governor相关联。要想一个governor被policy使用,首先要把该governor注册到cpufreq的核心中,我们可以通过核心层提供的API来完成注册:" g/ u' e% u& m) Q! I& V3 n2 h
  [. W' V& u* e! c6 W) L

$ T  L5 X' @0 S. t( ~+ G$ Y
  • int cpufreq_register_governor(struct cpufreq_governor *governor)
  • {
  •         int err;
  •         ......
  •         governor->initialized = 0;
  •         err = -EBUSY;
  •         if (__find_governor(governor->name) == NULL) {
  •                 err = 0;
  •                 list_add(&governor->governor_list, &cpufreq_governor_list);
  •         }
  •         ......
  •         return err;
  • }1 ?/ }8 }" l8 l- ^+ X

5 @3 Z2 Q" J- l" Q7 U. ^
1 W1 w6 |& j4 [( y, W8 l5 |
7 M: ]: N" p# i

! x2 E0 y; o; `* W* s8 f

# r, h5 P2 w8 D. k% `) D( J核心层定义了一个全局链表变量:cpufreq_governor_list,注册函数首先根据governor的名称,通过__find_governor()函数查找该governor是否已經被注册过,如果没有被注册过,则把代表该governor的结构体添加到cpufreq_governor_list链表中。在上一篇中我们提到,目前的内核版本提供了5种governor供我们使用,我们可以通过内核的配置項来选择需要编译的governor,同时需要指定一个默认的governor。在cpufreq.h中,将会根据配置項的选择,把CPUFREQ_DEFAULT_GOVERNOR宏指向默认governor结构体变量的地址,在注册cpufreq_driver的阶段需要使用这个宏来设定系统默认使用的governor。- Z4 u' [. }+ q9 P- ?

5 Q8 l0 H- S! q3 C- m

5 K9 p( t: z) p5 R# n: t6 q. u4 t0 z3 i$ E2 p4 b" g$ W, I& l0 F: M
9 s7 Y" \5 o7 l+ ~$ \1 {: _

; f- p8 }+ E6 Q  K* p
7 B. c- R  A! f' b6 P
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 01:22 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表