免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 912 | 回复: 0
打印 上一主题 下一主题

[内核入门] 小白,关于bootmem和memblock的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-28 10:44 |只看该作者 |倒序浏览
start_kerne
           -> setup_arch
                            ->arm_memblock_init
                            ->paging_init
                                       ->bootmem_init
我查看的代码是3.4版本的,arm架构的。
有说是memblock代替了bootmem,但是查看了下代码,确实是有看到对memblock的初始化。
然后阅读bootmem_init函数,发现对bitmap的分配是调用了memblock相关的接口:
bitmap = memblock_alloc_base(boot_pages << PAGE_SHIFT, L1_CACHE_BYTES, __pfn_to_phys(end_pfn));
对bootmem初始化完成之后,也可以用它提供的接口进行简单的内存分配和释放。

我看后面的代码,好像都还是调用bootmem提供的接口,并不是memblock呀。
比如setup_per_cpu_areas函数里面,调用__alloc_bootmem分配内存。
start_kerne
           -> setup_per_cpu_areas
                            ->pcpu_alloc_alloc_info
                                                    ->alloc_bootmem_nopanic
                            ->__alloc_bootmem

感觉好像并没有使用memblock呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP