[Android稳定性] 第017篇 [方法篇] 高通watchdog分析流程


高通watchdog的分析套路:

  1. 检查watchdog执行状态,pet、bark time,expires时间等必要信息,可以自己去看msm_watchdog_data,也可以直接检查rampaser解出来的Watchdog data(Non-secure Watchdog data)
  2. 检查msm_watchdog进程在哪个cpu上,是否处于ready?检查runqueue文件,如果ready跳到5
  3. 如果没有ready,说明没有被timer wake up,则检查timerlist看看timer是否在list中,却没有被执行
  4. 如果timer list没有被执行,检查wake timer在那个cpu,为何没有被执行,再去检查irq_stat,tasklet_vec是否有pending
  5. 如果已经ready,却没被调度,检查喂狗时间的RTB log是否有中断风暴、中断是否还能正常接收,tick中断是否正常
  6. 检查RTB log中进程调度是否正常,哪个进程一直运行阻碍了watchdog进程
  7. 检查当前进程是否禁止抢占task_struct.thread_info.preempt_count >0不可抢占,当前进程可以使用corex.cmm恢复调用栈