【发布时间】:2012-08-12 13:38:12
【问题描述】:
我正在研究linux的slab分配。
按照linux内核源代码mm/slab.c,似乎当我在内核中使用kmalloc请求内存时,真正发生的是,slab分配器找到与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 ...
内核源代码显示超过这个大小的请求将失败(我认为我错了)但实际上,我们可以 kmalloc 最大 128KB。
我的问题:为什么/proc/slabinfo 中没有 kmalloc-16384、kmalloc-32768 等?
【问题讨论】:
标签: linux caching memory kernel