Back to home page

OSCL-LXR

 
 

    


0001 .. include:: ../disclaimer-zh_CN.rst
0002 
0003 :Original: Documentation/core-api/boot-time-mm.rst
0004 
0005 :翻译:
0006 
0007  司延腾 Yanteng Si <siyanteng@loongson.cn>
0008 
0009 :校译:
0010 
0011  时奎亮 <alexs@kernel.org>
0012 
0013 .. _cn_core-api_boot-time-mm:
0014 
0015 ================
0016 启动时的内存管理
0017 ================
0018 
0019 系统初始化早期“正常”的内存管理由于没有设置完毕无法使用。但是内核仍然需要
0020 为各种数据结构分配内存,例如物理页分配器。
0021 
0022 一个叫做 ``memblock`` 的专用分配器执行启动时的内存管理。特定架构的初始化
0023 必须在setup_arch()中设置它,并在mem_init()函数中移除它。
0024 
0025 一旦早期的内存管理可用,它就为内存分配提供了各种函数和宏。分配请求可以指向
0026 第一个(也可能是唯一的)节点或NUMA系统中的某个特定节点。有一些API变体在分
0027 配失败时panic,也有一些不会panic的。
0028 
0029 Memblock还提供了各种控制其自身行为的API。
0030 
0031 Memblock概述
0032 ============
0033 
0034 该API在以下内核代码中:
0035 
0036 mm/memblock.c
0037 
0038 
0039 函数和结构体
0040 ============
0041 
0042 下面是关于memblock数据结构、函数和宏的描述。其中一些实际上是内部的,但由于
0043 它们被记录下来,漏掉它们是很愚蠢的。此外,阅读内部函数的注释可以帮助理解引
0044 擎盖下真正发生的事情。
0045 
0046 该API在以下内核代码中:
0047 
0048 include/linux/memblock.h
0049 mm/memblock.c