Linux Slab分配器(六)--创建slab和销毁slab
在满足以下两个条件时,slab分配器将为高速缓存创建新的slab
1.请求分配对象,但本地高速缓存没有空闲对象可以分配,需要填充
2.kmem_list3维护的链表中没有slab或者所有的slab都处于FULL链表中
这时,调用cache_grow()创建slab增大缓存容量
下图给出了cache_grow()的代码流程

辅助函数:
为slab分配页框
为slab管理区分配空间:
利用页描述结构的lru域建立页框到slab描述符和cache描述符的映射,实际就是使lru.next指向cache描述符,lru.prev指向slab描述符
初始化对象
销毁slab就是释放slab管理区和对象占用的空间
- 1楼zi77642475昨天 15:46
- 各位看官,看博主的博客这么久了,觉得他的水平应该是个什么身份呢?呵呵!沙发依然在哦!