云栖梦泽
林渡
Blog
  • 首页
  • 我的视界
    • 人世间
      • 世间风声
      • 人间烟火
    • 壹句话
    • 云外光影
      • 动物与植物
      • 美食
      • 生活气息
      • 人物
    • 文章归档
      • 技术分享
      • 视频类型
      • 音频类型
      • 图文类型
      • 图片类型
  • 「内核宇宙」
    • 灵感工坊
      • 灵感风暴
    • 底层漫游
      • Android稳定性
      • Linux内存管理
      • Linux进程调度
      • Linux内核
      • ARM体系架构
      • LRDP2
      • 技术分享
  • 璀璨星河
    • 公告
    • 应用舱
    • 众星
    • 豆瓣
    • 足迹
    • 走心评论
    • 林渡的网盘
  • 留言板
  • 关于
    • 捐赠者名单
    • 关于我
    • 一些声明
      • 站点声明
      • 隐私政策
    • 网站看板
  • 欢迎订阅!

欢迎来到云栖梦泽,为您导读全站动态
  • 林渡 6日前前留言 工具我更新了,但是小米在线解析的,那个只支持小米内网的
  • ktxck 6日前前留言 确实都打不开,但你文章里提到的那个小米解析网站也打不开,实在没办法了,我现在正试着用pcat看看
  • 林渡 6日前前留言 你说的是minidump_linux_unzip 和 拆分脚本吧?这两个你应该用不到的,这个是我们客户定制的,应该不会适用于你们项目
  • 林渡 6日前前留言 哪里呀?不是这篇文章里的吧?
  • ktxck 6日前前留言 26年4月,文章提到的工具链全部失效了,想问一下这里面有hv层的详细日志吗光靠搜索没乱码的地方只能读到 ... (正常hv层内容启动) ... 4 344.470102 WDT bite: now_ticks 4915389, last_pat 3932438, from VM 3 4 344.471089 Abort: Watchdog bite from PC 0xffffffd6c6e3802c, FP 0xffffff97c0050eb0 4 344.471148 WDT: Triggering NS Watchdog Bite
  • 林渡 1周前前留言 有时候会直接修改page cache页数据,不走页表,那写保护就无效了。回写线程清除 PG_dirty 时,它赌的是:这个页在回写期间不会被修改。如果这个赌注输了(即 PG_dirty 在 I/O 完成前又被设置了),内核需要在 I/O 完成后重新入队回写。关键就在 redirty_page_for_writeback:这个函数会重新设置 PG_dirty + PAGECACHE_TAG_DIRTY,让这个页重新出现在下次回写的队列里。这样就能兜住 GUP 或 do_wp_page 产生的并发脏写。
  • Melokc 1周前前留言 回写这块我之前一直对一些细节很疑惑,就某个细节谈一下疑惑&看法。之前最疑惑的一点就是,为什么是在回写之前把dirty标志清掉?为什么不等待完全回写完毕之后,页面真正干净了,再抹掉标志位呢。甚至在shrink流程下,writeback之前还会释放PG_locked,摆明着在回写过程中卸下防备,等着页面被更改。现在的理解是,页在wb场景下,虽然设置了pte写保护,但仍旧有可能触发do_wp_page(),让这个页变脏,这时候回写之前抹掉dirty的好处就体现了,回来之后又发现自己是dirty的,说明又被改写了。甚至可能不是用户态触发缺页导致的dirty,可能是内核直接GUP导致的dirty(这个隐约记得在哪个文件里看到过相关注释,但当时没有记录,在懊恼了)
  • 林渡 2周前前留言 其实方法已经给了,重要的就是利用AI,让claude code代替人去理解代码架构,你只需要把你的需求以自然语言告诉claude code。
  • 林渡 2周前前留言 哈哈,我也觉得付费阅读很反感,所以基本上不会考虑的,改成打赏支持,能够抵一部分服务器成本就可以了。这个博客主要还是分享以及让自己回顾一下自己的知识点。 打赏支持页面就是一个单独的html页面,没有使用插件
  • 寻境者·唐 2周前前留言 这种模式挺好,当然当你积累到一定能量的时候,能够输出更多高水平高质量的文章时,是可以结合付费阅读的,虽然我本人挺反感这样的模式。 另外你这个打赏支持页面功能很不错,用什么插件实现的吗?
2026 年 4 月
日一二三四五六
1234
567891011
12131415161718
19202122232425
2627282930
« 3 月  
最近文章
  • 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机制深入分析
  • 2026-02-03 [linux内存管理] 第041篇 缺页异常之 do_swap_page:从 swap entry 到完整 swap-in 全流程
  • 2026-02-03 [灵感风暴] GKI 升级不再靠人肉:Aegis 自动风险分级与测试建议生成
  • 2026-02-02 [linux内存管理] 第040篇 文件映射与匿名映射
  • 2026-01-31 [Android稳定性] 第61篇 UFS异常导致卡开机logo
  • 2026-01-30 [linux内存管理] 第039篇 用户态内存映射malloc和mmap详解
  • 2026-01-29 [linux内存管理] 第038篇 深入剖析AArch64架构下的do_page_fault缺页异常处理
