2018-04-18 11:07:48 +03:00
=================
Memory Management
=================
Linux memory management subsystem is responsible, as the name implies,
for managing the memory in the system. This includes implemnetation of
virtual memory and demand paging, memory allocation both for kernel
internal structures and user space programms, mapping of files into
processes address space and many other cool things.
Linux memory management is a complex system with many configurable
settings. Most of these settings are available via `` /proc ``
filesystem and can be quired and adjusted using `` sysctl `` . These APIs
2019-04-22 22:48:00 +03:00
are described in Documentation/admin-guide/sysctl/vm.rst and in `man 5 proc`_ .
2018-04-18 11:07:48 +03:00
.. _man 5 proc: http://man7.org/linux/man-pages/man5/proc.5.html
2018-05-29 14:37:25 +03:00
Linux memory management has its own jargon and if you are not yet
familiar with it, consider reading
:ref: `Documentation/admin-guide/mm/concepts.rst <mm_concepts>` .
2018-04-18 11:07:48 +03:00
Here we document in detail how to interact with various mechanisms in
the Linux memory management.
2018-04-18 11:07:49 +03:00
.. toctree ::
:maxdepth: 1
2018-05-29 14:37:25 +03:00
concepts
2019-06-27 20:56:51 +03:00
cma_debugfs
2018-04-18 11:07:49 +03:00
hugetlbpage
idle_page_tracking
2018-04-24 09:40:28 +03:00
ksm
2018-10-05 01:11:00 +03:00
memory-hotplug
2020-07-18 19:50:55 +03:00
nommu-mmap
2018-05-08 10:02:10 +03:00
numa_memory_policy
2019-05-22 22:35:13 +03:00
numaperf
2018-04-18 11:07:49 +03:00
pagemap
soft-dirty
2018-05-14 11:13:40 +03:00
transhuge
2018-04-18 11:07:49 +03:00
userfaultfd