![[Android稳定性] 第036篇 [原理篇] 理解中断上下文、进程上下文以及进程调度之间的关系](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/4/cover_android_stability_036.png)
[Android稳定性] 第036篇 [原理篇] 理解中断上下文、进程上下文以及进程调度之间的关系
本文深入探讨了进程上下文、中断上下文以及 Linux 进程调度器(如 CFS)的概念和关联性。进程上下文是内核代码为特定进程执行任务的环境,能被调度、休眠和参与 CFS 调度。中断上下文是内核响应中断时运行的代码环境,不能睡眠,且不直接参与调度。SoftIRQ 和 Tasklet 作为中间层,处理中断后的任务。三者之间的关联性体现在中断上下文可以触发调度事件,而进程上下文可以主动调用调度器。文中还列举了在中断上下文中不能调用的函数或行为,并强调了中断上下文中禁止使用可能引起睡眠或阻塞的函数,以避免系统问题。
![[Android稳定性] 第035篇 [问题篇] 中断风暴触发watchdog bite](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/4/cover_android_stability_035.png)
[Android稳定性] 第035篇 [问题篇] 中断风暴触发watchdog bite
**问题背景**:系统出现死机现象,且插上屏幕后问题消失。 **问题分析**: 1. **dmesg分析**:发现watchdog被触发,导致系统死机。 2. **堆栈分析**:`dsi_ctrl_hw_cmn_ctrl_reset()`函数卡住,没有正常返回。 3. **中断分析**:系统处于中断风暴状态,`msm_drm`和`dsi_ctrl`模块中断触发频率异常高。 4. **中断号分析**:通过T32工具查找中断号,进一步确定问题根源。 **根本原因**: 某个设备中断(如QtiBus/IPC/CAN)在IRQ handler中未及时退出,导致CPU被中断处理任务占满,无法进行正常调度,最终触发watchdog并导致死机。
![[Android稳定性] 第007篇 [问题篇] 中断风暴导致panic](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/12/cover_android_stability_007.png)
[Android稳定性] 第007篇 [问题篇] 中断风暴导致panic
问题摘要:系统日志显示irq 193存在异常,其action为0,表明中断未被注册,导致中断被送至`handle_bad_irq`处理。经查询,该中断对应gpio 93,且在设备树中该gpio被用于wusb3801的中断和复位功能。去除相关配置后,系统恢复正常。