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