forked from Minki/linux
docs/admin-guide/mm: start moving here files from Documentation/vm
Several documents in Documentation/vm fit quite well into the "admin/user guide" category. The documents that don't overload the reader with lots of implementation details and provide coherent description of certain feature can be moved to Documentation/admin-guide/mm. Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
3a3f7e26e5
commit
1ad1335dc5
@ -90,4 +90,4 @@ Date: December 2009
|
||||
Contact: Lee Schermerhorn <lee.schermerhorn@hp.com>
|
||||
Description:
|
||||
The node's huge page size control/query attributes.
|
||||
See Documentation/vm/hugetlbpage.rst
|
||||
See Documentation/admin-guide/mm/hugetlbpage.rst
|
@ -12,4 +12,4 @@ Description:
|
||||
free_hugepages
|
||||
surplus_hugepages
|
||||
resv_hugepages
|
||||
See Documentation/vm/hugetlbpage.rst for details.
|
||||
See Documentation/admin-guide/mm/hugetlbpage.rst for details.
|
||||
|
@ -65,7 +65,7 @@ workload one should:
|
||||
are not reclaimable, he or she can filter them out using
|
||||
``/proc/kpageflags``.
|
||||
|
||||
See Documentation/vm/pagemap.rst for more information about
|
||||
See Documentation/admin-guide/mm/pagemap.rst for more information about
|
||||
``/proc/pid/pagemap``, ``/proc/kpageflags``, and ``/proc/kpagecgroup``.
|
||||
|
||||
.. _impl_details:
|
@ -17,3 +17,12 @@ are described in Documentation/sysctl/vm.txt and in `man 5 proc`_.
|
||||
|
||||
Here we document in detail how to interact with various mechanisms in
|
||||
the Linux memory management.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
hugetlbpage
|
||||
idle_page_tracking
|
||||
pagemap
|
||||
soft-dirty
|
||||
userfaultfd
|
||||
|
@ -18,7 +18,7 @@ There are four components to pagemap:
|
||||
* Bits 0-54 page frame number (PFN) if present
|
||||
* Bits 0-4 swap type if swapped
|
||||
* Bits 5-54 swap offset if swapped
|
||||
* Bit 55 pte is soft-dirty (see Documentation/vm/soft-dirty.rst)
|
||||
* Bit 55 pte is soft-dirty (see Documentation/admin-guide/mm/soft-dirty.rst)
|
||||
* Bit 56 page exclusively mapped (since 4.2)
|
||||
* Bits 57-60 zero
|
||||
* Bit 61 page is file-page or shared-anon (since 3.5)
|
||||
@ -97,7 +97,7 @@ Short descriptions to the page flags
|
||||
A compound page with order N consists of 2^N physically contiguous pages.
|
||||
A compound page with order 2 takes the form of "HTTT", where H donates its
|
||||
head page and T donates its tail page(s). The major consumers of compound
|
||||
pages are hugeTLB pages (Documentation/vm/hugetlbpage.rst), the SLUB etc.
|
||||
pages are hugeTLB pages (Documentation/admin-guide/mm/hugetlbpage.rst), the SLUB etc.
|
||||
memory allocators and various device drivers. However in this interface,
|
||||
only huge/giga pages are made visible to end users.
|
||||
16 - COMPOUND_TAIL
|
||||
@ -118,7 +118,7 @@ Short descriptions to the page flags
|
||||
zero page for pfn_zero or huge_zero page
|
||||
25 - IDLE
|
||||
page has not been accessed since it was marked idle (see
|
||||
Documentation/vm/idle_page_tracking.rst). Note that this flag may be
|
||||
Documentation/admin-guide/mm/idle_page_tracking.rst). Note that this flag may be
|
||||
stale in case the page was accessed via a PTE. To make sure the flag
|
||||
is up-to-date one has to read ``/sys/kernel/mm/page_idle/bitmap`` first.
|
||||
|
@ -515,7 +515,8 @@ guarantees:
|
||||
|
||||
The /proc/PID/clear_refs is used to reset the PG_Referenced and ACCESSED/YOUNG
|
||||
bits on both physical and virtual pages associated with a process, and the
|
||||
soft-dirty bit on pte (see Documentation/vm/soft-dirty.rst for details).
|
||||
soft-dirty bit on pte (see Documentation/admin-guide/mm/soft-dirty.rst
|
||||
for details).
|
||||
To clear the bits for all the pages associated with the process
|
||||
> echo 1 > /proc/PID/clear_refs
|
||||
|
||||
@ -536,7 +537,8 @@ Any other value written to /proc/PID/clear_refs will have no effect.
|
||||
|
||||
The /proc/pid/pagemap gives the PFN, which can be used to find the pageflags
|
||||
using /proc/kpageflags and number of times a page is mapped using
|
||||
/proc/kpagecount. For detailed explanation, see Documentation/vm/pagemap.rst.
|
||||
/proc/kpagecount. For detailed explanation, see
|
||||
Documentation/admin-guide/mm/pagemap.rst.
|
||||
|
||||
The /proc/pid/numa_maps is an extension based on maps, showing the memory
|
||||
locality and binding policy, as well as the memory usage (in pages) of
|
||||
|
@ -515,7 +515,7 @@ nr_hugepages
|
||||
|
||||
Change the minimum size of the hugepage pool.
|
||||
|
||||
See Documentation/vm/hugetlbpage.rst
|
||||
See Documentation/admin-guide/mm/hugetlbpage.rst
|
||||
|
||||
==============================================================
|
||||
|
||||
@ -524,7 +524,7 @@ nr_overcommit_hugepages
|
||||
Change the maximum size of the hugepage pool. The maximum is
|
||||
nr_hugepages + nr_overcommit_hugepages.
|
||||
|
||||
See Documentation/vm/hugetlbpage.rst
|
||||
See Documentation/admin-guide/mm/hugetlbpage.rst
|
||||
|
||||
==============================================================
|
||||
|
||||
|
@ -12,14 +12,10 @@ highmem.rst
|
||||
- Outline of highmem and common issues.
|
||||
hmm.rst
|
||||
- Documentation of heterogeneous memory management
|
||||
hugetlbpage.rst
|
||||
- a brief summary of hugetlbpage support in the Linux kernel.
|
||||
hugetlbfs_reserv.rst
|
||||
- A brief overview of hugetlbfs reservation design/implementation.
|
||||
hwpoison.rst
|
||||
- explains what hwpoison is
|
||||
idle_page_tracking.rst
|
||||
- description of the idle page tracking feature.
|
||||
ksm.rst
|
||||
- how to use the Kernel Samepage Merging feature.
|
||||
mmu_notifier.rst
|
||||
@ -34,16 +30,12 @@ page_frags.rst
|
||||
- description of page fragments allocator
|
||||
page_migration.rst
|
||||
- description of page migration in NUMA systems.
|
||||
pagemap.rst
|
||||
- pagemap, from the userspace perspective
|
||||
page_owner.rst
|
||||
- tracking about who allocated each page
|
||||
remap_file_pages.rst
|
||||
- a note about remap_file_pages() system call
|
||||
slub.rst
|
||||
- a short users guide for SLUB.
|
||||
soft-dirty.rst
|
||||
- short explanation for soft-dirty PTEs
|
||||
split_page_table_lock.rst
|
||||
- Separate per-table lock to improve scalability of the old page_table_lock.
|
||||
swap_numa.rst
|
||||
@ -52,8 +44,6 @@ transhuge.rst
|
||||
- Transparent Hugepage Support, alternative way of using hugepages.
|
||||
unevictable-lru.rst
|
||||
- Unevictable LRU infrastructure
|
||||
userfaultfd.rst
|
||||
- description of userfaultfd system call
|
||||
z3fold.txt
|
||||
- outline of z3fold allocator for storing compressed pages
|
||||
zsmalloc.rst
|
||||
|
@ -155,7 +155,7 @@ Testing
|
||||
value). This allows stress testing of many kinds of
|
||||
pages. The page_flags are the same as in /proc/kpageflags. The
|
||||
flag bits are defined in include/linux/kernel-page-flags.h and
|
||||
documented in Documentation/vm/pagemap.rst
|
||||
documented in Documentation/admin-guide/mm/pagemap.rst
|
||||
|
||||
* Architecture specific MCE injector
|
||||
|
||||
|
@ -13,15 +13,10 @@ various features of the Linux memory management
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
hugetlbpage
|
||||
idle_page_tracking
|
||||
ksm
|
||||
numa_memory_policy
|
||||
pagemap
|
||||
transhuge
|
||||
soft-dirty
|
||||
swap_numa
|
||||
userfaultfd
|
||||
zswap
|
||||
|
||||
Kernel developers MM documentation
|
||||
|
@ -196,7 +196,7 @@ config HUGETLBFS
|
||||
help
|
||||
hugetlbfs is a filesystem backing for HugeTLB pages, based on
|
||||
ramfs. For architectures that support it, say Y here and read
|
||||
<file:Documentation/vm/hugetlbpage.rst> for details.
|
||||
<file:Documentation/admin-guide/mm/hugetlbpage.rst> for details.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
|
@ -937,7 +937,7 @@ static inline void clear_soft_dirty(struct vm_area_struct *vma,
|
||||
/*
|
||||
* The soft-dirty tracker uses #PF-s to catch writes
|
||||
* to pages, so write-protect the pte as well. See the
|
||||
* Documentation/vm/soft-dirty.rst for full description
|
||||
* Documentation/admin-guide/mm/soft-dirty.rst for full description
|
||||
* of how soft-dirty works.
|
||||
*/
|
||||
pte_t ptent = *pte;
|
||||
@ -1417,7 +1417,7 @@ static int pagemap_hugetlb_range(pte_t *ptep, unsigned long hmask,
|
||||
* Bits 0-54 page frame number (PFN) if present
|
||||
* Bits 0-4 swap type if swapped
|
||||
* Bits 5-54 swap offset if swapped
|
||||
* Bit 55 pte is soft-dirty (see Documentation/vm/soft-dirty.rst)
|
||||
* Bit 55 pte is soft-dirty (see Documentation/admin-guide/mm/soft-dirty.rst)
|
||||
* Bit 56 page exclusively mapped
|
||||
* Bits 57-60 zero
|
||||
* Bit 61 page is file-page or shared-anon
|
||||
|
@ -530,7 +530,7 @@ config MEM_SOFT_DIRTY
|
||||
into a page just as regular dirty bit, but unlike the latter
|
||||
it can be cleared by hands.
|
||||
|
||||
See Documentation/vm/soft-dirty.rst for more details.
|
||||
See Documentation/admin-guide/mm/soft-dirty.rst for more details.
|
||||
|
||||
config ZSWAP
|
||||
bool "Compressed cache for swap pages (EXPERIMENTAL)"
|
||||
@ -656,7 +656,8 @@ config IDLE_PAGE_TRACKING
|
||||
be useful to tune memory cgroup limits and/or for job placement
|
||||
within a compute cluster.
|
||||
|
||||
See Documentation/vm/idle_page_tracking.rst for more details.
|
||||
See Documentation/admin-guide/mm/idle_page_tracking.rst for
|
||||
more details.
|
||||
|
||||
# arch_add_memory() comprehends device memory
|
||||
config ARCH_HAS_ZONE_DEVICE
|
||||
|
Loading…
Reference in New Issue
Block a user