安卓/MTK平台日志关键词详解

安卓/MTK平台日志关键词详解

MDP (Media Data Path)

全称 :多媒体数据通路
作用

  • 负责图像/视频数据的处理流水线
  • 包括缩放、旋转、格式转换等操作
  • 连接显示、摄像头、视频编解码等模块
    日志含义cmdq_core_resume_notifier ref:0表示MDP恢复通知,引用计数为0

CMDQ (Command Queue)

全称 :命令队列引擎
作用

  • MTK独有的硬件加速架构
  • 将CPU任务卸载到专用硬件执行
  • 主要用于显示、视频、图像处理
    特点
  • 并行处理多个命令流
  • 减少CPU负载和功耗
  • cmdq_suspend ignore表示忽略挂起(可能没有活动任务)

SCP_DVFS (System Control Processor - Dynamic Voltage Frequency Scaling)

全称 :系统控制处理器动态电压频率调节
作用

  • 管理协处理器(SCP)的电源状态
  • 根据负载动态调整SCP的电压和频率
  • SCP通常处理传感器、音频等低功耗任务
    日志含义scp_sleep_cnt_0 = 30007694记录SCP进入睡眠的次数

VCP (Video Co-Processor)

全称 :视频协处理器
作用

  • 专门处理视频编解码的硬件模块
  • 支持H.264/H.265/VP9等格式
  • 功耗低于CPU/GPU处理
    日志含义PM_POST_SUSPEND entered 0 1表示视频协处理器进入休眠后状态

DIP (Digital Image Processor)

全称 :数字图像处理器
作用

  • 专门处理摄像头图像数据的硬件
  • 包括降噪、HDR、色彩校正等
  • 位于摄像头流水线中
    日志含义G_u4DipEnClkCnt: 0, g_u4DipCnt: 0表示DIP时钟启用计数和实例计数都为0

MTK-BT (MediaTek Bluetooth)

全称 :联发科蓝牙子系统
组成

  • 蓝牙协议栈
  • 蓝牙硬件控制器
  • 电源管理模块
    日志内容
  • BR_INQURY_SCAN:蓝牙查询扫描状态
  • BR_SCAN_MODE:蓝牙扫描模式
  • BLE_ADV:蓝牙低功耗广播状态

WLAN (Wireless LAN)

全称 :无线局域网子系统
关键日志

  • FW OWN:1:固件拥有控制权
  • DRIVER OWN:驱动拥有控制权
  • qmFlushTimeoutReorderBubble:WiFi队列管理中的重新排序超时

PM (Power Management)

全称 :电源管理
状态机

  1. PM_SUSPEND_PREPARE (3):准备进入休眠
  2. PM_SUSPEND_PREPARE (4):休眠后恢复
  3. PM_SUSPEND_PREPARE (2):恢复准备
    工作流程
  • Freezing user space processes:冻结用户空间进程
  • Freezing remaining freezable tasks:冻结剩余可冻结任务
  • OOM killer disabled:禁用内存不足杀手

WMT-CONSYS-HW (Wireless Module Technology - Connectivity SOC Hardware)

全称 :无线模块技术-连接SOC硬件
作用

  • 管理WiFi/蓝牙/GPS的共存
  • 硬件资源共享和仲裁
  • 电源状态同步
    日志内容
  • consys_dump_osc_state:振荡器状态
  • consys_dump_gating_state:时钟门控状态

MTK-MSDC (MediaTek MultiMedia Card/SD Card Controller)

全称 :联发科多媒体卡/SD卡控制器
关键操作

  1. HS400调校

    复制代码
    [msdc_execute_hs400_tuning_cmd]:执行HS400调校
    phase: [map:ffffffff]:相位图
    final_rise_delay.start=0,maxlen=32,final_phase=10:最终延迟设置
  2. 电源管理

    • msdc_runtime_resume: success to fix vcore:恢复时固定核心电压
    • msdc_runtime_suspend: success to release vcore:挂起时释放核心电压

DISP (Display)

全称 :显示子系统
组成

  • 显示驱动
  • 合成器(Composer)
  • 显示接口(MIPI/HDMI)
    日志含义Disabling CRTC wakelock:禁用CRTC唤醒锁(CRTC:阴极射线管控制器,泛指显示控制器)

tlTeeSOTER

全称 :Trustonic TEE SOTER(Secure Terminal)
作用

  • 提供可信执行环境
  • 安全密钥存储
  • 硬件级安全操作
    关键功能
  • ARMv8 crypto instructions:使用ARMv8加密指令
  • Neon instructions:使用Neon指令集加速
  • RPMB operations:Replay Protected Memory Block操作

SPM (System Power Manager)

全称 :系统电源管理器
作用

  • 管理芯片级电源状态
  • 控制电源域开关
  • 时钟门控
    关键日志
  • suspend start:休眠开始时间戳
  • suspend end:休眠结束时间戳

关键操作详解

msdc_runtime_suspend: success to release vcore

