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 queried 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 Documentation/admin-guide/mm/concepts.rst. 20 21Here we document in detail how to interact with various mechanisms in 22the Linux memory management. 23 24.. toctree:: 25 :maxdepth: 1 26 27 concepts 28 cma_debugfs 29 damon/index 30 hugetlbpage 31 idle_page_tracking 32 ksm 33 memory-hotplug 34 multigen_lru 35 nommu-mmap 36 numa_memory_policy 37 numaperf 38 pagemap 39 shrinker_debugfs 40 soft-dirty 41 swap_numa 42 transhuge 43 userfaultfd 44 zswap 45