Linux内存从0到1学习笔记(9.7 内存优化调试之page_owner内存分配堆栈详解)---更新中

Posted 高桐@BILL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内存从0到1学习笔记(9.7 内存优化调试之page_owner内存分配堆栈详解)---更新中相关的知识,希望对你有一定的参考价值。

写在前面

前面已经介绍了开启内核page owner功能的方法,以及如何对page owner信息进行排序,解析。最终可以确认那些任务或进程占用了多少内存。无论是正常分配的,还是内存黑洞的内存,我们都可以通过解析page owner拆分出来。那么接下来我们对page owner中的内存分配堆栈进行一个详细的介绍和分析。以帮助我们建立内存分配、回收的基础知识。工具大家都会用,但是其背后的原理我们还是要仔细打磨下的。

注意!源码一直在参考最新的社区代码,而设备上的page owner是基于4.1x。但总体逻辑不变。

一、 do_page_fault(匿名页缺页中断)

Page allocated via order 0, mask 0x14200ca(GFP_HIGHUSER_MOVABLE), pid xxx
 get_page_from_freelist
 __alloc_pages_nodemask
 alloc_pages_vma
 __handle_mm_fault
 handle_mm_fault
 do_page_fault
 do_translation_fault
 do_mem_abort
 el0_da

 

 

以上是关于Linux内存从0到1学习笔记(9.7 内存优化调试之page_owner内存分配堆栈详解)---更新中的主要内容,如果未能解决你的问题,请参考以下文章

Linux内存从0到1学习笔记(九,内存优化调试之三 - 内存拆解)--- 持续更新

Linux内存从0到1学习笔记(九,内存优化调试之一 - kswapd0)

Linux内存从0到1学习笔记(九,内存优化调试之三 - 使用page owner调试内存黑洞)

Linux内存从0到1学习笔记(9.6,内存优化调试之page_owner拆解)

Linux内存从0到1学习笔记(9.5,内存优化调试之记录pid到page_owner)

Linux内存从0到1学习笔记(9.10 内存优化调试之panic_on_oom介绍