云栖梦泽
林渡
Blog
  • 首页
  • 我的视界
    • 人世间
      • 世间风声
      • 人间烟火
    • 壹句话
    • 云外光影
      • 动物与植物
      • 美食
      • 生活气息
      • 人物
    • 文章归档
      • 技术分享
      • 视频类型
      • 音频类型
      • 图文类型
      • 图片类型
  • 「内核宇宙」
    • 灵感工坊
      • 灵感风暴
      • 与AI共生
      • 开源项目推荐
    • 底层漫游
      • Android稳定性
      • Linux内存管理
      • Linux进程调度
      • Linux内核
      • ARM体系架构
      • LRDP2
      • 技术分享
  • 璀璨星河
    • 公告
    • 轻言
    • 应用舱
    • 众星
    • 豆瓣
    • 足迹
    • 走心评论
    • 林渡的网盘
  • 留言板
  • 关于
    • 捐赠者名单
    • 关于我
    • 一些声明
      • 站点声明
      • 隐私政策
    • 网站看板
  • 欢迎订阅!

欢迎来到云栖梦泽,为您导读全站动态
  • 生辰八字算命 1日前前留言 文章不错支持一下,非常喜欢
  • 免费算命 1日前前留言 文章不错非常喜欢,支持一下
  • 林渡 6日前前留言 没有欸😭,我也想要个稳定性的交流群
  • Hk 6日前前留言 你好,请问有交流群吗?稳定性相关的工程师交流群
  • 林渡 1周前前留言 是的,自主定制自由度高😄
  • 扶苏 1周前前留言 我去。星辰主题还能这么玩啊,大侠那个头部动画真帅气~~~拉风的一笔。。。
  • 林渡 3周前前留言 暂时没有工具开源的打算,大致的实现是通过agent去调用crash工具
  • 一只搬砖攻城狮 4周前前留言 细节看得出来你们环境开了 UBSAN 和 panic on ubsan,这在 Android 项目里还挺少见的,大多数厂商为了性能直接关了。这里如果不开 UBSAN,这个 array index 问题估计会变成各种随机死机。文章里通过 w27/w25 回溯到 current_algo=0 的过程,对刚接触 arm64 反汇编的人很友好。建议后面加一段防御性编程的建议,比如 static u32 改成带默认值的,全局加上 BUILD_BUG_ON 或者在 sysfs 写入前后增加 sanity check。
  • 北城旧梦 4周前前留言 原来是 current_algo 默认没初始化导致的下溢越界,这个坑真隐蔽。平时大家一上来就怀疑是 SELinux permissive 导致的异常,其实根因还是内核模块自己的逻辑问题。你用 AI 去逆向 calltrace、再结合源码给出完整证据链这一点挺佩服的,思路清晰,比单纯看 backtrace 强多了。想问下你们最后是选择在 init 里给 current_algo 赋默认值,还是在访问 comps[algo-1] 前再加一层保护?
  • 林渡 2026-07-16前留言 已开放
2026 年 8 月
日一二三四五六
1
2345678
9101112131415
16171819202122
23242526272829
3031
« 7 月  
最近文章
  • 2026-08-14 [linux内存管理] 第 053 篇 OOM 整体流程:从内存耗尽到系统崩溃的完整链路
  • 2026-08-12 LoreMate:给 lore.kernel.org 装上 AI 阅读助手
  • 2026-08-12 AOSP 整机源码 Harness 工程探索
  • 2026-08-06 [linux内存管理] 第 052 篇 shrink_page_list:内存回收的“最后一道关口”
  • 2026-08-04 Monsoon Power Monitor MCP 工具介绍
  • 2026-07-28 [linux内存管理] 第 051 篇 内存回收核心 shrink_node
  • 2026-07-22 [linux内存管理] 第 050 篇 深度分析 direct reclaim 机制
  • 2026-07-20 [linux内存管理] 第 049 篇 深度分析 Linux kswapd 后台回收机制
  • 2026-07-16 [linux内存管理] 第 048 篇 从 alloc_pages() 开始:快慢路径下的内存回收策略
  • 2026-07-15 [linux内存管理] 第 047 篇 Linux 内存回收(Memory Reclaim)总体架构
  • 2026-07-11 [Android稳定性] 第065篇 SELinux 设置为 permissive 模式后出现的 kernel panic
  • 2026-07-03 再看《孩子王》观后感:当AI成为每个人的“字典”之后
  • 2026-06-01 [Android稳定性] 第064篇 blk_mq_tags Use-After-Free 导致系统级 I/O 死锁
  • 2026-06-01 [Android稳定性] 第063篇 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时代的思考:内核稳定性工程师离失业还有多久?
