自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 优雅的slab内存分配器(一)——slab内存分配器基础知识

slab内存分配器是linux内核中比较经典的内存分配器,目前已经被slub内存分配器取代了。不过为了致敬经典,更是为理解slub分配器做铺垫,我还是会从slab分配器讲起。为什么需要slab内存分配器?这个问题其实很好回答,之所以提出slab分配器,是因为buddy system只能按page对齐来分配内存。然而大多数情况下,需要的内存size都不是按page对齐的,如果直接通过...

2018-07-29 10:21:15 6324

原创 Buddy system之free_pages

释放pages的基础知识在“Buddy system基础 ”这篇文章中已经讲过了,这里主要分析释放pages的代码。代码框架free_pages |----->__free_pages(virt_to_page((void *)addr), order); | |----->__free_pages_ok(page, order); | | ...

2018-07-15 22:01:36 385

原创 Buddy system之alloc_pages

申请pages的基础知识在“Buddy system基础 ”这篇文章中已经讲过了,这里主要分析申请pages的代码。代码框架alloc_pages //alloc_pages_node(numa_node_id(), gfp_mask, order) |----->return __alloc_pages_node(nid, gfp_mask, order); |...

2018-07-15 21:58:20 715

原创 Buddy system基础

基础知识点Buddy system是linux内核中大名鼎鼎的页面管理子系统,它潜伏在linux内核底层,看起来神秘而难以捉摸。然而当揭开它神秘的面纱,才发现大道至简。如果让我用两个词来描述buddy system,我会选择:简单,优雅。什么是buddy system?buddy是伙伴的意思,buddy system就是伙伴系统。在人的社交中,伙伴是两个关系比较近的人,而在页面...

2018-07-15 21:33:06 7818 2

原创 build_all_zonelists函数解析

基础知识点为什么需要zonelist?之前bootmem_init初始化的时候,已经初始化了内存节点的zone成员,该成员是一个struct zone数组,存放该内存节点的zone信息。对于uma系统来说,这已经够了,因为uma系统只有一个本地内存节点,所有zone的信息都存放在本地内存节点的zone成员中。对于numa系统来说,除了本地内存节点,还可以存在一个或多个远端内...

2018-07-08 10:33:26 1667 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除