[转] bootmem_init分析(Bootm…
来源:互联网 发布:网络导流是什么意思 编辑:程序博客网 时间:2024/05/21 15:26
1 bootmem_init分析
文件:arch/arm/mm/mmu.c
paging_init ->bootmem_init
1) 为pgdat=NODE_DATA(node),pgda->bdata->node_bootmem_map分配内存空间,起始地址为_end(即kernel的最后地址)。
注:node_bootmem_map占有的页框数=[( (memsize)>>12 ) / 8 ]>>12
2)通过位图node_bootmem_map先将所有内存页框标志为“0”,然后将node_bootmem_map占有的内存页框标志为“1”。
reserve_bootmem_node(pgdat,boot_pfn << PAGE_SHIFT,
3)reserve_node_zero(NODE_DATA(node))为Kernel和pgd保持内存空间,相应位图标志为“1”。
4)bootmem_free_node为mem_map保持物理页框(0xC0000000~).
如下图:
2alloc_bootmem_low_pages分析
alloc_bootmem_low_pages最终调用alloc_bootmem_core。该函数利用node_bootmem_map查询所有物理页框的使用情况:“1”已用,“0”空闲。
-----------------------------
find_block:
sidx =find_next_zero_bit(bdata->node_bootmem_map, midx,sidx);
//发现第一个“0”的位置
sidx =align_idx(bdata, sidx, step);
eidx = sidx +PFN_UP(size);
for (i =sidx; i < eidx;i++)
Author:Woodpecker
转自:http://blog.csdn.net/huyugv_830913/article/details/5886879
- [转] bootmem_init分析(Bootm…
- [转] bootmem_init分析(Bootm…
- bootmem_init分析(Bootmem Allocator)
- bootmem_init分析(Bootmem Allocator)
- bootmem_init
- bootm命令分析
- Bootm的流程分析
- Bootm的流程分析
- Bootm的流程分析
- uboot之bootm命令分析
- u-boot bootm命令分析
- bootm
- bootm
- memcached server LRU 深入分析(转…
- uboot 命令分析(一) — bootm
- uboot 命令分析(一) — bootm
- uboot 命令分析(一) — bootm
- uboot 命令分析(一) — bootm
- [转]ubuntu LiveCD制作
- [转]MIPS GCC 嵌入式汇…
- [转]ubuntu LiveCD制作 …
- POJ-2479-Maximum sum
- [转]perl的INC设置
- [转] bootmem_init分析(Bootm…
- [转]Building MPICH2 on…
- 实在受不了新浪博客了。
- openOCD编译出错修正
- Linux 下如何增加一个可修改&…
- Linux 下网卡重命名
- 关于Pull解析
- 结构体和类的关系——杂谈闲扯淡
- [转]vim 中Ctags的安装和使用