Mike Rapoport | 3a3f7e2 | 2018-04-18 11:07:48 +0300 | [diff] [blame] | 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 |
| 14 | are described in Documentation/sysctl/vm.txt and in `man 5 proc`_. |
| 15 | |
| 16 | .. _man 5 proc: http://man7.org/linux/man-pages/man5/proc.5.html |
| 17 | |
Mike Rapoport | f462951 | 2018-05-29 14:37:25 +0300 | [diff] [blame] | 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 | |
Mike Rapoport | 3a3f7e2 | 2018-04-18 11:07:48 +0300 | [diff] [blame] | 22 | Here we document in detail how to interact with various mechanisms in |
| 23 | the Linux memory management. |
Mike Rapoport | 1ad1335 | 2018-04-18 11:07:49 +0300 | [diff] [blame] | 24 | |
| 25 | .. toctree:: |
| 26 | :maxdepth: 1 |
| 27 | |
Mike Rapoport | f462951 | 2018-05-29 14:37:25 +0300 | [diff] [blame] | 28 | concepts |
Mike Rapoport | 1ad1335 | 2018-04-18 11:07:49 +0300 | [diff] [blame] | 29 | hugetlbpage |
| 30 | idle_page_tracking |
Mike Rapoport | c916108 | 2018-04-24 09:40:28 +0300 | [diff] [blame] | 31 | ksm |
Mike Rapoport | 3ecf53e | 2018-05-08 10:02:10 +0300 | [diff] [blame] | 32 | numa_memory_policy |
Mike Rapoport | 1ad1335 | 2018-04-18 11:07:49 +0300 | [diff] [blame] | 33 | pagemap |
| 34 | soft-dirty |
Mike Rapoport | 45c9a74 | 2018-05-14 11:13:40 +0300 | [diff] [blame] | 35 | transhuge |
Mike Rapoport | 1ad1335 | 2018-04-18 11:07:49 +0300 | [diff] [blame] | 36 | userfaultfd |