45 lines
1.2 KiB
ReStructuredText
Raw Normal View History

2026-01-21 18:59:54 +08:00
=================
Memory Management
=================
Linux memory management subsystem is responsible, as the name implies,
2026-01-29 22:25:33 +08:00
for managing the memory in the system. This includes implementation of
2026-01-21 18:59:54 +08:00
virtual memory and demand paging, memory allocation both for kernel
2026-01-29 22:25:33 +08:00
internal structures and user space programs, mapping of files into
2026-01-21 18:59:54 +08:00
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
are described in Documentation/admin-guide/sysctl/vm.rst and in `man 5 proc`_.
.. _man 5 proc: http://man7.org/linux/man-pages/man5/proc.5.html
Linux memory management has its own jargon and if you are not yet
2026-01-29 22:25:33 +08:00
familiar with it, consider reading Documentation/admin-guide/mm/concepts.rst.
2026-01-21 18:59:54 +08:00
Here we document in detail how to interact with various mechanisms in
the Linux memory management.
.. toctree::
:maxdepth: 1
concepts
cma_debugfs
damon/index
hugetlbpage
idle_page_tracking
ksm
memory-hotplug
2026-01-29 22:25:33 +08:00
multigen_lru
2026-01-21 18:59:54 +08:00
nommu-mmap
numa_memory_policy
numaperf
pagemap
2026-01-29 22:25:33 +08:00
shrinker_debugfs
2026-01-21 18:59:54 +08:00
soft-dirty
swap_numa
transhuge
userfaultfd
zswap