10月前
[Android稳定性] 第038篇 [问题篇] 在workqueue中取消自身导致的workqueue自锁
在高低温测试后出现工模卡死问题,通过手动组合键获取dump和日志分析发现,卡死主要涉及g_reclaim_threa、kworker和电池相关进程,均处于不可中断状态,线程堆栈显示重复调度和互斥锁等待。问题集中在充电管理和电池状态处理流程,表明驱动在极端温度下存在逻辑漏洞。
10月前
[Android稳定性] 第033篇 [问题篇] suspend时shedule io操作导致线程阻塞引发死机
工厂BLMMI工站一台设备死机进dump,经dmesg与任务栈分析,确认是QCOM Apps Watchdog在约67.7秒触发bark/bite,而系统最后一次喂狗停在47.7秒,中间超过20秒未喂狗。期间系统处于s2idle挂起流程中,未正常resume,定时器与调度未运行,导致watchdog无法被喂。 进一步从timer list看到,当前时刻并没有到任何定时器触发点,印证了系统在挂起状态未被唤醒。通过tasks.txt定位到关键卡死线程为......
10月前
[Android稳定性] 第036篇 [原理篇] 理解中断上下文、进程上下文以及进程调度之间的关系
本文深入探讨了进程上下文、中断上下文以及 Linux 进程调度器(如 CFS)的概念和关联性。进程上下文是内核代码为特定进程执行任务的环境,能被调度、休眠和参与 CFS 调度。中断上下文是内核响应中断时运行的代码环境,不能睡眠,且不直接参与调度。SoftIRQ 和 Tasklet 作为中间层,处理中断后的任务。三者之间的关联性体现在中断上下文可以触发调度事件,而进程上下文可以主动调用调度器。文中还列举了在中断上下文中不能调用的函数或行为,并强调了中断上下文中禁止使用可能引起睡眠或阻塞的函数,以避免系统问题。
10月前
[Android稳定性] 第037篇 [问题篇] vote函数持锁造成经典的AB-BA死锁
您好,我是一位专业的100字左右文章摘要总结写手。根据您提供的问题背景和日志分析,本文将探讨一个在Android设备老化测试过程中遇到的问题。具体来说,当使用组合键手动进入dump状态时,设备卡在了某些进程上,无法继续执行。通过分析dmesg日志,我们发现多个进程处于D状态,且存在锁的竞争关系。最终,我们确定这是一个典型的AB-BA锁死锁问题。