目录
背景:
调查过程:
步骤1: slog2info | grep vmm_service
步骤2: slog2info | grep qvm
总结:
解决方案
背景:
调试高通8255 STR的STR过程中发现Android和QNX进入STR状态后,脱出STR时,Android发生了重启。
调查过程:
参照高通文档 Fetch-and-Fill Android启动和QNX vmm_service 进程有直接关联
步骤1: slog2info | grep vmm_service
在qnx侧控制台此使用命令 slog2info | grep vmm_service
主要是确认 vmm_service 进程状态,通过log可以看到,当ACC OFF àON后
①gvm_PID died 即 gvm(Android) 挂掉了
② vmm_service 重启了gvm(Android)
步骤2: slog2info | grep qvm
通过QNX控制台命令 slog2info | grep qvm
同步确认 vmm_service 和 qvm 相关log内容
按照上述理解,vmm_service 检测gvm(原有PID为561299) 挂掉的时间是 20:53:15左右
从qvm log看,① 20:53:03 ~05 QNX进入了STR状态
② 20:53:15 开始脱出STR
③ 随后发生了某些问题,导致 qvm.561299退出,即Android退出
大概AI查询了一下相关含义,如下:
总结:
暂时认为是 在QNX的STR状态下或正在脱出STR时,QNX某唤醒源试图唤醒gvm,导致gvm退出,随后 vmm_service 重启了gvm进程。
因为缩小了范围是中断产生,所以需要判断是什么中断。随后结合进出STR方法,确认接续屏幕问题可发生,不接续屏幕不可发生,再结合其他实验,可以确认是链接到屏幕的外部中断导致此问题
解决方案
需要在kernel driver代码中(pinctrl-msm.c)在irq-disable或enable中追加屏蔽外部中断代码,禁用相关中断防止问题发生