13a3f7e26SMike Rapoport================= 23a3f7e26SMike RapoportMemory Management 33a3f7e26SMike Rapoport================= 43a3f7e26SMike Rapoport 53a3f7e26SMike RapoportLinux memory management subsystem is responsible, as the name implies, 6751d5b27SAndrew Klychkovfor managing the memory in the system. This includes implementation of 73a3f7e26SMike Rapoportvirtual memory and demand paging, memory allocation both for kernel 8751d5b27SAndrew Klychkovinternal structures and user space programs, 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`` 13*6b2fa426SDaniel Watsonfilesystem and can be queried and adjusted using ``sysctl``. These APIs 1457043247SMauro Carvalho Chehabare described in Documentation/admin-guide/sysctl/vm.rst 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 1900cba6b6SMike Rapoport (IBM)familiar with it, consider reading Documentation/admin-guide/mm/concepts.rst. 20f462951eSMike Rapoport 213a3f7e26SMike RapoportHere we document in detail how to interact with various mechanisms in 223a3f7e26SMike Rapoportthe Linux memory management. 231ad1335dSMike Rapoport 241ad1335dSMike Rapoport.. toctree:: 251ad1335dSMike Rapoport :maxdepth: 1 261ad1335dSMike Rapoport 27f462951eSMike Rapoport concepts 284f4cfa6cSMauro Carvalho Chehab cma_debugfs 29c4ba6014SSeongJae Park damon/index 301ad1335dSMike Rapoport hugetlbpage 311ad1335dSMike Rapoport idle_page_tracking 32c9161088SMike Rapoport ksm 336bf53999SMike Rapoport memory-hotplug 3407017acbSYu Zhao multigen_lru 352b7295c0SDaniel W. S. Almeida nommu-mmap 363ecf53e4SMike Rapoport numa_memory_policy 378867f610SJonathan Corbet numaperf 381ad1335dSMike Rapoport pagemap 397507f099SRoman Gushchin shrinker_debugfs 401ad1335dSMike Rapoport soft-dirty 41ad782c48SSeongJae Park swap_numa 4245c9a74fSMike Rapoport transhuge 431ad1335dSMike Rapoport userfaultfd 44ad782c48SSeongJae Park zswap 45