含义 :eMMC控制器运行时挂起成功,释放核心电压
技术细节

  • vcore:核心电压,eMMC控制器工作电压
  • release:降低电压或关闭电源域
  • 目的:在空闲时降低功耗

Suspend (挂起)

完整流程

  1. PM_SUSPEND_PREPARE (3):各模块准备休眠
  2. Freeze processes:冻结进程
  3. Peripheral suspend:外设挂起
  4. Clock gating:时钟门控
  5. Power domain off:关闭电源域

Resume (恢复)

完整流程

  1. IRQ trigger:中断触发唤醒
  2. Power domain on:开启电源域
  3. Clock enable:启用时钟
  4. Peripheral resume:外设恢复
  5. PM_POST_SUSPEND (4):休眠后处理
  6. Unfreeze processes:解冻进程

系统状态转换

复制代码
正常状态
    ↓ PM_SUSPEND_PREPARE
准备休眠 → 冻结进程 → 外设挂起
    ↓ 
深度休眠 (s2idle)
    ↓ 
IRQ唤醒触发
    ↓ 
恢复外设 → 解冻进程
    ↓ PM_POST_SUSPEND
正常状态

错误场景分析

在日志中,问题是:

  1. 时序冲突:eMMC正在挂起(电源释放)
  2. 并发访问:TEE同时进行RPMB操作
  3. 权限违规:MCU在eMMC时钟关闭后仍尝试访问

根本原因:电源管理状态机与外设操作缺乏同步机制,导致竞争条件。

bash 复制代码
第一部分:唤醒过程(Resume)
时间戳:149012.910756 开始

MDP (Media Data Path):媒体数据路径,通常与显示、图像处理相关。

[MDP]cmdq_core_resume_notifier ref:0:表示MDP的cmdq核心恢复通知,ref计数为0。

cmdq:Command Queue,命令队列,用于处理多媒体任务的硬件队列(如显示、视频编解码)。

[cmdq] mdp buffer pool already created:表示mdp的缓冲区池已经创建。

Resume caused by IRQ 138, wlan0:唤醒由中断138触发,即wlan0(无线网络)中断。

scp_dvfs:SCP(System Control Processor)动态电压频率调节。

[scp_dvfs]: [SCP] [mt_scp_dump_sleep_count:2137] - scp_sleep_cnt_0 = 30007694:SCP的睡眠计数,用于调试电源管理。

timesync:时间同步,记录系统时间。

timesync host resume boottime 361140487354924:主机恢复时的启动时间。

VCP(可能是Video Co-Processor,视频协处理器):

[VCP] PM_POST_SUSPEND entered 0 1:VCP进入PM_POST_SUSPEND状态(休眠后)。

SPM (System Power Manager):系统电源管理。

[name:spm&][SPM] suspend end 2025-12-01 07:50:22.835128 UTC:表示休眠结束。

CAM_MEM:摄像头内存管理。

[CAM_MEM][cam_mem_pm_event_resume] EnableLarbCount:0,devct:1:摄像头内存恢复,启用Larb(Local Address Remap Buffer)计数。

DIP (Digital Image Processor):数字图像处理器。

[DIP][dip_suspend_pm_event] DIP resume G_u4DipEnClkCnt: 0, g_u4DipCnt: 0:DIP恢复,时钟计数和DIP计数为0。

wlan:无线局域网。

[wlan][10613]wlan_pm_notifier_call:(REQ INFO) pm_event: 4 PM_POST_SUSPEND:wlan电源管理通知,事件为PM_POST_SUSPEND(休眠后)。

MTK-BT:联发科蓝牙。

[MTK-BT]bt_pm_notifier_callback: bt_pm_notifier_callback: btonflag[1], event[4]:蓝牙电源管理回调,事件4(PM_POST_SUSPEND)。

PM (Power Management):电源管理。

PM: suspend exit:表示休眠退出,即系统唤醒。

WMT-CONSYS-HW (Wireless Module Tethering - Connectivity SoC Hardware):无线连接SOC硬件。

打印了一些硬件状态信息,如时钟门控状态等。

mtk-msdc (MTK Memory Stick/SD Card Controller):MTK存储卡控制器(这里指eMMC控制器)。

日志中看到msdc在进行时钟调整和调谐(tuning),这是为了确保eMMC通信的稳定性。

DISP (Display):显示。

在后续的休眠日志中看到[DISP]Disabling CRTC wakelock,表示解除显示CRTC(阴极射线管控制器,这里泛指显示控制器)的唤醒锁。

第二部分:再次进入休眠(Suspend)
时间戳:149013.424675

PM: suspend entry (s2idle):系统进入休眠(s2idle是一种浅休眠状态)。

Filesystems sync:文件系统同步。

log_store: write pmic value 0x98:写PMIC(电源管理集成电路)值,可能是记录休眠事件。

VCP:[VCP] PM_SUSPEND_PREPARE entered 0 0:VCP进入PM_SUSPEND_PREPARE状态(准备休眠)。

Trustonic TEE:一种可信执行环境(TEE)解决方案。

