云栖梦泽
林渡
Blog
  • 首页
  • 我的视界
    • 人世间
      • 世间风声
      • 人间烟火
    • 壹句话
    • 云外光影
      • 动物与植物
      • 美食
      • 生活气息
      • 人物
    • 文章归档
      • 技术分享
      • 视频类型
      • 音频类型
      • 图文类型
      • 图片类型
  • 「内核宇宙」
    • 灵感工坊
      • 灵感风暴
      • 与AI共生
      • 开源项目推荐
    • 底层漫游
      • Android稳定性
      • Linux内存管理
      • Linux进程调度
      • Linux内核
      • ARM体系架构
      • LRDP2
      • 技术分享
  • 璀璨星河
    • 公告
    • 轻言
    • 应用舱
    • 众星
    • 豆瓣
    • 足迹
    • 走心评论
    • 林渡的网盘
  • 留言板
  • 关于
    • 捐赠者名单
    • 关于我
    • 一些声明
      • 站点声明
      • 隐私政策
    • 网站看板
  • 欢迎订阅!

欢迎来到云栖梦泽,为您导读全站动态
  • 路人甲不掉线 9小时前前留言 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
74888° 194 15 275
当您评论及浏览文章且浏览器未禁止COOKIE时,会为您显示最近10条回复及前20篇文章的浏览记录。
在万物之间穿行,也在自我之间渡过。

