Browse Source

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>
Mike Rapoport 7 years ago
parent
commit
1ad1335dc5

+ 1 - 1
Documentation/ABI/stable/sysfs-devices-node

@@ -90,4 +90,4 @@ Date:		December 2009
 Contact:	Lee Schermerhorn <lee.schermerhorn@hp.com>
 Contact:	Lee Schermerhorn <lee.schermerhorn@hp.com>
 Description:
 Description:
 		The node's huge page size control/query attributes.
 		The node's huge page size control/query attributes.
-		See Documentation/vm/hugetlbpage.rst
+		See Documentation/admin-guide/mm/hugetlbpage.rst

+ 1 - 1
Documentation/ABI/testing/sysfs-kernel-mm-hugepages

@@ -12,4 +12,4 @@ Description:
 			free_hugepages
 			free_hugepages
 			surplus_hugepages
 			surplus_hugepages
 			resv_hugepages
 			resv_hugepages
-		See Documentation/vm/hugetlbpage.rst for details.
+		See Documentation/admin-guide/mm/hugetlbpage.rst for details.

+ 0 - 0
Documentation/vm/hugetlbpage.rst → Documentation/admin-guide/mm/hugetlbpage.rst


+ 1 - 1
Documentation/vm/idle_page_tracking.rst → Documentation/admin-guide/mm/idle_page_tracking.rst

@@ -65,7 +65,7 @@ workload one should:
     are not reclaimable, he or she can filter them out using
     are not reclaimable, he or she can filter them out using
     ``/proc/kpageflags``.
     ``/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``.
 ``/proc/pid/pagemap``, ``/proc/kpageflags``, and ``/proc/kpagecgroup``.
 
 
 .. _impl_details:
 .. _impl_details:

+ 9 - 0
Documentation/admin-guide/mm/index.rst

@@ -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
 Here we document in detail how to interact with various mechanisms in
 the Linux memory management.
 the Linux memory management.
+
+.. toctree::
+   :maxdepth: 1
+
+   hugetlbpage
+   idle_page_tracking
+   pagemap
+   soft-dirty
+   userfaultfd

+ 3 - 3
Documentation/vm/pagemap.rst → Documentation/admin-guide/mm/pagemap.rst

@@ -18,7 +18,7 @@ There are four components to pagemap:
     * Bits 0-54  page frame number (PFN) if present
     * Bits 0-54  page frame number (PFN) if present
     * Bits 0-4   swap type if swapped
     * Bits 0-4   swap type if swapped
     * Bits 5-54  swap offset 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)
     * Bit  56    page exclusively mapped (since 4.2)
     * Bits 57-60 zero
     * Bits 57-60 zero
     * Bit  61    page is file-page or shared-anon (since 3.5)
     * 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 N consists of 2^N physically contiguous pages.
     A compound page with order 2 takes the form of "HTTT", where H donates its
     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
     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,
     memory allocators and various device drivers. However in this interface,
     only huge/giga pages are made visible to end users.
     only huge/giga pages are made visible to end users.
 16 - COMPOUND_TAIL
 16 - COMPOUND_TAIL
