uclinux 内核的存储管理
1.1 前言...........................................................................................................................1
1.2 相关的全局变量.......................................................................................................1
1.2.1 _ramstart, _ramend, _rambase ..........................................................................1
1.2.2 memory_start和memory_end............................................................................2
1.2.3 nr_kernel_pages与nr_all_pages........................................................................3
1.2.4 mem_map..........................................................................................................4
1.2.5 contig_page_data...............................................................................................5
1.2.6 vm_total_pages .................................................................................................6
1.3 相关的数据结构.......................................................................................................6
1.3.1 pglist_data.........................................................................................................6
1.3.2 per_cpu_pageset................................................................................................7
1.3.3 zone...................................................................................................................9
1.3.4 zonelist ............................................................................................................12
1.3.5 page.................................................................................................................13
1.3.5.1 virt_to_pfn................................................................................................17
1.3.5.2 page_to_virt..............................................................................................17
1.3.5.3 page_to_pfn..............................................................................................17
1.3.5.4 pfn_to_virt................................................................................................18
1.3.5.5 virt_to_page..............................................................................................18
1.3.5.6 pfn_to_page..............................................................................................18
1.4 bootmem分配策略..................................................................................................18
1.4.1 数据结构.........................................................................................................19
1.4.1.1 bootmem_data..........................................................................................19
1.4.2 初始化:setup_arch .......................................................................................20
1.4.2.1 init_bootmem_node..................................................................................20
1.4.3 内存分配.........................................................................................................23
1.4.3.1 __alloc_bootmem.....................................................................................23
1.4.3.2 __alloc_bootmem_core............................................................................24
1.4.3.3 分配加速.................................................................................................26
1.4.4 内存回收:free_bootmem..............................................................................26
1.4.5 保留指定页:reserve_bootmem ....................................................................27
1.4.6 bootmem的终结:free_all_bootmem.............................................................28
1.5 存储区域管理.........................................................................................................30
1.5.1 paging_init ......................................................................................................31
1.5.2 free_area_init...................................................................................................32
1.5.3 pglist_data初始化 ...........................................................................................33
1.5.3.1 free_area_init_node..................................................................................33
1.5.3.2 calculate_node_totalpages........................................................................33
1.5.3.3 alloc_node_mem_map .............................................................................34
1.5.4 zone初始化 .....................................................................................................36
1.5.4.1 free_area_init_core...................................................................................36
1.5.4.2 init_currently_empty_zone.......................................................................38
1.5.4.3 zone_wait_table_init ................................................................................39
1.5.4.4 zone_init_free_lists ..................................................................................41
快乐虾 http://blog.csdn.net/lights_joy/
评论0
最新资源