[Android稳定性] 第61篇 UFS异常导致卡开机logo 1月前 评论
[Android稳定性] 第61篇 UFS异常导致卡开机logo

高通平台项目在工厂老化测试中出现卡开机logo的棘手问题,设备无法通过USB或串口获取有效日志,通过强制fulldump分析发现,系统init进程自开机五秒后便持续处于D状态,导致系统无法正常启动。内核堆栈显示进程在等待PG_locked时失败,疑似死锁或关键进程卡死,经进一步排查,平台迅速定位UFS存储异常——UFS设备自开机五秒后未再触发中断。文章详解了如何从核心结构体如ufs_stats、ufs_hba入手,追溯设备树节点至具体驱动,指导工程师在dump文件中精确定位存储异常发生时间及其相关数据。通过系统性分析,为后续UFS问题跟进提供了清晰的技术路径和实际操作指引,展现了严谨的问题排查步骤。

[linux内存管理] 第039篇 用户态内存映射malloc和mmap详解 1月前 评论
[linux内存管理] 第039篇 用户态内存映射malloc和mmap详解

深入解析Linux内存管理中进程用户态地址空间,聚焦VMA(虚拟内存区域)、malloc与mmap三大核心机制,结合ARM64平台和Linux 4.14源码,系统梳理struct mm_struct与struct vm_area_struct两大关键数据结构的设计和功能分工。通过精炼注释和结构关系图,清晰展示VMA在进程空间分布的原理及其与实际内存分配的对应关系,帮助读者直观理解Linux虚拟内存的映射过程。

[linux内存管理] 第038篇 深入剖析AArch64架构下的do_page_fault缺页异常处理 1月前 评论
[linux内存管理] 第038篇 深入剖析AArch64架构下的do_page_fault缺页异常处理

深入解析Linux内核在AArch64架构下的缺页中断处理机制,系统梳理从异常级别划分、地址翻译流程到异常向量表入口,详细剖析了缺页异常的同步捕获、寄存器存储细节及异常分发逻辑。通过do_mem_abort和关键fault_info表,揭示了内核高效应对各种内存访问异常的策略,实现按需分页、内存保护与共享等高级功能,高亮了AArch64平台虚拟内存管理的精妙与内核异常处理链路的完整闭环。

📢 致读者的一封信:关于运营、初心与一份邀请 1月前 2 条
📢 致读者的一封信:关于运营、初心与一份邀请

林渡在博客中坦诚分享了Android稳定性与Linux内存管理等技术经验,强调知识共享与技术传承的重要性。尽管维持博客运营需承担服务器、域名、AI工具等实际成本,他坚守不设付费墙,保持全部内容免费开放,以降低技术门槛并营造纯粹交流空间。为回应读者建议,新增自愿捐赠通道与透明捐赠者名单,仅供愿意支持的朋友参与。每一份支持都将用于提升博客体验与内容质量,但无论捐赠与否,所有人都是这个温暖技术社区的重要参与者。

[linux内存管理] 第037篇 LRU链表详解 1月前 3 条
[linux内存管理] 第037篇 LRU链表详解

聚焦Linux内存管理的核心机制——内存回收,文章详细解析了内核如何通过LRU(最近最少使用)链表,实现对“冷”页面的精准识别和高效回收,保障系统在物理内存受限下的稳定运行。深入讲解了LRU链表的多层架构、页面在不同链表间的切换逻辑,并系统梳理了五类核心链表的数据结构,为理解和后续拓展如MGLRU机制奠定了扎实基础。

Linux 中断线程化 1月前 评论
Linux 中断线程化

文章深入解析Linux中断线程化机制及核心实现,详细讲解了struct irqaction结构体、关键flag如IRQF_ONESHOT和IRQTF_RUNTHREAD的作用,剖析了request_threaded_irq函数的注册流程及__setup_irq的内部逻辑。重点强调线程化中断带来的实时性保证和中断线屏蔽原理,具有丰富代码注释与流程分析,对理解内核中断管理与设备驱动开发极具参考价值

[linux内存管理] 第035篇 vmalloc详解 1月前 评论
[linux内存管理] 第035篇 vmalloc详解

内核启动的内存初始化分为Fixmap、线性映射、Buddy分配器和Slab分配器四大阶段,逐步实现高效的物理与虚拟内存管理。vmalloc通过vmap机制,将非连续物理内存映射为连续虚拟地址,极大提升内存分配灵活性。文中详解vmalloc区域管理与关键数据结构,介绍空闲及已分配管理策略,并列举常用分配释放API,并解释代码流程

Linux aarch64 中断处理全流程分析 2月前 评论
Linux aarch64 中断处理全流程分析

深入解析了Linux中断系统的核心概念,包括硬件中断号(hwirq)与虚拟中断号(virq)的区别、各类中断号在中断控制器中的分配和映射关系,以及物理与逻辑中断线的实际意义。强调Linux内核通过virq实现统一管理,解决硬件中断号冲突,展示了复杂中断结构在SoC中的连接方式,为开发者理解和排查多级中断控制器的中断流程问题提供理论知识的指导。