2018-04-18 08:07:48 +00: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 19:48:00 +00:00
|
|
|
are described in Documentation/admin-guide/sysctl/vm.rst and in `man 5 proc`_.
|
2018-04-18 08:07:48 +00:00
|
|
|
|
|
|
|
.. _man 5 proc: http://man7.org/linux/man-pages/man5/proc.5.html
|
|
|
|
|
2018-05-29 11:37:25 +00: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 08:07:48 +00:00
|
|
|
Here we document in detail how to interact with various mechanisms in
|
|
|
|
the Linux memory management.
|
2018-04-18 08:07:49 +00:00
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 1
|
|
|
|
|
2018-05-29 11:37:25 +00:00
|
|
|
concepts
|
2019-06-27 17:56:51 +00:00
|
|
|
cma_debugfs
|
2018-04-18 08:07:49 +00:00
|
|
|
hugetlbpage
|
|
|
|
idle_page_tracking
|
2018-04-24 06:40:28 +00:00
|
|
|
ksm
|
2018-10-04 22:11:00 +00:00
|
|
|
memory-hotplug
|
2020-06-23 13:31:36 +00:00
|
|
|
nommu-map
|
2018-05-08 07:02:10 +00:00
|
|
|
numa_memory_policy
|
2019-05-22 19:35:13 +00:00
|
|
|
numaperf
|
2018-04-18 08:07:49 +00:00
|
|
|
pagemap
|
|
|
|
soft-dirty
|
2018-05-14 08:13:40 +00:00
|
|
|
transhuge
|
2018-04-18 08:07:49 +00:00
|
|
|
userfaultfd
|