Memory management 如果kmem_缓存没有可分配的可用内存,会发生什么情况?

Memory management 如果kmem_缓存没有可分配的可用内存,会发生什么情况?,memory-management,linux-kernel,linux-device-driver,Memory Management,Linux Kernel,Linux Device Driver,我通过kmem\u cache\u create(…size)创建一个slab缓存,然后通过kmem\u cache\u alloc()从该缓存分配内存 在为“size”次分配内存后,如果调用kmem\u cache\u alloc()来分配size+1次内存,会发生什么?是否隐式返回NULL或扩展缓存?参数“size”与为任何内容保留的内存无关。它大约是kmem_cache_alloc返回的每个分配的大小 通常可能会出现内存不足的情况,在这种情况下,根据传递给kmem_cache_alloc的

我通过
kmem\u cache\u create(…size)
创建一个slab缓存,然后通过
kmem\u cache\u alloc()
从该缓存分配内存


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

参数“size”与为任何内容保留的内存无关。它大约是kmem_cache_alloc返回的每个分配的大小

通常可能会出现内存不足的情况,在这种情况下,根据传递给kmem_cache_alloc的标志,内核可能会尝试通过收缩缓存等方式释放一些内存