双击唤醒屏幕慢问题分析
2018-03-31 本文已影响0人
李海洲
近日,项目上遇到一个双击唤醒屏幕慢的问题,借此机会,梳理下唤醒屏幕的流程
这个流程与按power键唤醒基本类似,都是驱动先触发中断,唤醒系统,事件通过input系统上报,上层做一系列响应并最终完成亮屏的过程
关键的几个log时间点如下:
kernel部分
这里可以看到先有power key中断,对应的是睡眠,紧接着CPU关闭,后面屏幕接收到手势事件发生
user部分
耗时约32s左右,上层处理耗时四百多毫秒,上层处理的时间耗时属于正常
上层走的流程没有发现异常,走的流程都是按部就班,耗时也是在合理范围内。
拿到这份日志时发现kernel日志中有一个奇怪的地方01-01 04:09:19到01-01 04:09:51这段时间没有日志输出。
考虑到这里Log对应的是内核中的timer,只有在休眠状态下才会停止输出。按理说中断发生,唤醒系统后Log会正常输出。
猜测这里没有输出日志应该是系统仍处于休眠状态,因为在手势事件发生后,并没有看到CPU立刻起来的日志
该问题后在驱动同事更改中断方法解决,之前的中断方法使用有误不能立刻唤醒系统