在Linux内核中平衡内存使用

时间:2014-10-06 05:52:45

标签: c linux linux-kernel linux-device-driver

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

  1. Calltrace因为双重释放skb然后内核崩溃并重新启动
  2. Mem-leak因为我没有释放一些skb
  3. 我的问题是 - 是否有任何形式的方法来查找内存泄漏或双重内存错误?我知道内核在释放一些skb之后会使用内存中毒,但它没有告诉我哪里有bug。

    很抱歉,但我不允许分享此驱动程序的代码。

1 个答案:

答案 0 :(得分:2)

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