4周前
[BPF] 第001篇 使用 eBPF 监控 Linux 内核内存分配
深入探索eBPF技术,该方案通过非侵入式方式在Linux内核中高效运行自定义字节码,实现对kmalloc内存分配的实时监控,兼具安全性和灵活性。文章详细展示了内核态插桩与用户态应用的协同原理与代码实践,支持多维过滤和实用输出,适合于系统性能分析及生产环境部署,为内核行为追踪和资源优化提供了极具价值的案例
4周前
[灵感风暴] 第001篇 Charger Property Engine 设计方案
聚焦智能设备BMS中I2C通信瓶颈,提出结合属性缓存与自适应刷新机制的创新方案,通过缓存属性并动态调整TTL,有效减少I2C访问冲突和通信负担。自适应算法根据属性变化及噪声门限、窗口振幅智能控制刷新频率,提升系统实时性与稳定性,同时引入并发控制与总线熔断机制,确保关键数据高效、安全传输。
1月前
[linux内存管理] 第034篇 slab内存分配器之kmalloc全面详解
深入解析Linux内核中kmalloc的内存池体系,详解其在高效分配小至中等连续物理内存块中的核心作用。文章重点说明kmalloc通过预先创建多种尺寸的slab内存池,有效应对频繁的通用及专属内存分配需求,并结合源码分析创建流程、类型划分及对应场景,帮助开发者理解内核内存分配机制的高效性与灵活性。
1月前
[linux内存管理] 第033篇 深度解析 slab 内存池回收内存以及销毁全流程
copyright_author: bin的技术小屋 copyright_author_href:
1月前
[linux内存管理] 第032篇 使用trace32分析slab cache
以实际dump为例,文章用trace32深入解析了Linux slab cache的内部逻辑,带你逐层解读kmalloc-64实例中的数据结构,从kmalloc_caches和kmem_cache到per-CPU区与节点node的内存组织和管理特性。
1月前
[linux内存管理] 第031篇 内核启动早期的slab分配器的自举
梳理Linux内核启动早期内存管理的四个阶段,文章深入分析了slab分配器自举的“鸡生蛋”难题:分配器本身依赖尚未初始化的自身结构体。详细解读slab分配器如何通过静态变量及多层自举逻辑,巧妙解决这一循环依赖困境,进而实现对象级缓存的高效分配与初始化,为内核后续稳定运行打下坚实基础。
2月前
[linux内存管理] 第030篇 深入理解 slab cache 内存分配全链路实现
通过内核源码深入解析slab cache的内存分配机制,文章以task_struct为例详解fastpath和slowpath的分配流程,阐释了kmem_cache在多CPU和NUMA架构下的高效对象分配策略,以及如何通过本地CPU缓存、空闲对象链和慢速路径保证性能和并发安全。
2月前
[Android稳定性] 第060篇 [问题篇] storage corruption导致的死机
一台售后机器频繁重启,日志分析定位到kernel在同一代码处异常crash,且product分区未损坏。无论刷super单镜像还是整包软件,问题都复现,确认是存储损坏(storage corruption)导致。后续将通过UFS交叉验证和检测,进一步排查硬件问题,以寻找更深层次故障原因。
2月前
[Android稳定性] 第059篇 [问题篇] 内核内存区域重叠导致的页表映射错误
基线升级后引入高通baseline代码导致设备在重启时死机,问题定位至内核mtdoops_do_dump模块。通过dmesg日志和trace32调试发现,关键内存地址pte为空,导致系统在访问p_hdr结构时出现页表异常。分析详细还原故障场景,为后续修复提供技术依据,展示了系统性排查和调试过程的专业
[Android稳定性] 第059篇 [问题篇] 内核内存区域重叠导致的页表映射错误
查看完整文章 评论
2月前
内核分析利器crash的编译指南
crash是一款基于GDB、专为Linux内核崩溃转储文件分析而设计的开源工具,补足了GDB无法读取内核核心信息的不足。文章详解crash的手动编译安装流程,并重点介绍利用GitHub Action实现自动化编译和发布,极大简化部署环节,高效便捷,适合开发者快速上手与持续集成。