2014-10-06 64 views
0

我正在开发一些Linux内核的网络驱动程序。我有几个if-else条件,我正在重新分配或释放“skb”结构 - 这里是我有点困惑的地方。关于什么我在做这些的if-else - 我有2种错误:在Linux内核中平衡内存使用情况

  1. 呼叫追踪,因为双自由SKB,然后内核混乱并重新启动
  2. MEM-泄漏,因为我不释放一些SKB

我的问题是 - 是否有任何形式的方法来寻找内存泄漏或双重内存不足的错误?我知道内核释放一些skb后会使用内存中毒,但它并不告诉我该错误在哪里。

对不起,但我不允许共享这个驱动程序的代码。

+0

尝试'valgrind'来查找mem-leaks – Haris 2014-10-06 05:55:28

+0

你确定valgrind帮助我在内核空间中查找mem-leaks吗? – user2699113 2014-10-06 05:57:18

+0

我错过了那部分。我认为它不会工作..对不起 – Haris 2014-10-06 06:01:45

回答

2

kmemleak似乎是你的朋友。请检查http://lwn.net/Articles/187193/是否可以提供帮助。这值得评论,但我的声望不是50,所以不能对你的问题添加评论。