土豪小虾米

文章
2
资源
0
加入时间
3年1月10天

利用save_stack(),print_stack()查linux内核的内存泄露

在之前公司搞了5年的linux内核和驱动,打算翻翻笔记拿点东西出来写。查内存泄露时自己想的一个办法,经过多次考验是有效的,在32位,64位的arm上都试过,检查出来过原生内核的内存泄露bug,后来在mips系统也用过一次。简单的原理是,在内存分配的入口函数__alloc_pages_nodemask调用save_stack()把内存分配的堆栈保存下来,然后每隔一段时间比如两分钟,统计一下已分配出去的页是通过怎样的堆栈分配出去的,比如以下例子,如果统计出来非常多的页是通过下面堆栈分..