热门文章
  • 2024-11-22 高通android启动代码流程分析(SBL->ABL)
  • 2025-07-21 高通以及MTK平台内核单独编译ko的原理
  • 2025-08-27 [Android稳定性] 第058篇 [方法篇] 高通平台使用QFIL回读分区
  • 2024-12-15 [Android稳定性] 第000篇 Android稳定性系列开篇
  • 2025-06-25 [Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump?
  • 2026-01-29 📢 致读者的一封信:关于运营、初心与一份邀请
  • 2025-06-18 [linux内存管理] 第027篇 Linux ARM64 虚拟地址布局
  • 2025-06-09 【深入内核】linux ftrace详解
  • 2024-11-29 [linux内存管理] 第009篇 reserved-memory详解
  • 2024-12-15 [Android稳定性] 第001篇 [方法篇] 高通Android平台稳定性分析介绍
  • 2025-01-14 [Android稳定性] 第017篇 [方法篇] 高通watchdog分析流程
  • 2025-08-23 [linux内存管理] 第029篇 谁把folio的函数定义“藏”起来了?
  • 2025-11-03 [linux内存管理] 第000篇 Linux内存管理系列开篇
  • 2025-08-05 [Android稳定性] 第057篇 [方法篇] 高通平台使能ftrace的方法
  • 2025-06-04 [Android稳定性] 第045篇 [问题篇] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
  • 2025-10-23 利用 Claude Code 探索 Linux 内核奥秘
  • 2024-12-18 [Android稳定性] 第004篇 [原理篇] minidump的原理介绍
  • 2025-08-19 【深入内核】ARM64下的内核栈
  • 2025-09-11 【深入内核】理解Linux Static Keys和jump label机制
  • 2025-01-18 [Android稳定性] 第020篇 [方法篇] crash实战:手把手教你使用crash分析内核dump
热门标签
  • 内核线程 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
43499° 188 14 255
当您评论及浏览文章且浏览器未禁止COOKIE时,会为您显示最近10条回复及前20篇文章的浏览记录。
在万物之间穿行,也在自我之间渡过。

你好,
我是林渡

    • 3日前

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

    • 5日前

      当AI替我写完代码、润色文案、整理思路,我差点忘了自己也曾能徒手解构问题,也曾深入底层逻辑去研究代码。而如今直到token额度用尽,屏幕显示额度“0%”,只能安静的等待着额度刷新,我在电脑前呆愣住——原来不知不觉间,我的能力已经悄悄托管给了AI。额度归零的那一刻,我突然不会“自己”干活了。 这场浪潮

    • 2026-03-17

      只是简单的创建了一下今日任务清单+沉淀一篇文章要点+探索obsidian插件 就花了5.87元,现在的api还是太贵了啊

    • 2026-03-03

      给博客增加了一个项目展示页,还是挺好看的了。 链接:应用舱

    • 查看更多瞬间动态
  • [Android稳定性] 第015篇 [问题篇] Unable to handle kernel NULL pointer dereference 2025-01-02 评论 林渡
      Android稳定性
      trace32空指针
    [Android稳定性] 第015篇 [问题篇] Unable to handle kernel NULL pointer dereference

    系统出现死机,初步分析定位到问题为内核空指针引用,具体是在focaltech_spi模块的fts_power_usb_notifier_callback函数中。进一步通过trace32恢复现场发现,问题在于wq对象在函数执行过程中被销毁。根本原因是fts_data->ts_workqueue队列在fts_power_usb_notifier_callback执行过程中被销毁。

    [Android稳定性] 第014篇 [问题篇] slab内存泄露 2024-12-30 评论 林渡
      Android稳定性
      slab内存泄漏slabtrace
    [Android稳定性] 第014篇 [问题篇] slab内存泄露

    由于`pd_dbg_info`函数申请内存后,延迟释放导致的内存泄漏。通过调整`dbg_log_limit`、优化工作队列和进行内存泄漏检测,可以有效解决该问题。

    [linux内存管理] 第014篇 /proc/zoneinfo的详细解析 2024-12-30 评论 林渡
      Linux内存管理
      zonezoneinfo
    [linux内存管理] 第014篇 /proc/zoneinfo的详细解析

    深入剖析了Linux内核内存管理中/proc/zoneinfo虚拟文件的实现原理及信息结构,聚焦zoneinfo_show与zoneinfo_show_print两个核心函数,详细解析其如何遍历各个内存节点和zone,并输出包括节点内存统计、zone页面分布、水位线、页面状态等关键数据。文章针对每项输出参数进行了明晰解释,帮助理解匿名页面、文件缓存、slab等在内存管理中的角色及其状态变化。通过精细揭示/proc/zoneinfo信息来源、内容组织和内核统计逻辑,为开发者和运维人员提供了获取和解读Linux物理内存实时状态的系统级参考,对性能优化及故障排查具有实用价值。

    [Android稳定性] 第013篇 [问题篇] page allocation failure: order:0内存分配失败的异常报错 2024-12-26 评论 林渡
      Android稳定性
      内存分配水位线
    [Android稳定性] 第013篇 [问题篇] page allocation failure: order:0内存分配失败的异常报错

    在工厂老化测试过程中,设备出现卡视频现象,但USB接口可以识别到ADB口。通过分析日志发现,设备频繁出现"page allocation failure"错误,且均为"order:0",表明在分配一页大小的内存时失败。然而,系统配置中存在空闲的4KB内存,且内存分配标志为"GFP_NOWAIT|__GFP_NORETRY",表示希望进行一个非阻塞的内存分配,而空闲的UMEH页面恰好符合这些条件。这表明内核在内存充足的情况下无法分配内存,原因可能在于erofs文件系统在执行解压缩时使用GFP_NOWAIT标签进行内存申请,减少分配page的压力,但可能存在系统内存水位线不满足要求的情况。

    [Android稳定性] 第012篇 [原理篇] blackbox的原理介绍 2024-12-26 8 条 林渡
      Android稳定性
      blackbox
    [Android稳定性] 第012篇 [原理篇] blackbox的原理介绍

    Blackbox 是一种日志管理方案,旨在解决当前日志分析和自动化解析的痛点,如日志分散、时间标准不统一、关键事件记录丢失、RAS 实现自动化分析困难等。Blackbox 将大部分系统日志集中在特定分区,具有时间线的流式日志,可读性更强。它还根据已有经验在系统运行的关键节点打点,提升上市后稳定性问题的定位效率。针对不同的日志,有不同的日志老化删除节奏,从而更多保存异常日志。Blackbox 还提高了 RAS 自动化分析的能力,并可在设备卡死时通过 9008 方式将日志分区 dump 出来并解析,辅助问题分析。

    [Android稳定性] 第011篇 [原理篇] minidump的原理介绍补充 2024-12-25 评论 林渡
      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中。实验测试显示,该方案可以成功修改内核参数,并永久生效。代码更新后,支持设置、追加和清除模式,方便用户根据需求进行操作。

    1 … 12 13 14 … 18
  • 简述
    在万物之间穿行,也在自我之间渡过。
    liuqi20328@gmail.com
    生涯
  • 行业嵌入式
  • 职业Linux/Android内核工程师
  • 人生
  • 生活角色浪子、父母的娃、我夫人的老公
  • 社会角色公司职员、中华人民共和国公民
  • 类型
  • 星座 双子座
  • 生肖 猪
  • 血型O
  • 数据
  • 发表文章178篇
  • 发表评论66个
  • 星球加热38944度
  • 最近的心情能量
      愉快 沮丧
    • 不喜不悲 ,当时发表在「[Android稳定性] 第015篇 [问题篇] Unable to handle kernel NULL pointer dereference」
    • 不喜不悲 ,当时发表在「[Android稳定性] 第014篇 [问题篇] slab内存泄露」
    • 不喜不悲 ,当时发表在「[linux内存管理] 第014篇 /proc/zoneinfo的详细解析」
    • 不喜不悲 ,当时发表在「[Android稳定性] 第013篇 [问题篇] page allocation failure: order:0内存分配失败的异常报错」
    • 不喜不悲 ,当时发表在「[Android稳定性] 第012篇 [原理篇] blackbox的原理介绍」
  • 地图数据来源于高德地图
  • intj 建筑师
    intj 建筑师
    • 外向内向
    • 远见现实
    • 理性感受
    • 评判展望
    • 坚决起伏
  • 了解更多信息
今天是云栖梦泽·

2024-11-11

随机阅读「[linux内存管理] 第032篇 使用trace32分析slab cache」
阅读 以实际dump为例,文章用trace32深入解析了Linux slab cache的内部逻辑,带你逐层解读kmalloc-64实例中的数据结构,从kmalloc_caches和kmem_cache到per-CPU区与节点node的内存组织和管理特性。
壹行随十人
  • 且听书吟
  • 秘柯絮语
  • 星风之痕
  • 问心斋
  • 世上云川
  • 风记星辰
  • 南方嘉木
  • 菲兹克斯喵
  • 迷鹿屋
  • 山海运维
云栖梦泽版权所有 · 架构于Halo及为您增强体验的THYUU/星度主题
苏ICP备2025185582号-1 苏ICP备2025185582号-1 苏公网安备32060102321049号 苏公网安备32060102321049号 BlogsClub BlogsClub 笔墨迹 笔墨迹