0001 =================
0002 Memory Management
0003 =================
0004
0005 Linux memory management subsystem is responsible, as the name implies,
0006 for managing the memory in the system. This includes implementation of
0007 virtual memory and demand paging, memory allocation both for kernel
0008 internal structures and user space programs, mapping of files into
0009 processes address space and many other cool things.
0010
0011 Linux memory management is a complex system with many configurable
0012 settings. Most of these settings are available via ``/proc``
0013 filesystem and can be quired and adjusted using ``sysctl``. These APIs
0014 are described in Documentation/admin-guide/sysctl/vm.rst and in `man 5 proc`_.
0015
0016 .. _man 5 proc: http://man7.org/linux/man-pages/man5/proc.5.html
0017
0018 Linux memory management has its own jargon and if you are not yet
0019 familiar with it, consider reading
0020 :ref:`Documentation/admin-guide/mm/concepts.rst <mm_concepts>`.
0021
0022 Here we document in detail how to interact with various mechanisms in
0023 the Linux memory management.
0024
0025 .. toctree::
0026 :maxdepth: 1
0027
0028 concepts
0029 cma_debugfs
0030 damon/index
0031 hugetlbpage
0032 idle_page_tracking
0033 ksm
0034 memory-hotplug
0035 nommu-mmap
0036 numa_memory_policy
0037 numaperf
0038 pagemap
0039 shrinker_debugfs
0040 soft-dirty
0041 swap_numa
0042 transhuge
0043 userfaultfd
0044 zswap