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

Linux动态频率调节系统CPUFreq之了解一下其它的API

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
Linux动态频率调节系统CPUFreq之了解一下其它的API0 f' C& P# T% R5 R# p6 r

* h. O; n$ f' M! w0 s7 J# G
% a3 F# L, p) D' Q& d; p
cpufreq的核心层除了提供上面几节讨论的注册governor,注册cpufreq_driver等API外,还提供了其他一些辅助的API,以方便其它模块的使用。
8 |5 m) \; E4 h2 v1 P/ v5 J! u5 ^' q6 S( @* K  G! |1 r. n

3 X, H+ m7 S( ]' q' T+ r
  • int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list);
  • int cpufreq_unregister_notifier(struct notifier_block *nb, unsigned int list);4 ~$ ?: h$ f/ f8 B8 T: ?; g3 d

) ]. E# H7 c7 c! G" @$ K6 A, X  ~- a7 H

5 u  q: r8 o, O! h) [& Z以上两个API用于注册和注销cpufreq系统的通知消息,第二个参数可以选择通知的类型,可以有以下两种类型:
/ r7 N9 `) Y3 a8 V& U% @3 v$ Q+ r
' j+ K% s- f# g7 f
  • CPUFREQ_TRANSITION_NOTIFIER      收到频率变更通知
  • CPUFREQ_POLICY_NOTIFIER               收到policy更新通知- v% W. ], m2 F; Y) l
' p5 N5 O+ g/ G9 \
2 c3 t: U) X6 W1 b. |" W  l
* a. s0 ]' H) |$ f8 P
  • int cpufreq_driver_target(struct cpufreq_policy *policy,; f( @( I3 s, W9 j" [! F" J% \
  x, {: S0 g% V/ f3 s3 T6 |& T& Y
                                 unsigned int target_freq,  [( ~+ i; O  X# y
                                 unsigned int relation);7 {4 S! T9 V9 d' Z. i  ~
  • int __cpufreq_driver_target(struct cpufreq_policy *policy,# y" K/ d3 y/ Z0 y7 f/ ?4 i

2 d/ x- r6 X+ B5 f                                   unsigned int target_freq,: W( T" r+ [3 P
                                   unsigned int relation);( ^$ E6 n6 G  B! w' Z) ^- _
2 C& n; I3 H( y9 I. P
  b9 W3 D7 T& O- Q, D: g7 [0 f
以上两个API用来设置cpu的工作频率,区别在于cpufreq_driver_target是带锁的版本,而__cpufreq_driver_target是不带锁的版本,如果确定是在governor的上下文中,使用不带锁的版本,否则需要使用带锁的版本。
, ]! y% U' W4 B% V% Y7 b# t2 H  i: m6 s2 _, o/ K( `
* {& n# n/ E3 [' I- X- I8 i- A- u
  • void cpufreq_verify_within_limits(struct cpufreq_policy *policy, unsigned int min, unsigned int max);
    , p( V4 V5 @& j1 A

5 k0 |+ B0 N  I2 ^
8 M* |0 d" J% a* I% _( {; v; p

: h: N' N8 c+ n, }; e  y4 x这个API用来检查并重新设定policy的最大和最小频率。0 v8 q4 L# c0 p! ]) k. D5 F

( k% \* \0 s+ f. R5 U- y- s9 Q" u
& k/ b' K- C% _: l+ E# y# p
  • int cpufreq_update_policy(unsigned int cpu);
    ' e0 W) _& \4 D7 W$ U

4 A7 B: t/ H1 l2 z
4 D% X# U4 T% w! E0 @8 ]

5 N$ T1 O* Q2 v: H9 m这个API用来触发cpufreq核心进行policy的更新操作。8 G: |% h+ _, r" p$ Q- G

; |' [6 c$ Z  @2 k# s, d
* L. \" ^& ]8 L- Z9 |* j

' X. p, O, o+ I8 e$ c$ g
& o- b, L7 l0 \7 `" q# r
0 ]3 G( N: g0 f8 Q" {+ y7 n
. k3 G' ^7 z- Z" J6 `8 e

# f" W0 J7 |1 ~( J

0 `9 T; X& |$ s5 n3 l5 J  M
8 u+ M6 G# X3 ^9 I" F7 m0 B: s# X/ D# C, Q7 g& M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-25 03:23 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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