[Android稳定性] 第000篇 Android稳定性系列开篇 8月前查看 1 条
[Android稳定性] 第000篇 Android稳定性系列开篇

本文集深入探讨了Android稳定性问题,分为方法篇、原理篇和问题篇三个部分。方法篇介绍了稳定性分析的方法,包括高通Android平台稳定性分析、watchdog分析流程、crash分析以及RCU Stall问题的分析等。原理篇详细解析了subsystem ramdump、mtdoops、minidump、blackbox等稳定性相关原理,以及高通平台watchdog机制和QCOM常见reboot类型流程。问题篇则列举了多种稳定性问题案例,如原子状态调度引起的死机、中断风暴导致的panic、内存分配失败、slab内存泄露等,并分析了其原因及解决方案。

[Android稳定性] 第055篇 从dump信息角度学调度schedule 3周前查看 评论
[Android稳定性] 第055篇 从dump信息角度学调度schedule

本文分析了Linux内核中进程调度的流程和上下文切换的细节。在调度过程中,首先关闭抢占,然后调用核心调度函数__schedule,该函数会关闭抢占,选择下一个任务,切换上下文,并最终切换到下一个任务的执行。上下文切换涉及到保存上一个进程的上下文,加载下一个进程的上下文,并最终切换到下一个任务的执行。

[Android稳定性] 第054篇 [方法篇] 高通平台如何解析ADSP Crash? 3周前查看 评论
[Android稳定性] 第054篇 [方法篇] 高通平台如何解析ADSP Crash?

本文主要介绍了使用crashman工具解析adsp的方法。首先,需要准备crashman工具、python环境和perl工具。然后,准备解析所需的三个部分:fulldump中的DDRCS0_0.BIN、bp symbols和adsp源码。接下来,通过执行特定的python命令进行解析,并使用ONEMORE集成工具中的adsp crash解析插件来简化解析过程。安装插件前需安装基础工具包。最后,根据工具选项卡中的选项填写相关信息,点击运行即可进行解析。

[Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump? 2月前查看 1 条
[Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump?

本文主要介绍在HMI项目中处理minidump.gz文件的方法,包括解压minidump.gz和解密minidump。文中提到两种解压方式:本地解压和在线解压,推荐在线解压。解压后,使用脚本将minidump拆分成各个bin文件。接着,生成ap_minidump.elf文件,这是解析APPS关键步骤。文章还提供了相关的脚本和命令,并展示了预期解析结果。该方法也适用于其他高通平台项目。

[Android稳定性] 第051篇 [原理篇] 从timer角度学习高通平台的watchdog 2月前查看 1 条
[Android稳定性] 第051篇 [原理篇] 从timer角度学习高通平台的watchdog

本文主要介绍了Linux内核中的定时器机制,包括低精度定时器timer_list和高精度定时器hrtimer,以及它们在watchdog timer中的应用。文章首先介绍了timer_list的实现机制、核心数据结构和API,并通过一个简单的示例展示了其使用方法。接着,文章深入剖析了hrtimer的实现机制、核心数据结构和API,并给出了一个hrtimer定时器的示例驱动。随后,文章着重介绍了watchdog timer的使用,包括其初始化、喂狗线程函数和suspend/wakeup处理。此外,文章还介绍了基于软件的软看门狗机制,包括其基本原理、核心组件、检测流程和内核中的主要实现。最后,文章总结了watchdog timer的debug方法和技巧,并提供了一些常用的内核参数用于调试。

[Android稳定性] 第050篇 [问题篇] slab内存泄露造成设备黑屏 2月前查看 评论
[Android稳定性] 第050篇 [问题篇] slab内存泄露造成设备黑屏

本文描述了在测试手机经过长期智能充电后,出现卡顿和黑屏的问题现象。复现步骤包括设置手机时间和电池温度,并使用QC3.0充电器进行充电。预期结果是系统界面流畅,但实际结果是系统界面卡死和黑屏。通过分析内存信息和slab信息,发现内存不足和slab内存泄露问题。通过slabtrace分析,确定问题根源在于charger模块中的一些函数调用导致了内存泄露。解决方案是在申请内存前,先判断是否已经申请过,以避免重复申请。

 [Android稳定性] 第049篇 [问题篇] 软中断霸占CPU导致watchdog无法及时喂狗 2月前查看 2 条
[Android稳定性] 第049篇 [问题篇] 软中断霸占CPU导致watchdog无法及时喂狗

**问题现象**: 系统出现死机现象。 **问题分析**: 通过分析dmesg日志和内核定时器数据,发现是由于watchdog定时器未在规定时间内被“喂狗”导致。进一步分析发现,CPU 3上的定时器时钟落后,导致pet_timer无法在规定时间触发。 **问题根因**: 网络驱动中的软中断处理路径占用了较长时间的软中断上下文,并多次禁用底半部,导致定时器软中断无法及时执行。 **解决方案**: 建议优化网络驱动中的软中断处理路径,减少底半部的禁用时间,以确保定时器软中断能够及时执行。