分散聚集列表所需的信息

Information needed on scatter-gather list

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

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

您可以使用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.
*/

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