13a3f7e26SMike Rapoport================= 23a3f7e26SMike RapoportMemory Management 33a3f7e26SMike Rapoport================= 43a3f7e26SMike Rapoport 53a3f7e26SMike RapoportLinux memory management subsystem is responsible, as the name implies, 63a3f7e26SMike Rapoportfor managing the memory in the system. This includes implemnetation of 73a3f7e26SMike Rapoportvirtual memory and demand paging, memory allocation both for kernel 83a3f7e26SMike Rapoportinternal structures and user space programms, mapping of files into 93a3f7e26SMike Rapoportprocesses address space and many other cool things. 103a3f7e26SMike Rapoport 113a3f7e26SMike RapoportLinux memory management is a complex system with many configurable 123a3f7e26SMike Rapoportsettings. Most of these settings are available via ``/proc`` 133a3f7e26SMike Rapoportfilesystem and can be quired and adjusted using ``sysctl``. These APIs 143a3f7e26SMike Rapoportare described in Documentation/sysctl/vm.txt and in `man 5 proc`_. 153a3f7e26SMike Rapoport 163a3f7e26SMike Rapoport.. _man 5 proc: http://man7.org/linux/man-pages/man5/proc.5.html 173a3f7e26SMike Rapoport 18f462951eSMike RapoportLinux memory management has its own jargon and if you are not yet 19f462951eSMike Rapoportfamiliar with it, consider reading 20f462951eSMike Rapoport:ref:`Documentation/admin-guide/mm/concepts.rst <mm_concepts>`. 21f462951eSMike Rapoport 223a3f7e26SMike RapoportHere we document in detail how to interact with various mechanisms in 233a3f7e26SMike Rapoportthe Linux memory management. 241ad1335dSMike Rapoport 251ad1335dSMike Rapoport.. toctree:: 261ad1335dSMike Rapoport :maxdepth: 1 271ad1335dSMike Rapoport 28f462951eSMike Rapoport concepts 291ad1335dSMike Rapoport hugetlbpage 301ad1335dSMike Rapoport idle_page_tracking 31c9161088SMike Rapoport ksm 32*6bf53999SMike Rapoport memory-hotplug 333ecf53e4SMike Rapoport numa_memory_policy 341ad1335dSMike Rapoport pagemap 351ad1335dSMike Rapoport soft-dirty 3645c9a74fSMike Rapoport transhuge 371ad1335dSMike Rapoport userfaultfd 38