测量某个Linux驱动程序模块的内存使用情况

时间:2015-06-07 12:19:56

标签: memory memory-leaks linux-kernel linux-device-driver

我想检查一下我刚刚完成的内核驱动程序模块是否存在内存泄漏问题。但我不知道如何在内核空间中做到这一点。我认为动态内存分配很难处理。任何人都有在内核空间调试此类内存问题的经验吗?或者,我可以使用哪个工具来测量特定内核模块的动态内存使用情况?

1 个答案:

答案 0 :(得分:3)

在内核模块中跟踪分配和释放内存真的很难,但你仍然有一些设施。 以下是一些调查内核空间内存泄漏的工具和方法。

  1. / proc / slabinfo(slabtop)。它收集有关内核结构的信息。不是关于模块一。但它仍然可能非常有用。

  2. Kmem和ftrace 。只是链接:

  3. https://www.kernel.org/doc/Documentation/trace/events-kmem.txt

    http://elinux.org/Kernel_dynamic_memory_analysis

    捕捉每个kmalloc,kfree等事件,并与他们一起制作相关信息。(c)

    1. / proc / modules(lsmod)。没有什么特别的,除了信息模块在加载时使用了多少内存。实际上它只是一个模块的大小。