1
我正在學習linux slab分配。linux kmalloc over 8192 slab
以下是linux內核源代碼mm/slab.c
,看起來好像是,當我在內核中用kmalloc請求內存時,真正發生的是,slab分配器發現與2的功率數最接近的較大匹配並返回準備好的緩存(if本),但/proc/slabinfo
告訴我,準備kmalloc的高速緩存的最大尺寸爲「8192」:
kmalloc-8192 29 32 8192 4 8 : tunables ...
kmalloc-4096 70 72 4096 8 8 : tunables ...
kmalloc-2048 331 336 2048 8 4 : tunables ...
內核源代碼顯示,請求超過這個尺寸會失敗(我認爲我錯了),但在現實中,我們可以kmalloc最大128KB。
我的quiestion:爲什麼沒有kmalloc-16384,kmalloc-32768,以及更多/proc/slabinfo
?