42 lines · plain
1===========================2Boot time memory management3===========================4 5Early system initialization cannot use "normal" memory management6simply because it is not set up yet. But there is still need to7allocate memory for various data structures, for instance for the8physical page allocator.9 10A specialized allocator called ``memblock`` performs the11boot time memory management. The architecture specific initialization12must set it up in :c:func:`setup_arch` and tear it down in13:c:func:`mem_init` functions.14 15Once the early memory management is available it offers a variety of16functions and macros for memory allocations. The allocation request17may be directed to the first (and probably the only) node or to a18particular node in a NUMA system. There are API variants that panic19when an allocation fails and those that don't.20 21Memblock also offers a variety of APIs that control its own behaviour.22 23Memblock Overview24=================25 26.. kernel-doc:: mm/memblock.c27 :doc: memblock overview28 29 30Functions and structures31========================32 33Here is the description of memblock data structures, functions and34macros. Some of them are actually internal, but since they are35documented it would be silly to omit them. Besides, reading the36descriptions for the internal functions can help to understand what37really happens under the hood.38 39.. kernel-doc:: include/linux/memblock.h40.. kernel-doc:: mm/memblock.c41 :functions:42