摘要:
本文仍然以slab cache kmalloc_caches 为例,结合 函数的实现,说明slab对象的回收过程。 1. kfree 通过 函数释放 申请的内存时,对应的函数定义在 mm/slub.c 中。 2. slab_free( mm/slub.c ) 如果 的参数地址所在的页面属于slab分 阅读全文
摘要:
slab cache建立后,就可以从中分配对象。以 kmalloc_caches 为例,执行 函数时会从中分配对象。 1. kmalloc 搞内核的肯定对 不会陌生,和 函数类似,这个函数用来分配内存,定义在 include/linux/slab.h 中: 虽然代码的注释说明 函数通常用于向内核的对 阅读全文
摘要:
SLAB用来响应较小的内存分配请求,事实上,现在的Linux内核使用的是SLUB——unqueued SLAB分配器。 Linux内核支持三种分配器,分别为SLAB,SLOB,SLUB。x86架构下,默认采用SLUB分配器。 因此,本文解析内核代码时,默认采用SLUB下的代码定义;同时,虽然三种分配 阅读全文