2016-02-26 75 views
0

我通过kmem_cache_create(... size)创建slab缓存,然后通过kmem_cache_alloc()从此缓存中分配内存。如果kmem_cache没有可用内存分配会发生什么?

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

回答

0

“大小”参数不是关于为任何事物保留的内存。它与kmem_cache_alloc返回的每个分配大小有关。

它可能会在一般情况下会有内存不足,在这种情况下,根据标记为kmem_cache_alloc的标志,内核可能尝试通过例如释放一些内存。收缩缓存。

相关问题