【发布时间】:2011-09-18 01:54:04
【问题描述】:
是否有一个内核函数可以返回可用的内核内存量(与vmalloc无关)。
【问题讨论】:
-
您已经非常清楚地表明内存不足(分配返回
NULL),为什么还要寻找另一个? -
检查有多少内存可用,尤其是在内存不足的情况下,是行不通的。其他一些线程可能已经分配了您检查时间和分配时间之间剩下的任何内容。
-
也许您正在尝试分配零字节?也检查一下。
-
每次使用较小的块循环 kmalloc,直到获得有效指针?这是蛮力但可能有效
-
内部碎片是内核的问题,这意味着即使有大量可用内存,大分配仍然可能因为没有足够的contiguous而失败可用内存。
标签: c memory linux-kernel