[SLUB] kmem_cache_shrink() 问题
我在基于 SLUB 分配器的系统上,对一个缓存 struct kmem_cache *kmem_cache_test 使用了 kmem_cache_shrink().此时 kmem_cache_test->node->partial 链表上已经有两页 unactive 的 slab page.
当我归还一个从 kmem_cache_test 分配的对象到 unactive slab page 之后调用 kmem_cache_shrink().
结果该 slab page 被锁住了,及 page->flage 的 PG_lock 被置1.
现在问题来了,我要释放该 slab page,由于 PG_lock 的存在,无法释放给 PCP allocator 或 Buddy allocator.
如何在调用 kmem_cache_shrink() 之后清除 PG_lock?该调用什么函数?(肯定不能直接清掉 PG_lock 标志){:qq23:}
页:
[1]