android 2.3 频率管理

1.    目的... 4

2.    需求和限制... 4

2.1.     需求

3.    linux内核Cpu频率机制介绍... 6

4.    freq framework. 7

4.1.     架构... 7

4.2.     配置文件... 7

5.    答疑... 9

6.    附录... 9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.       目的

介绍linux内核提供的Cpu频率管理机制和android来实现的频率管理策略的方法。

2.       需求

l         Cpu频率可以根据系统负载动态调节, 达到省电的目的。

l         长时间持续场景(黑屏播音乐,etc)的特殊处理, 尽可能把cpu频率降到不影响用户体验即可。

l         游戏模拟器工作时需要更加流畅的用户体验。

l         不仅是cpu频率,系统运行时的一些参数比如电压,gpu频率,coda频率,vpx频率都可以根据

应用场景变化来调节。

3.       linux内核Cpu频率机制介绍

l         ondemand:根据cpu负载动态调节。

l         userspace:cpu频率定在一个用户指定的频率。

l         performance:cpu频率定在系统最高频率。

l         powersave:cpu频率定在系统最低频率。

4.       freq framework

cpufreq.xml文件用来描述系统各场景的频率电压, freq framework会根据cpufreq.xml的配置和运行态系统所处场景(比如有电源供电, 低点, 正在游戏, 已经黑屏, 正在播音乐,etc)进行调节。

4.1.      架构




主要通过广播与外界交互, 对无法通过广播获得的场景信息, 提供两个接口供外界输入。

 

4.2.      配置文件

为了方便测试和满足不同方案对调频策略的不同需求,加入了xml文件来对不同场景所使用调频策略进行配置。

       下面为默认配置,注意所用频率必须为scaling_available_frequences中支持的值:

<?xml version="1.0" encoding="utf-8"?>

<cpufreq>

<!-- policy defination-->

       <policy>

          <overclocking cpu_freq="996000" />

        <performance cpu_freq="900000" />

        <ondemand cpu_min="210000" cpu_max="900000" />

        <safemode corepll_freq="630000" />   

      </policy>

<!-- scence defination, use a policy, can override policy attribute-->

      <scence>

             <default policy="ondemand" />

           <game policy="overclocking" />   

           <video policy="safemode" />

           <video_vpx policy="safemode" corepll_freq="792000" />

           <camera policy="safemode" corepll_freq="720000" />

           <music policy="ondemand" cpu_min="210000" cpu_max="390000" />  

              <screen_off policy="ondemand" />

              <music_screenoff policy="ondemand" />

           <lowpower policy="ondemand" />

           <powered policy="performance" />   

           <booting policy="performance" />

           <tvout policy="safemode" corepll_freq="840000" /> 

           <game_tvout policy="safemode" corepll_freq="840000" cpu_freq="840000" />

    </scence> 

</cpufreq>

 

l         Overclocking模式支持cpu_freq属性, cpu定频。

l         Performance模式支持cpu_freq属性, cpu定频。

l         Ondemand模式支持cpu_min, cpu_max属性, cpu在其间动态调, 不同频率对应系统电压也会不同,目前写死在驱动里, 还不可配置。

l         safemode模式支持......

 

5.       答疑

l          目前的调频策略?

框架通知调频服务系统所处场景,调频服务根据配置文件设置该场景的频率策略

l          怎样调频?

addScence/leaveScence接口触发场景切换时调频,或在ondemand模式时cpu负载变化时调频

l          调频配置脚本如何修改?

见4.2节

 

l          调频注意事项

配置文件里的频率值必须为scaling_available_frequences中支持的值


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值