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