1周前
[linux内存管理] 第 057 篇 OOM Kill 与 panic_on_oom —— 杀人的艺术与崩溃的抉择
本文深入解析Linux内核OOM(内存不足)处理机制的最终环节。核心内容包括:通过`oom_kill_process`函数处决选定的受害进程(victim),其流程涵盖检查进程退出状态、打印系统内存日志、处理cgroup组,并最终发送SIGKILL信号。同时,文章阐释了`panic_on_oom`参数的不同取值(0、1、2)如何决定系统在OOM时是终止进程还是触发内核崩溃,为系统管理员在稳定性与故障恢复间提供了关键的选择依据。
2025-01-20
[Android稳定性] 第022篇 [原理篇] kernel panic的死亡信息的由来
本文主要介绍了 Linux 内核稳定性问题中的“kernel panic”现象,并深入分析了其产生的原因、异常处理流程以及如何处理。文章以一个具体的异常案例为切入点,详细解释了异常信息的解读、异常向量表的查找、异常处理函数的执行过程,并最终揭示了 panic 报错信息的来源。文章还介绍了 oops_enter、console_verbose、__die、dump_backtrace 等关键函数的功能,以及 panic_on_oops 内核参数对 panic 流程的影响。通过本文的学习,读者可以更好地理解内核 panic 的产生机制,并掌握相应的调试方法。
2024-12-18
[Android稳定性] 第007篇 [问题篇] 中断风暴导致panic
问题摘要:系统日志显示irq 193存在异常,其action为0,表明中断未被注册,导致中断被送至`handle_bad_irq`处理。经查询,该中断对应gpio 93,且在设备树中该gpio被用于wusb3801的中断和复位功能。去除相关配置后,系统恢复正常。