]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blame - Documentation/core-api/boot-time-mm.rst
Merge tag 'tag-chrome-platform-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel...
[mirror_ubuntu-hirsute-kernel.git] / Documentation / core-api / boot-time-mm.rst
CommitLineData
ae9d8845
MR
1===========================
2Boot time memory management
3===========================
4
5Early system initialization cannot use "normal" memory management
6simply because it is not set up yet. But there is still need to
7allocate memory for various data structures, for instance for the
530d4c0c 8physical page allocator.
ae9d8845 9
530d4c0c
MR
10A specialized allocator called ``memblock`` performs the
11boot time memory management. The architecture specific initialization
12must set it up in :c:func:`setup_arch` and tear it down in
13:c:func:`mem_init` functions.
ae9d8845
MR
14
15Once the early memory management is available it offers a variety of
16functions and macros for memory allocations. The allocation request
17may be directed to the first (and probably the only) node or to a
18particular node in a NUMA system. There are API variants that panic
530d4c0c 19when an allocation fails and those that don't.
ae9d8845 20
530d4c0c 21Memblock also offers a variety of APIs that control its own behaviour.
ae9d8845 22
530d4c0c
MR
23Memblock Overview
24=================
ae9d8845
MR
25
26.. kernel-doc:: mm/memblock.c
27 :doc: memblock overview
28
29
30Functions and structures
31========================
32
ae9d8845
MR
33Here is the description of memblock data structures, functions and
34macros. Some of them are actually internal, but since they are
35documented it would be silly to omit them. Besides, reading the
36descriptions for the internal functions can help to understand what
37really happens under the hood.
38
39.. kernel-doc:: include/linux/memblock.h
40.. kernel-doc:: mm/memblock.c
ad98b602 41 :functions: