Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3763846
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

发布时间:2016-12-23 09:11:11

......【阅读全文】

阅读(2349) | 评论(0) | 转发(0)

发布时间:2016-12-21 17:42:58

上篇分析了一下cache的创建过程,现在cache已经创建完成,跟踪一下slab对象的申请过程。目前使用的申请方式主要是kmalloc(从general cache中申请)和kmem_cache_alloc(从专用cache中申请)。先看一下kmalloc点击(此处)折叠或打开static __always_inline void *kmalloc(size_t size, gfp.........【阅读全文】

阅读(1694) | 评论(0) | 转发(0)

发布时间:2016-12-21 17:41:55

Kernel提供了kmem_cache_create函数用于创建Cache,下面我们直接从API入手。函数有点长,逐行分析一下。点击(此处)折叠或打开/** * kmem_cache_create - Create a cache. * @name: A string which is used in /proc/slabinfo to identify this cache.........【阅读全文】

阅读(1606) | 评论(0) | 转发(0)

发布时间:2016-12-21 17:13:58

Linux采用了slab来管理小块内存的分配与释放,Slab的提出基于以下两个考虑:1. 内核函数经常倾向于反复请求相同的数据类型2. 不同的结构使用不同的分配方法可以提高效率3. 伙伴系统的频繁申请/释放影响效率,将释放内存放入缓冲区,直至超过阀值再归还给伙伴系统4. 可以缓解内存碎片的产生,.........【阅读全文】

阅读(1415) | 评论(0) | 转发(0)

发布时间:2016-12-21 17:13:04

初始化的调用过程:start_kernel()->mm_init()->kmem_cache_init(),下面分析一下具体代码。点击(此处)折叠或打开/* * Initialisation. Called after the page allocator have been initialised and * before smp_init(). */.........【阅读全文】

阅读(1289) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册