struct kmem_cache *kmem_cache_create (const char *name,
size_t size,
size_t align,
unsigned long flags,
void (*ctor)(void *))
功能: 创建一个slab新缓存
name:缓存的名称
size:对象的大小,以字节为单位,若此处填写过小的size(比如sizeof(int))会出现死机的问题
align:每个对象的对齐大小
flags:分配缓存时的选项如下
SLAB_RED_ZONE 在对象头 尾插入标志,探测缓冲越界
SLAB_POISON 使用slab层以知的值a5a5a5a5填充slab,有利于对未初始化内存的访问
SLAB_CACHE_DMA 每个数据对象在 DMA 内存区段分配.
SLAB_HWCACHE_ALIGN 命令slab层把一个slab内的所有对象按高速缓存行对齐。这就防止了“错误的共享”
SLAB_PANIC 这个标志当分配失败时提醒slab层
SLAB_STORE_USER:用struct track存储最后一个进程信息
ctor: 高速缓存的构造函数
头文件:#include
内核函数 kmem_cache_xxxx
最新推荐文章于 2024-08-06 00:32:50 发布
本文详细介绍了Linux内核中的kmem_cache_create函数,用于创建slab缓存,包括参数解析和常见选项。同时,还提到了kmem_cache_alloc、kmem_cache_zalloc用于对象分配,以及kmem_cache_free和kmem_cache_destroy用于对象释放和缓存销毁的相关功能和使用方法。
摘要由CSDN通过智能技术生成