你好,
我是林渡

    • 4周前

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

    • 2026-06-03

      太痛了😭

    • 2026-05-15

      我爱白嫖!

    • 2026-04-20

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

    • 查看更多瞬间动态
  • [Android稳定性] 第016篇 [原理篇] 高通平台watchdog机制原理解析 2025-01-14 评论 林渡
      Android稳定性
      watchdog
    [Android稳定性] 第016篇 [原理篇] 高通平台watchdog机制原理解析

    Watchdog是一种用于嵌入式系统的机制,当系统出现严重故障时,可以在无人为介入的情况下自动重新启动系统。它分为硬件和软件两种类型,硬件watchdog比软件watchdog有更好的可靠性。在高通平台Android系统中,watchdog的实现有所不同,本文主要介绍了高通平台Android系统中watchdog的种类、实现、初始化入口、通知链和主线程。

    [linux内存管理] 第019篇 buddy分配器基础知识以及分配器api接口 2025-01-07 评论 林渡
      Linux内存管理
      buddy
    [linux内存管理] 第019篇 buddy分配器基础知识以及分配器api接口

    本文主要介绍了Linux内存管理中的伙伴系统,它是Linux内核中基本的内存分配系统,涉及页面分配、页面回收、页面规整等机制。文章详细剖析了快速分配之前的一些基础知识,包括分配掩码、分配标志、分配的API接口以及Linux对于伙伴系统的设计思路。伙伴系统将空闲页面分成11个块链表,每个块链表管理着2的幂次方个连续页面,内存管理框图展示了其组织结构。同时,文章还解释了内存块是如何连接的,以及伙伴系统的合并机制。

    [linux内存管理] 第018篇 buddy系统的简介以及初始化 2025-01-06 评论 林渡
      Linux内存管理
      buddy
    [linux内存管理] 第018篇 buddy系统的简介以及初始化

    本文深入剖析了Linux内存管理中伙伴系统的初始化流程。伙伴系统是Linux内核用于管理和分配物理内存页面的核心算法,它将内存分成大小为2的幂次方的内存块,并通过“伙伴”机制进行分配和回收。文章详细介绍了伙伴系统的数据结构,包括`struct free_area`和`struct zone`,以及迁移类型`migratetype`和区域请求标志`__GFP区域请求标志`。此外,文章还分析了fallbacks机制和`pageblock_order`的定义。最后,文章通过分析`mm_init`函数和`memblock_free_all`函数,揭示了伙伴系统初始化的详细过程,包括释放未使用的内存、重置zone的`managed_pages`、将内存块添加到伙伴系统等操作。

    [linux内存管理] 第017篇 zonelist的初始化 2025-01-06 评论 林渡
      Linux内存管理
      zonelist
    [linux内存管理] 第017篇 zonelist的初始化

    本文主要分析了Linux内核中zonelist的初始化过程。首先介绍了两个关键数据结构:`pglist_data`和`zonelist`,其中`pglist_data`包含了一个`node_zonelists`数组,用于管理内存节点的zone信息;`zonelist`结构体则包含了一个`zoneref`数组,用于描述一个node的各个zone的信息。接着详细阐述了zonelist的初始化过程,包括`build_all_zonelists`、`build_zonelists`和`build_zonerefs_node`三个关键函数。最后,总结了zonelist的初始化过程,并附上了初始化过程的示意图。

    [linux内存管理] 第016篇 /proc/iomem的详细解析 2025-01-06 评论 林渡
      Linux内存管理
      ioremapmemblock
    [linux内存管理] 第016篇 /proc/iomem的详细解析

    本文详细介绍了Linux内核中`/proc/iomem`节点的构建与显示过程。文章首先指出`/proc/iomem`展示的是物理内存的使用情况,并通过`request_standard_resources`函数将内存区域挂载到资源树。文章进一步解析了`/proc/iomem`的注册过程,包括`ioresources_init`函数和`iomem_resource`资源树,以及数据来源和显示逻辑。最后总结,`/proc/iomem`通过遍历资源树和格式化输出,提供了系统物理内存布局的详细视图,对资源管理和调试具有重要作用。

    [linux内存管理] 第015篇 理解Linux内核中的memblock和ioremap机制 2025-01-06 评论 林渡
      Linux内存管理
      memblockioremap
    [linux内存管理] 第015篇 理解Linux内核中的memblock和ioremap机制

    Linux内核中,设备寄存器的物理地址管理涉及`memblock`和`ioremap`两个关键机制。`memblock`在内核启动阶段负责物理内存的分布记录和地址保留,确保设备寄存器不被误用。`ioremap`则将物理地址映射到内核虚拟地址空间,便于驱动程序访问寄存器。设备寄存器映射流程包括设备描述、物理地址保留、驱动加载和地址映射,最终驱动通过虚拟地址访问寄存器。这两者共同确保了设备寄存器的正确管理和高效访问。

    [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的压力,但可能存在系统内存水位线不满足要求的情况。

    1 … 12 13 14 … 19
  • 简述
    在万物之间穿行,也在自我之间渡过。
    liuqi20328@gmail.com
    生涯
  • 行业嵌入式
  • 职业Linux/Android内核工程师
  • 人生
  • 生活角色浪子、父母的娃、我夫人的老公
  • 社会角色公司职员、中华人民共和国公民
  • 类型
  • 星座 ♊双子座
  • 生肖 🐖猪
  • 血型O
  • 数据
  • 发表文章184篇
  • 发表评论74个
  • 星球加热65029度
  • 最近的心情能量
      愉快 沮丧
    • 😐 不喜不悲 ,当时发表在「[Android稳定性] 第016篇 [原理篇] 高通平台watchdog机制原理解析」
    • 😐 不喜不悲 ,当时发表在「[linux内存管理] 第019篇 buddy分配器基础知识以及分配器api接口」
    • 😐 不喜不悲 ,当时发表在「[linux内存管理] 第018篇 buddy系统的简介以及初始化」
    • 😐 不喜不悲 ,当时发表在「[linux内存管理] 第017篇 zonelist的初始化」
    • 😐 不喜不悲 ,当时发表在「[linux内存管理] 第016篇 /proc/iomem的详细解析」
  • 地图数据来源于高德地图
  • intj 建筑师
    intj 建筑师
    • 外向内向
    • 远见现实
    • 理性感受
    • 评判展望
    • 坚决起伏
  • 了解更多信息
今天是云栖梦泽·

2024-11-11

随机阅读「[Android稳定性] 第046篇 [方法篇] 如何使用trace32恢复AOP现场?」
阅读 本文介绍了使用hansei工具解析AOP/RPM及使用trace32恢复AOP现场的方法。首先获取hansei工具,安装依赖库后执行工具,输入相关路径生成文件。然后进行恢复前的准备工作,包括下载T32脚本和准备相关文件。最后,通过执行aop_rpm_load.bat文件,选择正确的cmm文件开始恢复。
壹行随十人
  • 山海云栈
  • 谜叶象限
  • 风记星辰
  • 博客集市
  • 轻雅阁
  • 山海寻川
  • iSeekLife
  • 星风之痕
  • 迷鹿屋
  • 且听书吟
云栖梦泽版权所有 · 架构于Halo及为您增强体验的THYUU/星度主题
苏ICP备2025185582号-1 苏ICP备2025185582号-1 苏公网安备32060102321049号 苏公网安备32060102321049号 BlogsClub BlogsClub 笔墨迹 笔墨迹