CPU动态调频策略,目前常见的有performance powersave ondemand consertive interactive
以下是基于interactive代码详细分析下的一些见解
从网上搜索的,比较详细的是:
http://bbs.gfan.com/android-976301-2-1.html
Advantages:
+ significantly more responsive to ramp cpu up when required (UI interaction)
+ more consistent ramping, existing governors do their cpu load sampling in a workqueue context, the 'interactive' governor does this in a timer context, which gives more consistent cpu load sampling.
+ higher priority for cpu frequency increase, rt_workqueue is used for scaling up, giving the remaining tasks the cpu performance benefit, unlike existing governors which schedule rampup work to occur after your performance starved tasks have completed.
优点:
此模式在与用户交互的时候,反应速度更快(即是频率调节的速度更快,更能随时对及时处理器的符合作出反应),由此,便可以提供更好地用户体验(conservative模式反应速度慢于此,因此有时候会出现稍卡的体验)
当然,为了达成这一点,interactive有更高的处理器负荷采样率,并且摒弃了上述两种调节方式在高负荷时候处理器频率不满足需求以后才进行调频,interactive保证了更快的反应,保留了频率调节器的高优先级,来更快地处理器负荷高起来的时候将频提高。
那么,我就有如下疑问:
反应速度如何更快?
为何需要更高采样率?更高是指多少的采样率?
举例说明如何升频,如何降频?
结合代码分析策略
cpufreq_interactive_init
初始化对5个全局变量进行赋值
三个参数:
go_hispeed_load = DEFAULT_GO_HISPEED_LOAD;
min_sample_time = DEFAULT_MIN_SAMPLE_TIME;
timer_ra