gpt4 book ai didi

linux kmalloc 在 slab 中超过 8192

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:00 25 4
gpt4 key购买 nike

我正在研究 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 中没有 km​​alloc-16384、kmalloc-32768 等?

最佳答案

在那种情况下,我假设它直接进入页面分配器。我不确定为什么它自己处理 order-2 分配。除非那是因为你在一些奇怪的 8k 页面架构上,这会使它成为 order-1。

关于linux kmalloc 在 slab 中超过 8192,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11983193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com