如果kmem_cache没有可用于分配的可用内存会发生什么?

时间:2016-02-26 03:25:13

标签: memory-management linux-kernel linux-device-driver

我按kmem_cache_create(... size)创建一个slab缓存,然后通过kmem_cache_alloc()从此缓存中分配内存。

在为“size”次分配内存后,如果我调用kmem_cache_alloc()来分配size + 1内存,会发生什么?是否隐式返回NULL或扩展缓存?

1 个答案:

答案 0 :(得分:0)

'尺寸'参数不是关于为任何东西保留的内存。它大约是kmem_cache_alloc返回的每个分配的大小。

一般情况下可能会出现内存不足,在这种情况下,根据kmem_cache_alloc的标志,内核可能会试图通过例如缩小缓存。