日志中出现了多个TEE相关的操作,包括RPMB(Replay Protected Memory Block)的读写。RPMB是eMMC中的一个安全分区,用于存储敏感数据。

SPM:[name:spm&][SPM] suspend start 2025-12-01 07:50:23.382566 UTC:SPM开始休眠。

CAM_MEM、DIP、wlan、MTK-BT等模块依次进入休眠准备。

Freezing user space processes:冻结用户空间进程,这是休眠的标准步骤。

OOM killer disabled:禁用OOM(Out Of Memory)杀手。

Freezing remaining freezable tasks:冻结剩余可冻结任务。

kbase_device_suspend:GPU(图形处理器)挂起。

MDP、cmdq、FDVT(Face Detection and Verification Technology,人脸检测和验证技术)等模块挂起。

TP(Touch Panel,触摸屏)挂起。

mt6685-rtc:实时时钟(RTC)设置报警时间。

upm7610:可能是电源管理芯片。

nfc_i2c_dev_suspend:NFC(近场通信)挂起。

第三部分:错误发生
在休眠过程中,出现了两个关键错误:

eMMC命令超时:

text
[149013.510436][C1000000] mtk-msdc 11230000.mmc: msdc_cmd_done: cmd=6 arg=0x30F0001; rsp 0x0; cmd_error=-110; host_error=0x2
命令6(MMC_SWITCH)超时(-110),主机错误0x2(可能是命令超时或硬件错误)。

设备访问权限违规(DEVAPC Violation):

text
[149013.511080][C1000000] [DEVAPC]: catch it from INFRAAXI_MI Master is: MCU_AP_M
[149013.511096][C1000000] [DEVAPC]: Violation - master: MCU_AP_M access violation slave: MSDC0_S-1
[149013.511108][C1000000] [DEVAPC]: Reason: power/clock is not enabled
设备访问保护(DEVAPC)发现违规:主设备MCU_AP_M试图访问从设备MSDC0_S-1(即eMMC控制器),但此时eMMC控制器的电源或时钟未开启。

随后,系统打印了时钟配置寄存器(CLK_CFG)的状态,可能是为了调试。

第四部分:关键术语解释
MDP:Media Data Path,媒体数据路径,处理视频、图像等媒体数据。

cmdq:Command Queue,命令队列,用于管理硬件任务队列,常见于多媒体任务。

scp_dvfs:System Control Processor Dynamic Voltage and Frequency Scaling,系统控制处理器动态电压频率调节,用于电源管理。

VCP:可能是Video Co-Processor,视频协处理器,用于视频编解码等。

DIP:Digital Image Processor,数字图像处理器,用于图像处理。

MTK-BT:联发科蓝牙模块。

wlan:无线局域网。

PM:Power Management,电源管理。

WMT-CONSYS-HW:无线连接SOC硬件,包括Wi-Fi、蓝牙、GPS等。

mtk-msdc:联发科存储卡控制器,用于控制eMMC或SD卡。

DISP:Display,显示相关。

tlTeeSOTER:Trustonic TEE(可信执行环境)的一个组件,用于安全操作。

SPM:System Power Manager,系统电源管理。

msdc_runtime_suspend: success to release vcore:msdc运行时挂起成功,释放核心电压(vcore)。

suspend:挂起,指设备进入低功耗状态。

Resume:恢复,指设备从低功耗状态唤醒。

总结
从日志看,系统在唤醒后很快又进入了休眠。在休眠过程中,eMMC控制器(msdc)发生了命令超时,并且随后发生了设备访问违规(DEVAPC),原因是eMMC控制器的电源或时钟已经关闭,但仍有主设备(MCU_AP_M)试图访问它。

可能的原因:在休眠流程中,eMMC控制器提前关闭了电源或时钟,但安全环境(TEE)中的RPMB操作仍在进行,导致访问冲突。这可能是电源管理时序问题,需要调整休眠流程中模块的关闭顺序,或者确保在eMMC控制器关闭前完成所有访问。
相关推荐
robotx2 小时前
安卓线程相关
android
消失的旧时光-19432 小时前
Android 面试高频:JSON 文件、大数据存储与断电安全(从原理到工程实践)
android·面试·json
dalancon3 小时前
VSYNC 信号流程分析 (Android 14)
android
dalancon3 小时前
VSYNC 信号完整流程2
android
dalancon3 小时前
SurfaceFlinger 上帧后 releaseBuffer 完整流程分析
android
用户69371750013844 小时前
不卷AI速度,我卷自己的从容——北京程序员手记
android·前端·人工智能
程序员Android5 小时前
Android 刷新一帧流程trace拆解
android
墨狂之逸才5 小时前
解决 Android/Gradle 编译报错:Comparison method violates its general contract!
android
阿明的小蝴蝶6 小时前
记一次Gradle环境的编译问题与解决
android·前端·gradle
汪海游龙6 小时前
开源项目 Trending AI 招募 Google Play 内测人员(12 名)
android·github