![[Android稳定性] 第022篇 [原理篇] kernel panic的死亡信息的由来](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_android_stability_022.png)
[Android稳定性] 第022篇 [原理篇] kernel panic的死亡信息的由来
本文详细介绍了内核稳定性问题中的“kernel panic”异常处理流程。首先,文章通过一个具体的“Unable to handle kernel NULL pointer dereference”异常案例,解释了异常产生的原因和状态信息。接着,文章深入分析了异常处理流程,包括异常入口、异常向量表、异常处理函数等。最后,文章解释了panic函数的触发条件和流程。通过本文,读者可以更好地理解内核稳定性问题,以及如何处理“kernel panic”异常。
![[Android稳定性] 第021篇 [问题篇] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted](https://halo-19274848.oss-cn-shanghai.aliyuncs.com/2025/06/halo_jhqyzy1.png?x-oss-process=style/watermark&x-oss-process=image/resize,w_800,m_lfit)
[Android稳定性] 第021篇 [问题篇] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted
![[Android稳定性] 第020篇 [方法篇] crash实战:手把手教你使用crash分析内核dump](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_android_stability_020_d72a61900b5d80ca3b1a9b3aeea2d6c4.png)
[Android稳定性] 第020篇 [方法篇] crash实战:手把手教你使用crash分析内核dump
copyright_author: OPPO内核工匠 copyright_author_href: https://blog.csdn.net/feelabclihu?type=blog copyright_info: 此文章版权归 OPPO内核工匠 所有,遵循 CC 4.0 BY-SA 版权协议,
![[Android稳定性] 第019篇 [原理篇] QCOM 常见 reboot 类型流程梳理](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_android_stability_019.png)
[Android稳定性] 第019篇 [原理篇] QCOM 常见 reboot 类型流程梳理
cover: "" copyright_author: zsl copyright_author_href: https://github.com/zslxiu copyright_url: "https://wayawbott0.f.mioffice.cn/docx/doxk46H9DPPTQcG
![[Android稳定性] 第018篇 [问题篇] 串口日志未关闭导致的watchdog](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_android_stability_018.png)
[Android稳定性] 第018篇 [问题篇] 串口日志未关闭导致的watchdog
0. 问题现象 死机,dmesg中日志如下: [ 34.029307][ C0] ------------[ cut here ]------------ [ 35.844227][ C0] msm_watchdog f410000.qcom,wdt: QCOM Apps Wat
![[Android稳定性] 第017篇 [方法篇] 高通watchdog分析流程](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_android_stability_017.png)
[Android稳定性] 第017篇 [方法篇] 高通watchdog分析流程
高通watchdog的分析套路: 检查watchdog执行状态,pet、bark time,expires时间等必要信息,可以自己去看msm_watchdog_data,也可以直接检查rampaser解出来的Watchdog data(Non-secure Watchdog data) 检查msm_
![[Android稳定性] 第016篇 [原理篇] 高通平台watchdog机制原理解析](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_android_stability_016.png)
[Android稳定性] 第016篇 [原理篇] 高通平台watchdog机制原理解析
0. watchdog的概念 Watchdog主要应用于嵌入式系统,用于系统出现严重故障(如内核死锁,进入死循环,CPU跑飞等)不能恢复时,在无人为介入的情况下可以自动重新启动系统。 在传统Linux 内核下, watchdog的基本工作原理是:当watchdog启动后(即/dev/watchdog
![[linux内存管理] 第019篇 buddy分配器基础知识以及分配器api接口](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_linux_memory_management_019.png)
[linux内存管理] 第019篇 buddy分配器基础知识以及分配器api接口
0. 前言 众所周知,Linux内存管理的核心是伙伴系统(buddy system)。其实在linux启动的那一刻,内存管理就已经开始了,只不过不是buddy在管理。在内核中,实现物理内存管理的allocator包括: 连续物理内存管理buddy allocator 非连续物理内存管理vmalloc
![[linux内存管理] 第018篇 buddy系统的简介以及初始化](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_linux_memory_management_018.png)
[linux内存管理] 第018篇 buddy系统的简介以及初始化
0. 前言 在[linux内存管理] 第013篇 zone的初始化一文中简单剖析了 zone 的初始化流程,也是继 arm64_memblock_init 和 sparse_init 之后有一个内存管理层,而zone 这一层管理层中,所有的物理内存都会被添加到zone 中的成员变量 free_are
![[linux内存管理] 第017篇 zonelist的初始化](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_linux_memory_management_017.png)
[linux内存管理] 第017篇 zonelist的初始化
0. 前言 在bootmem_init初始化的时候,已经初始化了内存节点的zone成员,该成员是struct zone数组,存放该内存节点的zone信息。在linux的内存管理中,分几个阶段进行抽象,用数据结构来管理。先用结点集合管理内存,然后用zone管理结点,再用页的管理zone。此时使用的数据
![[linux内存管理] 第016篇 /proc/iomem的详细解析](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_linux_memory_management_016.png)
[linux内存管理] 第016篇 /proc/iomem的详细解析
0. 前言 此节点是显示memblock的这部分内存的具体使用情况的。我们可以看到这部分内存很明显不属于虚拟地址,而是物理地址,和设备树中的地址保持一致! spring:/ # cat /proc/iomem 00208000-00208fff : 208000.qcom,ipcc qcom,ipc
![[linux内存管理] 第015篇 理解Linux内核中的memblock和ioremap机制](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/1/cover_linux_memory_management_015.png)
[linux内存管理] 第015篇 理解Linux内核中的memblock和ioremap机制
0. 前言 Linux驱动开发中,设备寄存器的物理地址如何被内核管理并映射到虚拟地址空间,是一个非常核心的知识点。本文将从memblock和ioremap的机制入手,梳理相关流程和原理。 1. 什么是memblock? memblock 是 Linux 内核在启动阶段管理物理内存的核心工具。它的主要