1=================
2Memory Management
3=================
4
5Linux memory management subsystem is responsible, as the name implies,
6for managing the memory in the system. This includes implementation of
7virtual memory and demand paging, memory allocation both for kernel
8internal structures and user space programs, mapping of files into
9processes address space and many other cool things.
10
11Linux memory management is a complex system with many configurable
12settings. Most of these settings are available via ``/proc``
13filesystem and can be quired and adjusted using ``sysctl``. These APIs
14are described in Documentation/admin-guide/sysctl/vm.rst and in `man 5 proc`_.
15
16.. _man 5 proc: http://man7.org/linux/man-pages/man5/proc.5.html
17
18Linux memory management has its own jargon and if you are not yet
19familiar with it, consider reading
20:ref:`Documentation/admin-guide/mm/concepts.rst <mm_concepts>`.
21
22Here we document in detail how to interact with various mechanisms in
23the Linux memory management.
24
25.. toctree::
26   :maxdepth: 1
27
28   concepts
29   cma_debugfs
30   damon/index
31   hugetlbpage
32   idle_page_tracking
33   ksm
34   memory-hotplug
35   multigen_lru
36   nommu-mmap
37   numa_memory_policy
38   numaperf
39   pagemap
40   shrinker_debugfs
41   soft-dirty
42   swap_numa
43   transhuge
44   userfaultfd
45   zswap
46