![[Android稳定性] 第030篇 [问题篇] I2C bus hang 导致锁线程阻塞导致卡死](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/4/cover_android_stability_030.png)
[Android稳定性] 第030篇 [问题篇] I2C bus hang 导致锁线程阻塞导致卡死
当前文章内容已隐藏,输入密码后可见。
![[Android稳定性] 第029篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/4/cover_android_stability_029_1c81c82acebdd8120bce9ae2e9352245.png)
[Android稳定性] 第029篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1
一、问题现象 高低温测试中出现两例死机问题,问题的指向于charger模块 二、问题分析 2.1 dmesg_TZ.txt 125008.185224: Unexpected kernel BRK exception at EL1 125008.185232: Internal error:
![[Android稳定性] 第028篇 [问题篇] 可靠性滚筒测试中高概率自动关机问题记录](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/4/cover_android_stability_028_3755aa0b8c99ba68aae93f948ea17ed3.png)
[Android稳定性] 第028篇 [问题篇] 可靠性滚筒测试中高概率自动关机问题记录
当前文章内容已隐藏,输入密码后可见。
![[Android稳定性] 第027篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/4/cover_android_stability_027_c4bd7f27c2dcd67381ab558309350b7e.png)
[Android稳定性] 第027篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1
一、问题背景 【复现概率】10/10 【前提条件】正常测试过程中 【复现步骤】电池温度达到35度 【预期结果】手机正常使用 【实际结果】手机进入dump 二、问题分析 2.1 dmesg_TZ.txt [ 492.250281][ T1879] [usbpd-pm]: usbpd_pm_
![[linux内存管理] 第023篇 watermark详解](https://halo-19274848.oss-cn-shanghai.aliyuncs.com/2025/06/halo_pw9ljvu.png?x-oss-process=image/resize,w_800,m_lfit)
[linux内存管理] 第023篇 watermark详解
0. 前言 简单来说,在使用zoned page frame allocator分配页面时,会将可用的free pages与zone的watermark进行比较,以便确定是否分配内存。 同时watermark也用来决定kswapd内核线程的睡眠与唤醒,以便对内存进行检索和压缩处理。 回忆一下之前提到
![[Android稳定性] 第026篇 [方法篇] 在windows平台安装Linux ramdump parser工具](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/3/cover_android_stability_026_c5bd8ccc1e3c9cb298ff60bfb7a1ac48.png)
[Android稳定性] 第026篇 [方法篇] 在windows平台安装Linux ramdump parser工具
一、安装python工具 前往网站(https://www.python.org/downloads/)下载python安装包,python >= 3.6.8即可 安装python工具到一个目录,比如:C:\Python36 进入到C:\Python36\Scripts目录中,使用pip指令安装库
![[Android稳定性] 第025篇 [问题篇] KASAN slab-out-of-bounds内存越界问题](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/2/cover_android_stability_025_5740910aa4ba21f5dc33014b9ca9c449.png)
[Android稳定性] 第025篇 [问题篇] KASAN slab-out-of-bounds内存越界问题
文章摘要:在kasan版本corgi:4967550中,发现4台设备死机,问题源于usbpd模块的slab-out-of-bounds。分析发现,问题出在usbpd_mi_vdm_received_cb函数中的for循环,导致内存越界。通过汇编代码和源码确认,vdos起始地址为0xffffff808d6c0a58,范围为0x8。解决方案是调整循环次数,使用rx_msg->data_len/sizeof(u32)来控制。此外,问题是由KASAN检测出的slab内存泄漏,可通过内存分布和alloc/free track进一步分析。
![[linux内存管理] 第22篇 buddy内存管理之慢速分配](https://halo-19274848.oss-cn-shanghai.aliyuncs.com/2025/06/halo_vhe9kfz.png?x-oss-process=image/resize,w_800,m_lfit)
[linux内存管理] 第22篇 buddy内存管理之慢速分配
0. 前言 在上一篇文章中我们分析了__alloc_pages中的get_page_from_freelist,也就是快速分配部分。这个函数会根据分配掩码和分配order进行快速分配,若快速分配过程并不能分配到合适的内存时,则会进入慢速分配的过程。 本文紧接前文继续分析__alloc_pages函数
![[Android稳定性] 第024篇 [方法篇] RCU Stall问题如何进行分析?](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/12/cover_how_to_debug_rcu_stall_issue.png)
[Android稳定性] 第024篇 [方法篇] RCU Stall问题如何进行分析?
RCU是一种针对多核多线程环境的内存同步机制,适用于读多写少的场景,通过读写操作分离提高系统效率。RCU Stall是RCU子系统在检测到异常时触发的状态,常见原因包括任务长时间运行、RCU临界区未退出等。分析RCU Stall的方法包括查看内核日志、任务堆栈回溯、检查长时间运行任务和调整RCU参数等。实例中通过dmesg日志分析确认RCU Stall问题,并通过触发panic获取更多信息。
![[linux内存管理] 第21篇 buddy内存管理之快速分配](https://halo-19274848.oss-cn-shanghai.aliyuncs.com/2025/06/halo_zarkuub.png?x-oss-process=image/resize,w_800,m_lfit)
[linux内存管理] 第21篇 buddy内存管理之快速分配
0. 前言 在前一文[linux内存管理] 第19篇 buddy分配器基础知识以及分配器api接口中,对buddy分配器的基础知识做了简单的介绍,包括涉及到的分配掩码、分配标志、分配入口函数、释放入口函数,而buddy分配的工作是分为快速分配和慢速分配两种的 快速分配:指现有的buddy系统中的fr