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

Linux动态频率调节系统CPUFreq之CPUFreq子系统的初始化

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

9 @0 k/ G+ h" c, ^& M- |CPUFreq子系统的初始化
* s( y( O1 g' R( X) ~7 j8 B& N8 p: A) C6 o4 p& C  ]9 c( X3 T
先看看具体的代码:
2 W; M- x' B$ h6 [  ]3 [' h$ e% ^
  • static int __init cpufreq_core_init(void)
  • {
  •         int cpu;
  • 1 q# o  M0 P2 Y- [: T, p2 H
  •         if (cpufreq_disabled())
  •                 return -ENODEV;

  • ( {$ X$ [# ^8 [" X2 @
  •         for_each_possible_cpu(cpu) {
  •                 per_cpu(cpufreq_policy_cpu, cpu) = -1;
  •                 init_rwsem(&per_cpu(cpu_policy_rwsem, cpu));
  •         }
  • : g4 u6 z7 b/ e5 m* I
  •         cpufreq_global_kobject = kobject_create_and_add("cpufreq", &cpu_subsys.dev_root->kobj);
  •         BUG_ON(!cpufreq_global_kobject);
  •         register_syscore_ops(&cpufreq_syscore_ops);

  • ' i7 k3 J# G0 `7 ]
  •         return 0;
  • }
  • core_initcall(cpufreq_core_init);$ j3 K! _; o$ F  `& N
   
% V3 u& H) w8 _
0 r3 U( Y7 |6 t% F, v3 z
0 b" D1 X  @" y, F9 A0 E9 y
可见,在系统的启动阶段,经由initcall机制,cpufreq_core_init被调用,由它来完成核心部分的初始化工作,其中:
0 C! C- ~% D$ }' [* j; T; r
cpufreq_policy_cpu    是一个per_cpu变量,在smp的系统下,每个cpu可以有自己独立的调频policy,也可以所有的cpu都是用一种policy,这时候就有可能出现其中一个cpu管理着某个policy,而其它cpu因为也使用同一个policy,这些cpu的policy的就交由那个管理cpu代管,这个per_cpu变量就是用来记录各个cpu的policy实际上是由那个cpu进行管理的。初始化时都被初始化为-1了,代表现在还没有开始进行policy的管理。
3 Y, {& m/ f0 ?4 e5 s. X3 Z+ {) X; z* ?+ q- i/ v4 i, n
接下来的kobject_create_and_add函数在/sys/devices/system/cpu这个节点下建立了一个cpufreq节点,该节点的下面以后会用来放置当前governor的一些配置参数。参数cpu_subsys是内核的一个全局变量,是由更早期的初始化时初始化的,代码在drivers/base/cpu.c中:
9 X0 e0 I8 K  O. ]8 @8 R2 \
游客,如果您要查看本帖隐藏内容请回复
/ ^$ a0 G# u% f  h4 |2 L1 `* Q- y
( ]  G6 |- I7 G& Y" C6 w

& Y% K3 F  }" H+ m3 s

5 P# h$ R  D4 y, a* z8 E- O! U& U/ N- q1 U( ?6 f1 F" h

$ i+ G  C$ _9 [( b
5 k6 P: w0 r9 p; f* M1 g% i! x- n, l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 11:31 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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