genalloc/genpool
子系统
内核中有许多内存分配子系统,每个子系统都针对特定的需求。然而,有时内核开发人员需要为特定范围的特定用途内存实现新的分配器;通常这些内存位于设备的某个位置。该设备的驱动程序的作者当然可以编写一个小的分配器来完成工作,但这样做会使内核充斥着数十个未经充分测试的分配器。2005年,Jes Sorensen 从 sym53c8xx_2 驱动程序中提取了一个分配器,并将其发布为用于创建临时内存分配器的通用模块。这段代码被合并到了 2.6.13 版本中;自那时以来已经进行了相当大的修改。
使用这个分配器的代码应该包含 <linux/genalloc.h>。操作从使用以下之一创建池开始:
https://www.kernel.org/doc/html/v6.6/core-api/genalloc.html#c.gen_pool_create