Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1184697
  • 博文数量: 573
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 66
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-28 16:21
文章分类

全部博文(573)

文章存档

2018年(3)

2016年(48)

2015年(522)

发布时间:2015-12-04 09:38:12

vmalloc代码vmalloc()->__vmalloc_node_flags()->__vmalloc_node()->__vmalloc_node_range()->__vmalloc_area_node()->alloc_page() mm/vmalloc.cvoid *vmalloc(unsigned long size){ return __vmalloc_node_flags(size, -1, GFP_KERNEL | __GFP_HIGHMEM);}&n.........【阅读全文】

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

发布时间:2015-12-04 09:37:08

alloc_page 代码alloc_pages()->alloc_pages_node()->__alloc_pages()->__alloc_pages_nodemask()->get_page_from_freelist()->buffered_rmqueue()->__rmqueue()->__rmqueue_smallest()->expand()include\linux\Gpf.h#define alloc_pages(gfp_mask, order) \  alloc_pages_node(numa.........【阅读全文】

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

发布时间:2015-12-04 09:35:27

 kmalloc分配大小的限制kmalloc是通过cache来实现的, 只不过每次kmalloc的大小不同, 因此是从不同的cache中分配:/* include/linux/slab.h */// 注意kmalloc是在头文件中定义的static inline void *kmalloc(size_t size, gfp_t flags){ if (__builtin_cons.........【阅读全文】

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

发布时间:2015-12-04 09:34:22

kmalloc 代码Kmalloc()->__kmalloc()->__do_kmalloc()->__cache_alloc()->____cache_alloc()->cache_alloc_refill()->cache_grow()->kmem_getpages()->alloc_pages_exact_node()->__alloc_pages() include\linux\Slab_def.hstatic __always_inline void *kmalloc(size_t size, gfp.........【阅读全文】

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

发布时间:2015-12-04 09:31:57

 linux内存管理浅析[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每.........【阅读全文】

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

登录 注册