Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[linux-2.6-microblaze.git] / Documentation / admin-guide / mm / index.rst
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 implementation of
7 virtual memory and demand paging, memory allocation both for kernel
8 internal structures and user space programs, 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/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
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
22 Here we document in detail how to interact with various mechanisms in
23 the Linux memory management.
24
25 .. toctree::
26    :maxdepth: 1
27
28    concepts
29    cma_debugfs
30    damon/index
31    hugetlbpage
32    idle_page_tracking
33    ksm
34    memory-hotplug
35    nommu-mmap
36    numa_memory_policy
37    numaperf
38    pagemap
39    soft-dirty
40    transhuge
41    userfaultfd