• Android 功耗(3)---高通功耗问题分析方法


    本文结合该文档简单的总结了AP端功耗问题分析手段。

    首先是官方功耗分析流程图:

    image

    注意几个关键的名词:

    Modem 调制解调器芯片

    RPM Resource Power Manager是高通MSM平台另外加的一块芯片,控制整个电源相关的shared resources

    APSS 应用处理器子系统,就是平常我们说的AP

    功耗问题一般分为低电流过高,或者异常唤醒造成。

    本文只站在AP的角度分析功耗问题,也就是Android系统的角度。

    低电流过高首先要验证系统是否进入了最低功耗状态。VDD最小状态。

    mount -t debugfs none /sys/kernel/debug/
    
    cat /sys/kernel/debug/rpm_stats 获取系统是否休眠。验证XO关闭和VDD最小化
    RPM Mode:xosd
    
            count:0
    
    time in last mode(msec):0
    
    time since last mode(sec):1275
    
    actual last sleep(msec):0
    
    client votes: 0x03030303
    
     
    
    RPM Mode:vmin
    
            count:0 //有计数则说明系统进入最低功耗状态
    
    time in last mode(msec):0
    
    time since last mode(sec):1275
    
    actual last sleep(msec):0
    
    client votes: 0x00000000
    

    如果系统没有进入VDD最小状态,则要检查那一项阻止了终端进入VDD最小状态。

    这一块主要查看RPM的外部日志。分析,略。

    下面分析异常唤醒造成的功耗问题

    image

    查看AP端的异常唤醒源,查看modem那块的略过。

    echo 1 >/sys/module/msm_show_resume_irq/parameters/debug_mask
    
    echo "8 8 8 8">/proc/sys/kernel/printk
    

    image

    通过查看唤醒锁的状态主要查看active_since字段可以查看,哪个锁造成系统无法休眠。

    image

    image

    总结:对于AP端判断功耗问题,一般从低电流状态判断。

    排除方法:移除一些外部驱动程序,如sensor,tp,camera,LCD等。

    cat /sys/kernel/debug/rpm_stats 获取系统是否休眠。验证XO关闭和VDD最小化
    
    echo 1 >/sys/module/msm_show_resume_irq/parameters/debug_mask
    

    查看log获取异常唤醒源

    echo "8 8 8 8">/proc/sys/kernel/printk
    
    adb shell cat/sys/kernel/debug/wakeup_sources > j:777.txt 查看唤醒锁,哪个锁造成无法休眠
    
  • 相关阅读:
    Filecoin:一种去中心化的存储网络(二)
    Filecoin:一种去中心化的存储网络(一)
    HTTP
    数据结构中的查找
    剑指offer-高质量的代码
    C++中STL容器的比较
    PBFT算法的相关问题
    springmvc最全约束
    springmvc入门(一)
    spring入门(一)
  • 原文地址:https://www.cnblogs.com/linhaostudy/p/13618620.html
Copyright © 2020-2023  润新知