@@ -118,7 +118,7 @@ Short descriptions to the page flags
     zero page for pfn_zero or huge_zero page
     zero page for pfn_zero or huge_zero page
 25 - IDLE
 25 - IDLE
     page has not been accessed since it was marked idle (see
     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
     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.
     is up-to-date one has to read ``/sys/kernel/mm/page_idle/bitmap`` first.
 
 

+ 0 - 0
Documentation/vm/soft-dirty.rst → Documentation/admin-guide/mm/soft-dirty.rst


+ 0 - 0
Documentation/vm/userfaultfd.rst → Documentation/admin-guide/mm/userfaultfd.rst


+ 4 - 2
Documentation/filesystems/proc.txt

@@ -515,7 +515,8 @@ guarantees:
 
 
 The /proc/PID/clear_refs is used to reset the PG_Referenced and ACCESSED/YOUNG
 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
 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
 To clear the bits for all the pages associated with the process
     > echo 1 > /proc/PID/clear_refs
     > 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
 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
 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
 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
 locality and binding policy, as well as the memory usage (in pages) of

+ 2 - 2
Documentation/sysctl/vm.txt

@@ -515,7 +515,7 @@ nr_hugepages
 
 
 Change the minimum size of the hugepage pool.
 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
 Change the maximum size of the hugepage pool. The maximum is
 nr_hugepages + nr_overcommit_hugepages.
 nr_hugepages + nr_overcommit_hugepages.
 
 
-See Documentation/vm/hugetlbpage.rst
+See Documentation/admin-guide/mm/hugetlbpage.rst
 
 
 ==============================================================
 ==============================================================
 
 

+ 0 - 10
Documentation/vm/00-INDEX

@@ -12,14 +12,10 @@ highmem.rst
 	- Outline of highmem and common issues.
 	- Outline of highmem and common issues.
 hmm.rst
 hmm.rst
 	- Documentation of heterogeneous memory management
 	- Documentation of heterogeneous memory management
-hugetlbpage.rst
-	- a brief summary of hugetlbpage support in the Linux kernel.
 hugetlbfs_reserv.rst
 hugetlbfs_reserv.rst
 	- A brief overview of hugetlbfs reservation design/implementation.
 	- A brief overview of hugetlbfs reservation design/implementation.
 hwpoison.rst
 hwpoison.rst
 	- explains what hwpoison is
 	- explains what hwpoison is
-idle_page_tracking.rst
-	- description of the idle page tracking feature.
 ksm.rst
 ksm.rst
 	- how to use the Kernel Samepage Merging feature.
 	- how to use the Kernel Samepage Merging feature.
 mmu_notifier.rst
 mmu_notifier.rst
@@ -34,16 +30,12 @@ page_frags.rst
 	- description of page fragments allocator
 	- description of page fragments allocator
 page_migration.rst
 page_migration.rst
 	- description of page migration in NUMA systems.
 	- description of page migration in NUMA systems.
-pagemap.rst
-	- pagemap, from the userspace perspective
 page_owner.rst
 page_owner.rst
 	- tracking about who allocated each page
 	- tracking about who allocated each page
 remap_file_pages.rst
 remap_file_pages.rst
 	- a note about remap_file_pages() system call
 	- a note about remap_file_pages() system call
 slub.rst
 slub.rst
 	- a short users guide for SLUB.
 	- a short users guide for SLUB.
-soft-dirty.rst
-	- short explanation for soft-dirty PTEs
 split_page_table_lock.rst
 split_page_table_lock.rst
 	- Separate per-table lock to improve scalability of the old page_table_lock.
 	- Separate per-table lock to improve scalability of the old page_table_lock.
 swap_numa.rst
 swap_numa.rst
@@ -52,8 +44,6 @@ transhuge.rst
 	- Transparent Hugepage Support, alternative way of using hugepages.
 	- Transparent Hugepage Support, alternative way of using hugepages.
 unevictable-lru.rst
 unevictable-lru.rst
 	- Unevictable LRU infrastructure
 	- Unevictable LRU infrastructure
-userfaultfd.rst
-	- description of userfaultfd system call
 z3fold.txt
 z3fold.txt
 	- outline of z3fold allocator for storing compressed pages
 	- outline of z3fold allocator for storing compressed pages
 zsmalloc.rst
 zsmalloc.rst

+ 1 - 1
Documentation/vm/hwpoison.rst

@@ -155,7 +155,7 @@ Testing
 	value).  This allows stress testing of many kinds of
 	value).  This allows stress testing of many kinds of
 	pages. The page_flags are the same as in /proc/kpageflags. The
 	pages. The page_flags are the same as in /proc/kpageflags. The
 	flag bits are defined in include/linux/kernel-page-flags.h and
 	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
 * Architecture specific MCE injector
 
 

+ 0 - 5
Documentation/vm/index.rst

@@ -13,15 +13,10 @@ various features of the Linux memory management
 .. toctree::
 .. toctree::
    :maxdepth: 1
    :maxdepth: 1
 
 
-   hugetlbpage
-   idle_page_tracking
    ksm
    ksm
    numa_memory_policy
    numa_memory_policy
-   pagemap
    transhuge
    transhuge
-   soft-dirty
    swap_numa
    swap_numa
-   userfaultfd
    zswap
    zswap
 
 
 Kernel developers MM documentation
 Kernel developers MM documentation

+ 1 - 1
fs/Kconfig

@@ -196,7 +196,7 @@ config HUGETLBFS
 	help
 	help
 	  hugetlbfs is a filesystem backing for HugeTLB pages, based on
 	  hugetlbfs is a filesystem backing for HugeTLB pages, based on
 	  ramfs. For architectures that support it, say Y here and read
 	  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.
 	  If unsure, say N.
 
 

+ 2 - 2
fs/proc/task_mmu.c

@@ -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
 	 * The soft-dirty tracker uses #PF-s to catch writes
 	 * to pages, so write-protect the pte as well. See the
 	 * 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.
 	 * of how soft-dirty works.
 	 */
 	 */
 	pte_t ptent = *pte;
 	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-54  page frame number (PFN) if present
  * Bits 0-4   swap type if swapped
  * Bits 0-4   swap type if swapped
  * Bits 5-54  swap offset 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
  * Bit  56    page exclusively mapped
  * Bits 57-60 zero
  * Bits 57-60 zero
  * Bit  61    page is file-page or shared-anon
  * Bit  61    page is file-page or shared-anon

+ 3 - 2
mm/Kconfig

@@ -530,7 +530,7 @@ config MEM_SOFT_DIRTY
 	  into a page just as regular dirty bit, but unlike the latter
 	  into a page just as regular dirty bit, but unlike the latter
 	  it can be cleared by hands.
 	  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
 config ZSWAP
 	bool "Compressed cache for swap pages (EXPERIMENTAL)"
 	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
 	  be useful to tune memory cgroup limits and/or for job placement
 	  within a compute cluster.
 	  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
 # arch_add_memory() comprehends device memory
 config ARCH_HAS_ZONE_DEVICE
 config ARCH_HAS_ZONE_DEVICE