2016-02-26 79 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的標誌,內核可能嘗試通過例如釋放一些內存。收縮緩存。

相關問題