日期:2014-05-16 浏览次数:20797 次
缓存回收对象基于以下原则
1.本地高速缓存的空间还可以容纳空闲对象,则直接将对象放回本地高速缓存
2.本地高速缓存的空间已满,则按batchcount的值将对象从本地高速缓存转移到slab中,转移是基于先进先出的原则的,也就是转移entry数组最前面的batchcount个空闲对象,因为这些对象在数组中存在的时间相对较长,不太可能仍然驻留在CPU高速缓存中
释放对象通过函数kmem_cache_free()来完成,下图给出了主要的工作流程
我们以__cache_free函数作为入口进行分析