内核函数 kmem_cache_xxxx

本文详细介绍了Linux内核中的kmem_cache_create函数,用于创建slab缓存,包括参数解析和常见选项。同时,还提到了kmem_cache_alloc、kmem_cache_zalloc用于对象分配,以及kmem_cache_free和kmem_cache_destroy用于对象释放和缓存销毁的相关功能和使用方法。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值