分散 - 收集列表所需的信息

时间:2015-01-20 23:42:47

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

我正在开发linux中的块驱动程序。要求是分配一大块内存(例如超过128KB,2MB或8MB左右......),将内存分成小块并通过分散 - 收集列表发送。分散收集条目将由用户应用程序控制。

我知道内核中存在严格的内存限制。我怎样才能在内核中实现这一点。任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用vmalloc从虚拟内存中分配。这样,您可以拥有所需的所有内存(以内存量为上限)。

来自mm/vmalloc.c

/**
* vmalloc - allocate virtually contiguous memory
* @size: allocation size
* Allocate enough pages to cover @size from the page level
* allocator and map them into contiguous kernel virtual space.
*
* For tight control over page level allocator and protection flags
* use __vmalloc() instead.
*/

vmalloc ed内存可以被释放,你猜对了,vfree