我一直试图malloc
在内核空间中为我正在处理的驱动程序分配空间(使用在malloc
这里是一个约束;我不允许以任何其他方式分配空间),但是如果我尝试分配“太多”元素( ~500 倍非常小的结构),实际上只分配了我所需空间的一小部分。
减少分配元素的数量确实对我有用,没有任何问题。内核空间中的动态分配是否有可能导致我看到的行为的限制?
我一直试图malloc
在内核空间中为我正在处理的驱动程序分配空间(使用在malloc
这里是一个约束;我不允许以任何其他方式分配空间),但是如果我尝试分配“太多”元素( ~500 倍非常小的结构),实际上只分配了我所需空间的一小部分。
减少分配元素的数量确实对我有用,没有任何问题。内核空间中的动态分配是否有可能导致我看到的行为的限制?
malloc
是一个用户空间库函数。您不能在内核空间中使用它。有一个名为kmalloc()的函数用于在内核空间中分配内存。
您也可以使用vmalloc()。我建议你阅读这个线程vmalloc和kmalloc有什么区别? 有关 vmalloc() 和 kmalloc() 的一些说明。
我还建议您在 SO 中搜索您的查询,然后提出问题。因为,这里已经有人问过了