Blame view

Documentation/core-api/boot-time-mm.rst 1.41 KB
ae9d88454   Mike Rapoport   docs/mm: add desc...
1
2
3
4
5
6
7
  ===========================
  Boot time memory management
  ===========================
  
  Early system initialization cannot use "normal" memory management
  simply because it is not set up yet. But there is still need to
  allocate memory for various data structures, for instance for the
530d4c0cf   Mike Rapoport   docs/boot-time-mm...
8
  physical page allocator.
ae9d88454   Mike Rapoport   docs/mm: add desc...
9

530d4c0cf   Mike Rapoport   docs/boot-time-mm...
10
11
12
13
  A specialized allocator called ``memblock`` performs the
  boot time memory management. The architecture specific initialization
  must set it up in :c:func:`setup_arch` and tear it down in
  :c:func:`mem_init` functions.
ae9d88454   Mike Rapoport   docs/mm: add desc...
14
15
16
17
18
  
  Once the early memory management is available it offers a variety of
  functions and macros for memory allocations. The allocation request
  may be directed to the first (and probably the only) node or to a
  particular node in a NUMA system. There are API variants that panic
530d4c0cf   Mike Rapoport   docs/boot-time-mm...
19
  when an allocation fails and those that don't.
ae9d88454   Mike Rapoport   docs/mm: add desc...
20

530d4c0cf   Mike Rapoport   docs/boot-time-mm...
21
  Memblock also offers a variety of APIs that control its own behaviour.
ae9d88454   Mike Rapoport   docs/mm: add desc...
22

530d4c0cf   Mike Rapoport   docs/boot-time-mm...
23
24
  Memblock Overview
  =================
ae9d88454   Mike Rapoport   docs/mm: add desc...
25
26
27
28
29
30
31
  
  .. kernel-doc:: mm/memblock.c
     :doc: memblock overview
  
  
  Functions and structures
  ========================
ae9d88454   Mike Rapoport   docs/mm: add desc...
32
33
34
35
36
37
38
39
  Here is the description of memblock data structures, functions and
  macros. Some of them are actually internal, but since they are
  documented it would be silly to omit them. Besides, reading the
  descriptions for the internal functions can help to understand what
  really happens under the hood.
  
  .. kernel-doc:: include/linux/memblock.h
  .. kernel-doc:: mm/memblock.c
ad98b6023   Mike Rapoport   docs/boot-time-mm...
40
     :functions: