2

我一直试图malloc在内核空间中为我正在处理的驱动程序分配空间(使用在malloc这里是一个约束;我不允许以任何其他方式分配空间),但是如果我尝试分配“太多”元素( ~500 倍非常小的结构),实际上只分配了我所需空间的一小部分。

减少分配元素的数量确实对我有用,没有任何问题。内核空间中的动态分配是否有可能导致我看到的行为的限制?

4

1 回答 1

3

malloc是一个用户空间库函数。您不能在内核空间中使用它。有一个名为kmalloc()的函数用于在内核空间中分配内存。

您也可以使用vmalloc()。我建议你阅读这个线程vmalloc和kmalloc有什么区别? 有关 vmalloc() 和 kmalloc() 的一些说明。

我还建议您在 SO 中搜索您的查询,然后提出问题。因为,这里已经有人问过了

于 2012-10-18T11:43:32.213 回答