^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) Memory Management
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Linux memory management subsystem is responsible, as the name implies,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) for managing the memory in the system. This includes implemnetation of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) virtual memory and demand paging, memory allocation both for kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) internal structures and user space programms, mapping of files into
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) processes address space and many other cool things.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) Linux memory management is a complex system with many configurable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) settings. Most of these settings are available via ``/proc``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) filesystem and can be quired and adjusted using ``sysctl``. These APIs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) are described in Documentation/admin-guide/sysctl/vm.rst and in `man 5 proc`_.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) .. _man 5 proc: http://man7.org/linux/man-pages/man5/proc.5.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) Linux memory management has its own jargon and if you are not yet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) familiar with it, consider reading
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) :ref:`Documentation/admin-guide/mm/concepts.rst <mm_concepts>`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Here we document in detail how to interact with various mechanisms in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) the Linux memory management.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) .. toctree::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) :maxdepth: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) concepts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) cma_debugfs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) hugetlbpage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) idle_page_tracking
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) ksm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) memory-hotplug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) nommu-mmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) numa_memory_policy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) numaperf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) pagemap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) soft-dirty
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) transhuge
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) userfaultfd