热门文章
  • 2024-11-22 高通android启动代码流程分析(SBL->ABL)
  • 2026-01-29 📢 致读者的一封信:关于运营、初心与一份邀请
  • 2026-05-06 [开源项目] GitNexus + Claude Code 配置与使用指南
  • 2024-12-15 [Android稳定性] 第000篇 Android稳定性系列开篇
  • 2025-08-27 [Android稳定性] 第058篇 [方法篇] 高通平台使用QFIL回读分区
  • 2025-07-21 高通以及MTK平台内核单独编译ko的原理
  • 2026-04-01 AI时代笔记工作流:构建下一代知识管理引擎
  • 2025-09-04 琴棋书画诗酒花与柴米油盐酱醋茶的人生辩证
  • 2025-07-10 [Linux进程调度] 第001篇 一篇文章全面了解Linux进程调度
  • 2026-01-08 【深入内核】中断真的不能睡眠吗?
  • 2025-06-16 [Android稳定性] 第049篇 [问题篇] 软中断霸占CPU导致watchdog无法及时喂狗
  • 2025-06-25 [Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump?
  • 2025-11-03 [linux内存管理] 第000篇 Linux内存管理系列开篇
  • 2024-12-18 [Android稳定性] 第004篇 [原理篇] minidump的原理介绍
  • 2025-06-18 [linux内存管理] 第027篇 Linux ARM64 虚拟地址布局
  • 2025-01-14 [Android稳定性] 第017篇 [方法篇] 高通watchdog分析流程
  • 2024-12-15 [Android稳定性] 第001篇 [方法篇] 高通Android平台稳定性分析介绍
  • 2026-03-24 认知加速度:AI时代最残酷的鸿沟,正在此刻拉开
  • 2025-06-09 【深入内核】linux ftrace详解
  • 2024-11-29 [linux内存管理] 第009篇 reserved-memory详解
热门标签
  • 内核线程 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
88695° 203 15 288
当您评论及浏览文章且浏览器未禁止COOKIE时,会为您显示最近10条回复及前20篇文章的浏览记录。
在万物之间穿行,也在自我之间渡过。

你好,
我是林渡

    • 1周前

      蟹黄汤包和河豚还得是靖江的好吃! 南通的海鲜也是鲜到眉毛了!

    • 3周前

      看了好久,还是狠心下手了小牛mt sport 2026款,以后可以下班送外卖了 - 。 -

    • 2026-06-15

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

    • 2026-06-03

      太痛了😭

    • 查看更多瞬间动态
  • [Android稳定性] 第011篇 [原理篇] minidump的原理介绍补充 2024-12-25 1 条 林渡
      Android稳定性
      minidumpramoops
    [Android稳定性] 第011篇 [原理篇] minidump的原理介绍补充

    这篇文章主要介绍了Android系统中的minidump机制,这是一种用于保存系统崩溃信息的技术。文章首先解释了minidump的概念,即各个子系统在内存映射表中注册,当系统崩溃时,boot subsystem会加密并保存注册过的内存信息到RAM EMMC分区。 接着,文章详细描述了minidump的流程图和代码流程,包括HLOS侧和NON-HLOS侧的流程。在HLOS侧,文章重点介绍了defconfig配置、相关代码以及msm_minidump_add_region函数。在NON-HLOS侧,文章重点介绍了add_minidump_regions函数和boot_ram_dump_to_raw_parition函数。 文章还介绍了小米项目在minidump中增加的regions,包括md_kmsg、md_pmsg和tz_log,并解释了它们的设计原理。最后,文章介绍了如何验证minidump,包括设置minidump到emmc、触发dump以及从设备中拉取minidump。 此外,文章还介绍了minidump.gz的解析方法,包括解压minidump.gz和拆分minidump。

    [Android稳定性] 第010篇 [问题篇] 数组越界导致的内核panic 2024-12-23 评论 林渡
      Android稳定性
      trace32数组越界
    [Android稳定性] 第010篇 [问题篇] 数组越界导致的内核panic

    服务器打包的daily版本在刷机后出现900E口死机问题。通过分析dmesg日志,发现程序在`fts_set_cur_value`函数处异常终止。进一步使用trace32工具恢复现场,确认是由于`touch_mode`数组越界导致的内存访问错误。该数组最大值被定义为15,但实际使用时传入了100,导致严重异常。

    [linux内存管理] 第013篇 zone的初始化 2024-12-21 评论 林渡
      Linux内存管理
      zonepglist_data
    [linux内存管理] 第013篇 zone的初始化

    深入剖析Linux内核在物理内存初始化阶段对zone区域的配置过程,围绕zone_sizes_init和free_area_init两个关键函数,系统展示内存分区边界的确立与结构初始化流程。通过追踪start_kernel的调用链,详细讲解zone_sizes_init如何依据DRAM最小与最大页帧号、系统体系结构特性动态计算ZONE_DMA、ZONE_DMA32、ZONE_NORMAL等区域的PFN界限,并最终通过free_area_init设置各zone边界,同时针对NUMA架构完成节点内存的分区与struct page的初始化。

    [Android稳定性] 第009篇 [问题篇] 数组越界导致的内核panic 2024-12-19 评论 林渡
      Android稳定性
      trace32数组越界数据对齐
    [Android稳定性] 第009篇 [问题篇] 数组越界导致的内核panic

    **问题现象**: 部分机器插着 USB 后出现死机。 **问题分析**: 通过 `dmesg` 和 `trace32` 分析,发现死机原因是 `power_operation_mode_show` 函数中 `typec_port` 结构体的 `pwr_opmode` 成员值错误(为负数),导致数组越界。 **解决方案**: 更新 charger 模块,修复对 `pwr_opmode` 的误判,确保其值为正数,避免数组越界。 **总结**: 本次问题是由 `typec_port` 结构体的 `pwr_opmode` 成员值错误导致,通过分析定位问题,并更新 charger 模块修复了问题。

    [Android稳定性] 第008篇 [原理篇] 动态设置kernel cmdline 2024-12-19 评论 林渡
      Android稳定性
      cmdlinefastbootbootargs
    [Android稳定性] 第008篇 [原理篇] 动态设置kernel cmdline

    本文介绍了一种在fastboot模式下动态修改内核参数的方法,无需重新打包。首先,通过扩展fastboot oem指令,接收输入的内核参数并写入到devinfo分区中。然后,在更新kernel cmdline时,将保存的内核参数添加到cmdline中。实验测试显示,该方案可以成功修改内核参数,并永久生效。代码更新后,支持设置、追加和清除模式,方便用户根据需求进行操作。

    [Android稳定性] 第007篇 [问题篇] 中断风暴导致panic 2024-12-18 评论 林渡
      Android稳定性
      panic中断风暴
    [Android稳定性] 第007篇 [问题篇] 中断风暴导致panic

    问题摘要:系统日志显示irq 193存在异常,其action为0,表明中断未被注册,导致中断被送至`handle_bad_irq`处理。经查询,该中断对应gpio 93,且在设备树中该gpio被用于wusb3801的中断和复位功能。去除相关配置后,系统恢复正常。

    [Android稳定性] 第006篇 [问题篇] hungtask causing panic-死锁 2024-12-18 评论 林渡
      Android稳定性
      死锁trace32hungtask
    [Android稳定性] 第006篇 [问题篇] hungtask causing panic-死锁

    本文讨论了一个系统问题现象,通过分析日志文件发现一个进程因等待锁而被阻塞120秒。通过使用`tace32`工具跟踪调用栈,发现存在一个三方的死锁情况,涉及进程`2848_9`、`crtc_commit:160`、`vendor.qti.came`和`kworker/u16:7`。文章详细展示了锁的持有者和调用栈信息,但未提供具体的解决方法。

    [Android稳定性] 第003篇 [原理篇] mtdoops的原理介绍 2024-12-18 评论 林渡
      Android稳定性
      mtdoopsramoopspstore
    [Android稳定性] 第003篇 [原理篇] mtdoops的原理介绍

    **mtdoops简介与原理总结** mtdoops是一种将系统崩溃时的日志信息保存到MTD(Memory Technology Device)设备中的机制,用于在系统panic时捕获关键信息。它利用MTD子系统,将崩溃日志转存到非易失存储器中,便于后续问题分析。mtdoops与其他捕获panic的方式(如ramoops和kdump)相比,具有特定优势,但需依赖MTD设备和相关配置。 **核心内容摘要:** - mtdoops通过在内核中注册捕获panic或oops,将日志信息保存到MTD设备。 - 需要在内核defconfig中启用相关配置,并在设备树中预留存储空间。 - 通过cmdline动态更新,确保在系统启动时正确配置mtdoops。 - 功能验证包括开机初始化log检查、cmdline确认及重启测试抓取log。 - offline_log机制可触发mtdoops日志抓取,便于问题诊断。

    [Android稳定性] 第005篇 [问题篇] 原子状态调度引起死机 2024-12-18 评论 林渡
      Android稳定性
      原子锁KE
    [Android稳定性] 第005篇 [问题篇] 原子状态调度引起死机

    本文讨论了在多核系统中因锁使用不当导致的死机异常问题。作者通过两个案例说明了当在原子状态下执行调度命令时会出现BUG,并分析了原因,指出使用全局变量来控制加解锁操作是多此一举且易出错的。文章强调应正确使用锁来保护临界区,避免使用全局变量来控制锁状态,以防止并发执行时的问题。

    [Android稳定性] 第004篇 [原理篇] minidump的原理介绍 2024-12-18 评论 林渡
      Android稳定性
      minidump
    [Android稳定性] 第004篇 [原理篇] minidump的原理介绍

    Minidump是一种在系统崩溃时,将关键内存区域加密后保存至RAM或EMMC分区的机制,以便后续调试分析。文章详细解析了minidump的流程:系统各子模块会在内存映射表注册,崩溃时boot子系统通过检测特定寄存器(如TCSR寄存器)判断是否进入minidump流程,随后将内核日志、logcat及安全区域日志等关键区块存入特定分区。文中通过流程图、代码示例和寄存器地址详解,剖析了从检测寄存器值,到执行XBLRamDumpMain写入dump的完整过程,并指出通过简单配置可实现最小化、定制化的日志保存,极大提升了问题定位的效率。此外,文章特别强调小米定制适配方案,仅保留关键日志区,兼顾调试需求

    1 … 14 15 16 … 20
  • 简述
    在万物之间穿行,也在自我之间渡过。
    liuqi20328@gmail.com
    生涯
  • 行业嵌入式
  • 职业Linux/Android内核工程师
  • 人生
  • 生活角色浪子、父母的娃、我夫人的老公
  • 社会角色公司职员、中华人民共和国公民
  • 类型
  • 星座 ♊双子座
  • 生肖 🐖猪
  • 血型O
  • 数据
  • 发表文章193篇
  • 发表评论79个
  • 星球加热77685度
  • 最近的心情能量
      愉快 沮丧
    • 😐 不喜不悲 ,当时发表在「[Android稳定性] 第011篇 [原理篇] minidump的原理介绍补充」
    • 😐 不喜不悲 ,当时发表在「[Android稳定性] 第010篇 [问题篇] 数组越界导致的内核panic」
    • 😐 不喜不悲 ,当时发表在「[linux内存管理] 第013篇 zone的初始化」
    • 😐 不喜不悲 ,当时发表在「[Android稳定性] 第009篇 [问题篇] 数组越界导致的内核panic」
    • 😐 不喜不悲 ,当时发表在「[Android稳定性] 第008篇 [原理篇] 动态设置kernel cmdline」
  • 地图数据来源于高德地图
  • intj 建筑师
    intj 建筑师
    • 外向内向
    • 远见现实
    • 理性感受
    • 评判展望
    • 坚决起伏
  • 了解更多信息
今天是云栖梦泽·

2024-11-11

随机阅读「[Android稳定性] 第040篇 [问题篇] 高通平台tz busy造成的卡死问题」
阅读 问题源于`qcom_scm_pas_auth_and_reset`函数返回异常,导致系统panic。日志分析发现tz处于忙碌状态,且`mfido`固件更新可能与问题相关。进一步分析显示,`mfido`在尝试读取公钥证书时失败,引发系统崩溃。
壹行随十人
  • iSeekLife
  • 南方嘉木
  • 秘柯絮语
  • 谜叶象限 - 每一片叶子,都是未完成的坐标系
  • 山海寻川
  • 且听书吟 - 诗与梦想的远方
  • 世上云川 - 若有韶月熹微·愿作流萤徂岁
  • 菲兹克斯喵
  • 博客集市
  • 问心斋
云栖梦泽版权所有 · 架构于Halo及为您增强体验的THYUU/星度主题
苏ICP备2025185582号-1 苏ICP备2025185582号-1 苏公网安备32060102321049号 苏公网安备32060102321049号 BlogsClub BlogsClub 笔墨迹 笔墨迹