本文共 708 字,大约阅读时间需要 2 分钟。
第四阶段 是 以 slab 机制 为基础,建立 kmalloc 机制kmalloc 只是 slab 一些列实例的初始化如果你想初始化一个 slab 实例,只需要调用 kmem_cache_create 即可
slab 的 api 是 从buddy 建立好就可以用的而 一个slab 实例, 从 调用 kmem_cache_create 创建 好 即可使用
一般为一个page,如果用完了再申请一个page
slab 不同于 kmalloc机制
kmalloc 机制 只是 基于slab 实现了很多 slab 实例,然后 向用户 提供 了 kmalloc 和 kfree 接口
kmalloc unsigned int index; index = kmalloc_index(size); kmem_cache_alloc_trace( kmalloc_caches[kmalloc_type(flags)][index], flags, size); kmem_cache_alloc slab_alloc slab_alloc_node __slab_alloc ___slab_alloc freelist = get_freelist(s, page); return freelist;
转载地址:http://fjigi.baihongyu.com/