[RK3288][Android6.0] GPU DVFS控制策略小结

本文介绍了基于Rockchip RK3288平台,Android 6.0系统下的GPU动态电压与频率调整(DVFS)策略。在3.10.92内核中,GPU DVFS的核心控制位于mali_kbase_dvfs.c,周期性的metrics系统通过回调函数kbase_platform_dvfs_event()监测GPU利用率。当温度过高、利用率超出当前级别范围时,系统会进行频率调整。策略包括温度过高时降低频率、利用率超标时逐步提升频率,以及在利用率低于阈值时逐级下降频率。可通过修改mali_dvfs_event_proc()来调整上跳策略的激进程度。
摘要由CSDN通过智能技术生成

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

mali_device_driver 分为两个部分 : platform_dependent_part 和 common_parts, 参见 mali_kbase_config_rk.c 开头部分的注释.

gpu dvfs核心控制在mali_kbase_dvfs.c中.

s_mali_dvfs_level_table 定义gpu所有可变的freq level以及对应的min utilisation和max utilisation.

static struct mali_dvfs_level_t s_mali_dvfs_level_table[] = {
    {100000, 0, 70},
    {160000, 50, 65},
    {266000, 60, 78},
    {350000, 65, 75},
    {400000, 70, 75},
    {500000, 90, 100},
};

不过它会被dts中的operating-points所覆盖

clk_gpu_dvfs_table: clk_gpu {
    operating-points = <
        /* KHz uV */
        200000 1200000
        300000 1200000
        400000 1200000
        >;
};

gpu dvfs运行时, common parts (metrics system)会周期地(20ms)通知回调 platform_dependent_part 中的函数 kbase_platform_dvfs_event(), 并传入当前的 gpu utilization.

dvfs_callback -> kbase_pm_get_dvfs_action -> kbase_platform_dvfs_event

int
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值