Linuxスラブの割り当てを勉強しています。
Linuxカーネルのソースコードmm/slab.c
に従って、カーネルでkmallocを使用してメモリを要求すると、実際に何が起こるかのように見えます.スラブアロケータは、2の累乗の数で最も近いより大きな一致を見つけ、準備されたキャッシュを返します(存在する場合)が、/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 ...
カーネル ソース コードは、このサイズを超えるリクエストは失敗することを示しています (これは間違っていると思います) が、実際には、最大 128KB の kmalloc を実行できます。
私の質問: に kmalloc-16384、kmalloc-32768 などがないのはなぜ/proc/slabinfo
ですか?