Back to home page

OSCL-LXR

 
 

    


0001 ===========================
0002 Boot time memory management
0003 ===========================
0004 
0005 Early system initialization cannot use "normal" memory management
0006 simply because it is not set up yet. But there is still need to
0007 allocate memory for various data structures, for instance for the
0008 physical page allocator.
0009 
0010 A specialized allocator called ``memblock`` performs the
0011 boot time memory management. The architecture specific initialization
0012 must set it up in :c:func:`setup_arch` and tear it down in
0013 :c:func:`mem_init` functions.
0014 
0015 Once the early memory management is available it offers a variety of
0016 functions and macros for memory allocations. The allocation request
0017 may be directed to the first (and probably the only) node or to a
0018 particular node in a NUMA system. There are API variants that panic
0019 when an allocation fails and those that don't.
0020 
0021 Memblock also offers a variety of APIs that control its own behaviour.
0022 
0023 Memblock Overview
0024 =================
0025 
0026 .. kernel-doc:: mm/memblock.c
0027    :doc: memblock overview
0028 
0029 
0030 Functions and structures
0031 ========================
0032 
0033 Here is the description of memblock data structures, functions and
0034 macros. Some of them are actually internal, but since they are
0035 documented it would be silly to omit them. Besides, reading the
0036 descriptions for the internal functions can help to understand what
0037 really happens under the hood.
0038 
0039 .. kernel-doc:: include/linux/memblock.h
0040 .. kernel-doc:: mm/memblock.c
0041    :functions: