云栖梦泽
林渡
Blog
  • 首页
  • 我的视界
    • 人世间
      • 世间风声
      • 人间烟火
    • 壹句话
    • 云外光影
      • 动物与植物
      • 美食
      • 生活气息
      • 人物
    • 文章归档
      • 技术分享
      • 视频类型
      • 音频类型
      • 图文类型
      • 图片类型
  • 「内核宇宙」
    • 灵感工坊
      • 灵感风暴
      • 与AI共生
      • 开源项目推荐
    • 底层漫游
      • Android稳定性
      • Linux内存管理
      • Linux进程调度
      • Linux内核
      • ARM体系架构
      • LRDP2
      • 技术分享
  • 璀璨星河
    • 公告
    • 轻言
    • 应用舱
    • 众星
    • 豆瓣
    • 足迹
    • 走心评论
    • 林渡的网盘
  • 留言板
  • 关于
    • 捐赠者名单
    • 关于我
    • 一些声明
      • 站点声明
      • 隐私政策
    • 网站看板
  • 欢迎订阅!

欢迎来到云栖梦泽,为您导读全站动态
  • 路人甲不掉线 10小时前前留言 bringup 阶段把 SELinux 直接设成 permissive 然后还遇到 kernel panic,这种情况我之前也踩过,不过当时没想到会是 zram 驱动的问题。文中这条时间线很关键:uzram.ko 加载 -> zram0 容量变化 -> mkswap 调用 -> UBSAN 报错,把现场还原得很清楚。感觉以后排查类似问题,先看 UBSAN 日志 + 反汇编,比盲目改代码稳多了。能不能顺便分享下你那个 kernel-panic-killer 工具的大致实现?
  • 林渡 6日前前留言 不好意思哈,公司使用的,不开源
  • jxc 1周前前留言 请问可以开源吗?
  • 林渡 1周前前留言 我用的是chatgpt-image-2制作的封面图
  • 林渡 2周前前留言 哈哈,谢谢你们!
  • TTT 3周前前留言 11111,有人看,每分每刻。
  • TTT 2026-06-10前留言 感谢分享😚
  • 林渡 2026-06-08前留言 Hi,这个涉及到我司客户的设计方案,只对我司内部员工开放
  • 狗黄他满满 2026-06-02前留言 请问这个可以看嘛😁
  • 林渡 2026-06-01前留言 用 gpt image 2绘制的
2026 年 7 月
日一二三四五六
1234
567891011
12131415161718
19202122232425
262728293031
« 6 月  
最近文章
  • 2026-07-15 [linux内存管理] 第 047 篇 Linux 内存回收(Memory Reclaim)总体架构
  • 2026-07-11 [Android稳定性] 第65篇 SELinux 设置为 permissive 模式后出现的 kernel panic
  • 2026-07-03 再看《孩子王》观后感:当AI成为每个人的“字典”之后
  • 2026-06-01 [Android稳定性] 第64篇 blk_mq_tags Use-After-Free 导致系统级 I/O 死锁
  • 2026-06-01 [Android稳定性] 第63篇 EROFS 解压缩页面 Use-After-Free 导致 Kernel Panic
  • 2026-05-06 [开源项目] GitNexus + Claude Code 配置与使用指南
  • 2026-04-10 [linux内存管理] 第046篇 Page Cache脏页回写机制深入分析
  • 2026-04-01 AI时代笔记工作流:构建下一代知识管理引擎
  • 2026-03-24 认知加速度:AI时代最残酷的鸿沟,正在此刻拉开
  • 2026-03-20 Linux 内核崩溃分析报告 - AI
  • 2026-03-11 AI时代的思考:内核稳定性工程师离失业还有多久?
  • 2026-03-06 [linux内存管理] 第045篇 per-CPU变量的静态与动态分配
  • 2026-03-04 [linux内存管理] 第044篇 per-CPU基础知识以及per-CPU分配器的初始化
  • 2026-03-02 [Android稳定性] 第62篇 内核访问与tee共享的内存数据异常造成内存越界
  • 2026-02-28 [LRDP2] 解析插件之logcat
  • 2026-02-26 [linux内存管理] 第043篇 page cache 脏页跟踪机制
  • 2026-02-26 向 Linux 内核社区提交 patch 实操要点
  • 2026-02-06 基于 QEMU 与 VSCode 的 Linux 内核调试环境搭建指南
  • 2026-02-06 「纵朝生暮死,亦当惊鸿」
  • 2026-02-04 [linux内存管理] 第042篇 Linux内核Page Cache机制深入分析
热门文章
  • 2024-11-22 高通android启动代码流程分析(SBL->ABL)
  • 2026-01-29 📢 致读者的一封信:关于运营、初心与一份邀请
  • 2026-05-06 [开源项目] GitNexus + Claude Code 配置与使用指南
  • 2024-12-15 [Android稳定性] 第000篇 Android稳定性系列开篇
  • 2025-07-21 高通以及MTK平台内核单独编译ko的原理
  • 2025-08-27 [Android稳定性] 第058篇 [方法篇] 高通平台使用QFIL回读分区
  • 2025-09-04 琴棋书画诗酒花与柴米油盐酱醋茶的人生辩证
  • 2025-07-10 [Linux进程调度] 第001篇 一篇文章全面了解Linux进程调度
  • 2026-01-08 【深入内核】中断真的不能睡眠吗?
  • 2025-06-25 [Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump?
  • 2025-06-18 [linux内存管理] 第027篇 Linux ARM64 虚拟地址布局
  • 2024-12-15 [Android稳定性] 第001篇 [方法篇] 高通Android平台稳定性分析介绍
  • 2025-01-14 [Android稳定性] 第017篇 [方法篇] 高通watchdog分析流程
  • 2025-11-03 [linux内存管理] 第000篇 Linux内存管理系列开篇
  • 2025-06-09 【深入内核】linux ftrace详解
  • 2024-11-29 [linux内存管理] 第009篇 reserved-memory详解
  • 2024-12-18 [Android稳定性] 第004篇 [原理篇] minidump的原理介绍
  • 2025-10-23 利用 Claude Code 探索 Linux 内核奥秘
  • 2025-06-16 [Android稳定性] 第049篇 [问题篇] 软中断霸占CPU导致watchdog无法及时喂狗
  • 2025-08-05 [Android稳定性] 第057篇 [方法篇] 高通平台使能ftrace的方法
热门标签
  • 内核线程 1
  • 价值观 1
  • 内核开发 3
  • 生产力工具 1
  • Linux内核 12
  • init进程 1
  • 理想与现实 1
  • 人生态度 1
  • 人生意义 1
  • 精神追求 1
  • 性能优化 1
  • 生活美学 1
  • 内核栈 1
  • 任务优先级 0
  • 反思 1
  • 个人成长 1
  • 时间管理 1
  • 自我认知 1
  • 烟火气 1
  • 任务管理 1
  • Static Keys 1
  • 进程调度 1
  • 动态分支 1
  • 寄存器 1
  • idle进程 1
  • 高效工作 1
  • 页面管理 1
  • minidump 3
  • kmalloc 2
  • 脏页 2
74914° 194 15 275
当您评论及浏览文章且浏览器未禁止COOKIE时,会为您显示最近10条回复及前20篇文章的浏览记录。
在万物之间穿行,也在自我之间渡过。

你好,
我是林渡

    • 4周前

      想通了,工具是我的,能力是我的,公司只是一段时间的甲方。

    • 2026-06-03

      太痛了😭

    • 2026-05-15

      我爱白嫖!

    • 2026-04-20

      这段时间我写博文的速度也慢下来了,因为我在思考,思考在这个AI时代下技术博客还有没有必要存在? 从我个人角度来说,我其实也不愿意看那些长篇大论的技术文章,也是随手丢给 AI 看一眼,让它帮我总结提炼出关键!而我遇到的那些坑,其实 AI 也比我更加的懂,更加的全面,那我还有必要写嘛?

    • 查看更多瞬间动态
  • [linux内存管理] 第022篇 buddy内存管理之慢速分配 2025-02-19 评论 林渡
      Linux内存管理
      buddy
    [linux内存管理] 第022篇 buddy内存管理之慢速分配

    延续对内核内存分配机制的深入解析,本文聚焦于`__alloc_pages`函数中的慢速分配流程。当快速分配失败后,系统会启用慢速路径,通过多种方式尝试获得所需页,包括直接回收、内存规整、唤醒kswapd线程与触发OOM机制。详细剖析了关键参数如`can_direct_reclaim`(是否允许回收)、`costly_order`(大块分配压力)、`__GFP_ATOMIC`滥用检查,以及规整与回收触发条件。代码层面揭示内存分配失败时的处理逻辑,强调高效而严谨的回退与重试机制,保证系统最大程度完成分配需求,并在极端情况下输出详细警告。

    [Android稳定性] 第024篇 [方法篇] RCU Stall问题如何进行分析? 2025-02-18 评论 林渡
      Android稳定性
      RCU
    [Android稳定性] 第024篇 [方法篇] RCU Stall问题如何进行分析?

    RCU(读-复制-更新)是一种针对多核、多线程环境的内存同步机制,旨在解决读写并发问题,特别适用于读多写少的场景。RCU Stall是指RCU子系统检测到的问题,如宽限期未结束、回调堆积或调度延迟等,可能导致系统性能下降。分析RCU Stall的方法包括检查内核日志、任务栈回溯、长时间运行的任务、锁和资源争用等。实例中,通过dmesg日志分析和打开panic_on_rcu_stall来复现问题,并通过串口输出进程信息进行深入诊断。

    [linux内存管理] 第021篇 buddy内存管理之快速分配 2025-02-18 评论 林渡
      Linux内存管理
      watermark
    [linux内存管理] 第021篇 buddy内存管理之快速分配

    深入解析Linux buddy分配器的alloc_pages核心算法,详述内存分配的“快速分配”与“慢速分配”流程。通过源码剖析,呈现alloc_pages如何高效处理内存请求,包括gfp标志、NUMA节点选择、碎片优化及分配策略,突出快速分配优先从zone链表获取空闲页,未命中时转入慢速路径处理.

    [linux内存管理] 第020篇 Linux内核slab内存的越界检查SLUB_DEBUG的原理剖析 2025-02-11 评论 林渡
      Linux内存管理
      slabSLUB_DEBUG
    [linux内存管理] 第020篇 Linux内核slab内存的越界检查SLUB_DEBUG的原理剖析

    越界访问常引发难以定位的系统异常,尤其在驱动开发中隐蔽性极高。SLUB DEBUG通过在分配内存对象周围设置特殊区域和magic数,有效检测越界(OOB)、用后即弃(UAF)等问题。借助Red zone和padding机制,能精准发现内存溢出及链表破坏,搭配slabinfo工具主动触发检测。

    [Android稳定性] 第023篇 [问题篇] printk非空的非法指针参数导致的spinlock死锁引起Non Secure WDT 2025-02-11 评论 林渡
      Android稳定性
      crashspinlockwatchdogslab
    [Android稳定性] 第023篇 [问题篇] printk非空的非法指针参数导致的spinlock死锁引起Non Secure WDT

    本文分析了Linux内核中因`Non secure wdt`导致的死机问题。通过分析ramdump,发现所有CPU都在等待一个spin lock,且锁的持有者是`kworker/u17:12`。进一步分析发现,该进程在获取锁后出现了data abort,并在异常处理流程中再次尝试获取锁,导致死锁。根本原因是`nvt_update_firmware`函数中使用了未初始化的指针作为`printk`的参数,导致打印异常。解决方案是将`kmalloc`改为`kzalloc`,以确保内存被清零。实验验证了当`printk`的参数为非法指针时,会导致死锁。

    [Android稳定性] 第022篇 [原理篇] kernel panic的死亡信息的由来 2025-01-20 评论 林渡
      Android稳定性
      panic
    [Android稳定性] 第022篇 [原理篇] kernel panic的死亡信息的由来

    本文主要介绍了 Linux 内核稳定性问题中的“kernel panic”现象,并深入分析了其产生的原因、异常处理流程以及如何处理。文章以一个具体的异常案例为切入点,详细解释了异常信息的解读、异常向量表的查找、异常处理函数的执行过程,并最终揭示了 panic 报错信息的来源。文章还介绍了 oops_enter、console_verbose、__die、dump_backtrace 等关键函数的功能,以及 panic_on_oops 内核参数对 panic 流程的影响。通过本文的学习,读者可以更好地理解内核 panic 的产生机制,并掌握相应的调试方法。

    [Android稳定性] 第021篇 [问题篇] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted 2025-01-18 评论 林渡
      Android稳定性
      进程栈bitflip
    [Android稳定性] 第021篇 [问题篇] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted

    深入剖析了一起由内核函数mi_binder_wait4_hook触发的“Kernel stack is corrupted”内核崩溃问题。文章通过详细的dmesg日志分析、ARM汇编栈帧解析和Trace32进程栈回溯,复现了故障发生的关键环节,定位到x29栈帧指针因bitflip问题发生异常,导致栈保护机制触发__stack_chk_fail并panic。内容不仅梳理了栈帧的典型入栈流程及关键寄存器的存储关系,还精确描述了如何通过异常PC偏移与寄存器快照还原出崩溃前后的调用链路,展示了问题定位的扎实技术细节。最后,通过二进制对比,明确指出bitflip对函数栈帧完整性的破坏方式,为类似内核异常

    [Android稳定性] 第020篇 [方法篇]  crash实战:手把手教你使用crash分析内核dump 2025-01-18 评论 林渡
      Android稳定性
      crashtrace32栈帧
    [Android稳定性] 第020篇 [方法篇] crash实战:手把手教你使用crash分析内核dump

    本文介绍了使用crash工具分析Linux内核崩溃(Kdump)的方法,重点针对手机领域。crash工具在处理大型dump文件时比trace32更加高效,因为它不会占用大量内存资源。文章还探讨了crash工具在恢复任务调用栈、查看局部变量值等方面的实用技巧,以及如何查找访问特定变量的线程。通过crash工具,开发者可以更有效地定位和解决内核崩溃问题,提高问题定位的效率。

    [Android稳定性] 第018篇 [问题篇] 串口日志未关闭导致的watchdog 2025-01-14 评论 林渡
      Android稳定性
      watchdog
    [Android稳定性] 第018篇 [问题篇] 串口日志未关闭导致的watchdog

    系统出现死机,日志显示QCOM Apps Watchdog超时触发。分析发现,所有CPU核心均暂停等待`rcu_momentary_dyntick_idle`,CPU0正在执行打印操作,导致无法及时pet watchdog,引发异常。解决方案建议关闭kernel的串口日志以避免类似问题。

    [Android稳定性] 第017篇 [方法篇] 高通watchdog分析流程 2025-01-14 评论 林渡
      Android稳定性
      watchdog
    [Android稳定性] 第017篇 [方法篇] 高通watchdog分析流程

    高通watchdog分析七步法:首先检查执行状态,确认进程位置和状态;若未就绪,探究timer问题;若就绪未调度,分析中断及调度状况;最后检查进程是否禁止抢占,确保系统稳定运行。

    1 … 11 12 13 … 19
  • 简述
    在万物之间穿行,也在自我之间渡过。
    liuqi20328@gmail.com
    生涯
  • 行业嵌入式
  • 职业Linux/Android内核工程师
  • 人生
  • 生活角色浪子、父母的娃、我夫人的老公
  • 社会角色公司职员、中华人民共和国公民
  • 类型
  • 星座 ♊双子座
  • 生肖 🐖猪
  • 血型O
  • 数据
  • 发表文章184篇
  • 发表评论74个
  • 星球加热65051度
  • 最近的心情能量
      愉快 沮丧
    • 😐 不喜不悲 ,当时发表在「[linux内存管理] 第022篇 buddy内存管理之慢速分配」
    • 😐 不喜不悲 ,当时发表在「[Android稳定性] 第024篇 [方法篇] RCU Stall问题如何进行分析?」
    • 😐 不喜不悲 ,当时发表在「[linux内存管理] 第021篇 buddy内存管理之快速分配」
    • 😐 不喜不悲 ,当时发表在「[linux内存管理] 第020篇 Linux内核slab内存的越界检查SLUB_DEBUG的原理剖析」
    • 😐 不喜不悲 ,当时发表在「[Android稳定性] 第023篇 [问题篇] printk非空的非法指针参数导致的spinlock死锁引起Non Secure WDT」
  • 地图数据来源于高德地图
  • intj 建筑师
    intj 建筑师
    • 外向内向
    • 远见现实
    • 理性感受
    • 评判展望
    • 坚决起伏
  • 了解更多信息
今天是云栖梦泽·

2024-11-11

随机阅读「 [Android稳定性] 第048篇 [原理篇] Android SWT机制介绍」
阅读 深入解析Android System Server中的Watchdog机制,阐述其关键作用:防止核心服务和线程因死锁或长时间阻塞导致系统不可用,通过周期性Checker监控各大线程与服务,超时自动重启,保障系统稳定与用户体验。详细讲解Watchdog的启动流程、重要变量、核心线程监控逻辑和AMS集成
壹行随十人
  • iSeekLife
  • 世上云川
  • 且听书吟
  • 谜叶象限
  • 山海寻川
  • 菲兹克斯喵
  • 南方嘉木
  • 问心斋
  • 秘柯絮语
  • 博客集市
云栖梦泽版权所有 · 架构于Halo及为您增强体验的THYUU/星度主题
苏ICP备2025185582号-1 苏ICP备2025185582号-1 苏公网安备32060102321049号 苏公网安备32060102321049号 BlogsClub BlogsClub 笔墨迹 笔墨迹