mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	docs: rename Documentation/vm to Documentation/mm
so it will be consistent with code mm directory and with Documentation/admin-guide/mm and won't be confused with virtual machines. Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> Suggested-by: Matthew Wilcox <willy@infradead.org> Tested-by: Ira Weiny <ira.weiny@intel.com> Acked-by: Jonathan Corbet <corbet@lwn.net> Acked-by: Wu XiangCheng <bobwxc@email.cn>
This commit is contained in:
		
							parent
							
								
									46a3b11253
								
							
						
					
					
						commit
						ee65728e10
					
				
					 107 changed files with 89 additions and 93 deletions
				
			
		| 
						 | 
					@ -41,7 +41,7 @@ Description:	Kernel Samepage Merging daemon sysfs interface
 | 
				
			||||||
		sleep_millisecs: how many milliseconds ksm should sleep between
 | 
							sleep_millisecs: how many milliseconds ksm should sleep between
 | 
				
			||||||
		scans.
 | 
							scans.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		See Documentation/vm/ksm.rst for more information.
 | 
							See Documentation/mm/ksm.rst for more information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/kernel/mm/ksm/merge_across_nodes
 | 
					What:		/sys/kernel/mm/ksm/merge_across_nodes
 | 
				
			||||||
Date:		January 2013
 | 
					Date:		January 2013
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@ Description:
 | 
				
			||||||
		The alloc_calls file is read-only and lists the kernel code
 | 
							The alloc_calls file is read-only and lists the kernel code
 | 
				
			||||||
		locations from which allocations for this cache were performed.
 | 
							locations from which allocations for this cache were performed.
 | 
				
			||||||
		The alloc_calls file only contains information if debugging is
 | 
							The alloc_calls file only contains information if debugging is
 | 
				
			||||||
		enabled for that cache (see Documentation/vm/slub.rst).
 | 
							enabled for that cache (see Documentation/mm/slub.rst).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/kernel/slab/<cache>/alloc_fastpath
 | 
					What:		/sys/kernel/slab/<cache>/alloc_fastpath
 | 
				
			||||||
Date:		February 2008
 | 
					Date:		February 2008
 | 
				
			||||||
| 
						 | 
					@ -219,7 +219,7 @@ Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
 | 
				
			||||||
Description:
 | 
					Description:
 | 
				
			||||||
		The free_calls file is read-only and lists the locations of
 | 
							The free_calls file is read-only and lists the locations of
 | 
				
			||||||
		object frees if slab debugging is enabled (see
 | 
							object frees if slab debugging is enabled (see
 | 
				
			||||||
		Documentation/vm/slub.rst).
 | 
							Documentation/mm/slub.rst).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/kernel/slab/<cache>/free_fastpath
 | 
					What:		/sys/kernel/slab/<cache>/free_fastpath
 | 
				
			||||||
Date:		February 2008
 | 
					Date:		February 2008
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5442,7 +5442,7 @@
 | 
				
			||||||
			cache (risks via metadata attacks are mostly
 | 
								cache (risks via metadata attacks are mostly
 | 
				
			||||||
			unchanged). Debug options disable merging on their
 | 
								unchanged). Debug options disable merging on their
 | 
				
			||||||
			own.
 | 
								own.
 | 
				
			||||||
			For more information see Documentation/vm/slub.rst.
 | 
								For more information see Documentation/mm/slub.rst.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	slab_max_order=	[MM, SLAB]
 | 
						slab_max_order=	[MM, SLAB]
 | 
				
			||||||
			Determines the maximum allowed order for slabs.
 | 
								Determines the maximum allowed order for slabs.
 | 
				
			||||||
| 
						 | 
					@ -5456,13 +5456,13 @@
 | 
				
			||||||
			slub_debug can create guard zones around objects and
 | 
								slub_debug can create guard zones around objects and
 | 
				
			||||||
			may poison objects when not in use. Also tracks the
 | 
								may poison objects when not in use. Also tracks the
 | 
				
			||||||
			last alloc / free. For more information see
 | 
								last alloc / free. For more information see
 | 
				
			||||||
			Documentation/vm/slub.rst.
 | 
								Documentation/mm/slub.rst.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	slub_max_order= [MM, SLUB]
 | 
						slub_max_order= [MM, SLUB]
 | 
				
			||||||
			Determines the maximum allowed order for slabs.
 | 
								Determines the maximum allowed order for slabs.
 | 
				
			||||||
			A high setting may cause OOMs due to memory
 | 
								A high setting may cause OOMs due to memory
 | 
				
			||||||
			fragmentation. For more information see
 | 
								fragmentation. For more information see
 | 
				
			||||||
			Documentation/vm/slub.rst.
 | 
								Documentation/mm/slub.rst.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	slub_min_objects=	[MM, SLUB]
 | 
						slub_min_objects=	[MM, SLUB]
 | 
				
			||||||
			The minimum number of objects per slab. SLUB will
 | 
								The minimum number of objects per slab. SLUB will
 | 
				
			||||||
| 
						 | 
					@ -5471,12 +5471,12 @@
 | 
				
			||||||
			the number of objects indicated. The higher the number
 | 
								the number of objects indicated. The higher the number
 | 
				
			||||||
			of objects the smaller the overhead of tracking slabs
 | 
								of objects the smaller the overhead of tracking slabs
 | 
				
			||||||
			and the less frequently locks need to be acquired.
 | 
								and the less frequently locks need to be acquired.
 | 
				
			||||||
			For more information see Documentation/vm/slub.rst.
 | 
								For more information see Documentation/mm/slub.rst.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	slub_min_order=	[MM, SLUB]
 | 
						slub_min_order=	[MM, SLUB]
 | 
				
			||||||
			Determines the minimum page order for slabs. Must be
 | 
								Determines the minimum page order for slabs. Must be
 | 
				
			||||||
			lower than slub_max_order.
 | 
								lower than slub_max_order.
 | 
				
			||||||
			For more information see Documentation/vm/slub.rst.
 | 
								For more information see Documentation/mm/slub.rst.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	slub_merge	[MM, SLUB]
 | 
						slub_merge	[MM, SLUB]
 | 
				
			||||||
			Same with slab_merge.
 | 
								Same with slab_merge.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -125,7 +125,7 @@ processor. Each bank is referred to as a `node` and for each node Linux
 | 
				
			||||||
constructs an independent memory management subsystem. A node has its
 | 
					constructs an independent memory management subsystem. A node has its
 | 
				
			||||||
own set of zones, lists of free and used pages and various statistics
 | 
					own set of zones, lists of free and used pages and various statistics
 | 
				
			||||||
counters. You can find more details about NUMA in
 | 
					counters. You can find more details about NUMA in
 | 
				
			||||||
:ref:`Documentation/vm/numa.rst <numa>` and in
 | 
					:ref:`Documentation/mm/numa.rst <numa>` and in
 | 
				
			||||||
:ref:`Documentation/admin-guide/mm/numa_memory_policy.rst <numa_memory_policy>`.
 | 
					:ref:`Documentation/admin-guide/mm/numa_memory_policy.rst <numa_memory_policy>`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Page cache
 | 
					Page cache
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@
 | 
				
			||||||
Monitoring Data Accesses
 | 
					Monitoring Data Accesses
 | 
				
			||||||
========================
 | 
					========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:doc:`DAMON </vm/damon/index>` allows light-weight data access monitoring.
 | 
					:doc:`DAMON </mm/damon/index>` allows light-weight data access monitoring.
 | 
				
			||||||
Using DAMON, users can analyze the memory access patterns of their systems and
 | 
					Using DAMON, users can analyze the memory access patterns of their systems and
 | 
				
			||||||
optimize those.
 | 
					optimize those.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -268,4 +268,4 @@ granularity reclamation. ::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. [1] https://research.google/pubs/pub48551/
 | 
					.. [1] https://research.google/pubs/pub48551/
 | 
				
			||||||
.. [2] https://lwn.net/Articles/787611/
 | 
					.. [2] https://lwn.net/Articles/787611/
 | 
				
			||||||
.. [3] https://www.kernel.org/doc/html/latest/vm/free_page_reporting.html
 | 
					.. [3] https://www.kernel.org/doc/html/latest/mm/free_page_reporting.html
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,11 +30,11 @@ DAMON provides below interfaces for different users.
 | 
				
			||||||
  <sysfs_interface>`.  This will be removed after next LTS kernel is released,
 | 
					  <sysfs_interface>`.  This will be removed after next LTS kernel is released,
 | 
				
			||||||
  so users should move to the :ref:`sysfs interface <sysfs_interface>`.
 | 
					  so users should move to the :ref:`sysfs interface <sysfs_interface>`.
 | 
				
			||||||
- *Kernel Space Programming Interface.*
 | 
					- *Kernel Space Programming Interface.*
 | 
				
			||||||
  :doc:`This </vm/damon/api>` is for kernel space programmers.  Using this,
 | 
					  :doc:`This </mm/damon/api>` is for kernel space programmers.  Using this,
 | 
				
			||||||
  users can utilize every feature of DAMON most flexibly and efficiently by
 | 
					  users can utilize every feature of DAMON most flexibly and efficiently by
 | 
				
			||||||
  writing kernel space DAMON application programs for you.  You can even extend
 | 
					  writing kernel space DAMON application programs for you.  You can even extend
 | 
				
			||||||
  DAMON for various address spaces.  For detail, please refer to the interface
 | 
					  DAMON for various address spaces.  For detail, please refer to the interface
 | 
				
			||||||
  :doc:`document </vm/damon/api>`.
 | 
					  :doc:`document </mm/damon/api>`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _sysfs_interface:
 | 
					.. _sysfs_interface:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -185,7 +185,7 @@ controls the monitoring overhead, exist.  You can set and get the values by
 | 
				
			||||||
writing to and rading from the files.
 | 
					writing to and rading from the files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For more details about the intervals and monitoring regions range, please refer
 | 
					For more details about the intervals and monitoring regions range, please refer
 | 
				
			||||||
to the Design document (:doc:`/vm/damon/design`).
 | 
					to the Design document (:doc:`/mm/damon/design`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
contexts/<N>/targets/
 | 
					contexts/<N>/targets/
 | 
				
			||||||
---------------------
 | 
					---------------------
 | 
				
			||||||
| 
						 | 
					@ -402,7 +402,7 @@ Attributes
 | 
				
			||||||
Users can get and set the ``sampling interval``, ``aggregation interval``,
 | 
					Users can get and set the ``sampling interval``, ``aggregation interval``,
 | 
				
			||||||
``update interval``, and min/max number of monitoring target regions by
 | 
					``update interval``, and min/max number of monitoring target regions by
 | 
				
			||||||
reading from and writing to the ``attrs`` file.  To know about the monitoring
 | 
					reading from and writing to the ``attrs`` file.  To know about the monitoring
 | 
				
			||||||
attributes in detail, please refer to the :doc:`/vm/damon/design`.  For
 | 
					attributes in detail, please refer to the :doc:`/mm/damon/design`.  For
 | 
				
			||||||
example, below commands set those values to 5 ms, 100 ms, 1,000 ms, 10 and
 | 
					example, below commands set those values to 5 ms, 100 ms, 1,000 ms, 10 and
 | 
				
			||||||
1000, and then check it again::
 | 
					1000, and then check it again::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -760,7 +760,7 @@ and don't use much of it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The default value is 0.
 | 
					The default value is 0.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
See Documentation/vm/overcommit-accounting.rst and
 | 
					See Documentation/mm/overcommit-accounting.rst and
 | 
				
			||||||
mm/util.c::__vm_enough_memory() for more information.
 | 
					mm/util.c::__vm_enough_memory() for more information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -87,7 +87,7 @@ Memory management
 | 
				
			||||||
=================
 | 
					=================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
How to allocate and use memory in the kernel.  Note that there is a lot
 | 
					How to allocate and use memory in the kernel.  Note that there is a lot
 | 
				
			||||||
more memory-management documentation in Documentation/vm/index.rst.
 | 
					more memory-management documentation in Documentation/mm/index.rst.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. toctree::
 | 
					.. toctree::
 | 
				
			||||||
   :maxdepth: 1
 | 
					   :maxdepth: 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1109,7 +1109,7 @@ CommitLimit
 | 
				
			||||||
              yield a CommitLimit of 7.3G.
 | 
					              yield a CommitLimit of 7.3G.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              For more details, see the memory overcommit documentation
 | 
					              For more details, see the memory overcommit documentation
 | 
				
			||||||
              in vm/overcommit-accounting.
 | 
					              in mm/overcommit-accounting.
 | 
				
			||||||
Committed_AS
 | 
					Committed_AS
 | 
				
			||||||
              The amount of memory presently allocated on the system.
 | 
					              The amount of memory presently allocated on the system.
 | 
				
			||||||
              The committed memory is a sum of all of the memory which
 | 
					              The committed memory is a sum of all of the memory which
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -128,7 +128,7 @@ needed).
 | 
				
			||||||
   sound/index
 | 
					   sound/index
 | 
				
			||||||
   crypto/index
 | 
					   crypto/index
 | 
				
			||||||
   filesystems/index
 | 
					   filesystems/index
 | 
				
			||||||
   vm/index
 | 
					   mm/index
 | 
				
			||||||
   bpf/index
 | 
					   bpf/index
 | 
				
			||||||
   usb/index
 | 
					   usb/index
 | 
				
			||||||
   PCI/index
 | 
					   PCI/index
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -170,7 +170,7 @@ The users of `ZONE_DEVICE` are:
 | 
				
			||||||
* hmm: Extend `ZONE_DEVICE` with `->page_fault()` and `->page_free()`
 | 
					* hmm: Extend `ZONE_DEVICE` with `->page_fault()` and `->page_free()`
 | 
				
			||||||
  event callbacks to allow a device-driver to coordinate memory management
 | 
					  event callbacks to allow a device-driver to coordinate memory management
 | 
				
			||||||
  events related to device-memory, typically GPU memory. See
 | 
					  events related to device-memory, typically GPU memory. See
 | 
				
			||||||
  Documentation/vm/hmm.rst.
 | 
					  Documentation/mm/hmm.rst.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* p2pdma: Create `struct page` objects to allow peer devices in a
 | 
					* p2pdma: Create `struct page` objects to allow peer devices in a
 | 
				
			||||||
  PCI/-E topology to coordinate direct-DMA operations between themselves,
 | 
					  PCI/-E topology to coordinate direct-DMA operations between themselves,
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@
 | 
				
			||||||
监测数据访问
 | 
					监测数据访问
 | 
				
			||||||
============
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:doc:`DAMON </vm/damon/index>` 允许轻量级的数据访问监测。使用DAMON,
 | 
					:doc:`DAMON </mm/damon/index>` 允许轻量级的数据访问监测。使用DAMON,
 | 
				
			||||||
用户可以分析他们系统的内存访问模式,并优化它们。
 | 
					用户可以分析他们系统的内存访问模式,并优化它们。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. toctree::
 | 
					.. toctree::
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -229,4 +229,4 @@ DAMON_RECLAIM再次什么都不做,这样我们就可以退回到基于LRU列
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. [1] https://research.google/pubs/pub48551/
 | 
					.. [1] https://research.google/pubs/pub48551/
 | 
				
			||||||
.. [2] https://lwn.net/Articles/787611/
 | 
					.. [2] https://lwn.net/Articles/787611/
 | 
				
			||||||
.. [3] https://www.kernel.org/doc/html/latest/vm/free_page_reporting.html
 | 
					.. [3] https://www.kernel.org/doc/html/latest/mm/free_page_reporting.html
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,9 +33,9 @@ DAMON 为不同的用户提供了下面这些接口。
 | 
				
			||||||
  口相同。这将在下一个LTS内核发布后被移除,所以用户应该转移到
 | 
					  口相同。这将在下一个LTS内核发布后被移除,所以用户应该转移到
 | 
				
			||||||
  :ref:`sysfs interface <sysfs_interface>`。
 | 
					  :ref:`sysfs interface <sysfs_interface>`。
 | 
				
			||||||
- *内核空间编程接口。*
 | 
					- *内核空间编程接口。*
 | 
				
			||||||
  :doc:`这 </vm/damon/api>` 这是为内核空间程序员准备的。使用它,用户可以通过为你编写内
 | 
					  :doc:`这 </mm/damon/api>` 这是为内核空间程序员准备的。使用它,用户可以通过为你编写内
 | 
				
			||||||
  核空间的DAMON应用程序,最灵活有效地利用DAMON的每一个功能。你甚至可以为各种地址空间扩展DAMON。
 | 
					  核空间的DAMON应用程序,最灵活有效地利用DAMON的每一个功能。你甚至可以为各种地址空间扩展DAMON。
 | 
				
			||||||
  详细情况请参考接口 :doc:`文件 </vm/damon/api>`。
 | 
					  详细情况请参考接口 :doc:`文件 </mm/damon/api>`。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sysfs接口
 | 
					sysfs接口
 | 
				
			||||||
=========
 | 
					=========
 | 
				
			||||||
| 
						 | 
					@ -148,7 +148,7 @@ contexts/<N>/monitoring_attrs/
 | 
				
			||||||
在 ``nr_regions`` 目录下,有两个文件分别用于DAMON监测区域的下限和上限(``min`` 和 ``max`` ),
 | 
					在 ``nr_regions`` 目录下,有两个文件分别用于DAMON监测区域的下限和上限(``min`` 和 ``max`` ),
 | 
				
			||||||
这两个文件控制着监测的开销。你可以通过向这些文件的写入和读出来设置和获取这些值。
 | 
					这两个文件控制着监测的开销。你可以通过向这些文件的写入和读出来设置和获取这些值。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
关于间隔和监测区域范围的更多细节,请参考设计文件 (:doc:`/vm/damon/design`)。
 | 
					关于间隔和监测区域范围的更多细节,请参考设计文件 (:doc:`/mm/damon/design`)。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
contexts/<N>/targets/
 | 
					contexts/<N>/targets/
 | 
				
			||||||
---------------------
 | 
					---------------------
 | 
				
			||||||
| 
						 | 
					@ -318,7 +318,7 @@ DAMON导出了八个文件, ``attrs``, ``target_ids``, ``init_regions``,
 | 
				
			||||||
----
 | 
					----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
用户可以通过读取和写入 ``attrs`` 文件获得和设置 ``采样间隔`` 、 ``聚集间隔`` 、 ``更新间隔``
 | 
					用户可以通过读取和写入 ``attrs`` 文件获得和设置 ``采样间隔`` 、 ``聚集间隔`` 、 ``更新间隔``
 | 
				
			||||||
以及监测目标区域的最小/最大数量。要详细了解监测属性,请参考 `:doc:/vm/damon/design` 。例如,
 | 
					以及监测目标区域的最小/最大数量。要详细了解监测属性,请参考 `:doc:/mm/damon/design` 。例如,
 | 
				
			||||||
下面的命令将这些值设置为5ms、100ms、1000ms、10和1000,然后再次检查::
 | 
					下面的命令将这些值设置为5ms、100ms、1000ms、10和1000,然后再次检查::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # cd <debugfs>/damon
 | 
					    # cd <debugfs>/damon
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,7 +101,7 @@ Todolist:
 | 
				
			||||||
========
 | 
					========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
如何在内核中分配和使用内存。请注意,在
 | 
					如何在内核中分配和使用内存。请注意,在
 | 
				
			||||||
:doc:`/vm/index` 中有更多的内存管理文档。
 | 
					:doc:`/mm/index` 中有更多的内存管理文档。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. toctree::
 | 
					.. toctree::
 | 
				
			||||||
   :maxdepth: 1
 | 
					   :maxdepth: 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -118,7 +118,7 @@ TODOList:
 | 
				
			||||||
   sound/index
 | 
					   sound/index
 | 
				
			||||||
   filesystems/index
 | 
					   filesystems/index
 | 
				
			||||||
   scheduler/index
 | 
					   scheduler/index
 | 
				
			||||||
   vm/index
 | 
					   mm/index
 | 
				
			||||||
   peci/index
 | 
					   peci/index
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TODOList:
 | 
					TODOList:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. include:: ../disclaimer-zh_CN.rst
 | 
					.. include:: ../disclaimer-zh_CN.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/active_mm.rst
 | 
					:Original: Documentation/mm/active_mm.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. include:: ../disclaimer-zh_CN.rst
 | 
					.. include:: ../disclaimer-zh_CN.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/balance.rst
 | 
					:Original: Documentation/mm/balance.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. SPDX-License-Identifier: GPL-2.0
 | 
					.. SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/damon/api.rst
 | 
					:Original: Documentation/mm/damon/api.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. SPDX-License-Identifier: GPL-2.0
 | 
					.. SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/damon/design.rst
 | 
					:Original: Documentation/mm/damon/design.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. SPDX-License-Identifier: GPL-2.0
 | 
					.. SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/damon/faq.rst
 | 
					:Original: Documentation/mm/damon/faq.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. SPDX-License-Identifier: GPL-2.0
 | 
					.. SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/damon/index.rst
 | 
					:Original: Documentation/mm/damon/index.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@ DAMON:数据访问监视器
 | 
				
			||||||
==========================
 | 
					==========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心机制使其成为
 | 
					DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心机制使其成为
 | 
				
			||||||
(该核心机制详见(Documentation/translations/zh_CN/vm/damon/design.rst))
 | 
					(该核心机制详见(Documentation/translations/zh_CN/mm/damon/design.rst))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 - *准确度* (监测输出对DRAM级别的内存管理足够有用;但可能不适合CPU Cache级别),
 | 
					 - *准确度* (监测输出对DRAM级别的内存管理足够有用;但可能不适合CPU Cache级别),
 | 
				
			||||||
 - *轻量级* (监控开销低到可以在线应用),以及
 | 
					 - *轻量级* (监控开销低到可以在线应用),以及
 | 
				
			||||||
| 
						 | 
					@ -30,4 +30,3 @@ DAMON是Linux内核的一个数据访问监控框架子系统。DAMON的核心
 | 
				
			||||||
   faq
 | 
					   faq
 | 
				
			||||||
   design
 | 
					   design
 | 
				
			||||||
   api
 | 
					   api
 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. include:: ../disclaimer-zh_CN.rst
 | 
					.. include:: ../disclaimer-zh_CN.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/_free_page_reporting.rst
 | 
					:Original: Documentation/mm/_free_page_reporting.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/_free_page_reporting.rst
 | 
					:Original: Documentation/mm/_free_page_reporting.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. include:: ../disclaimer-zh_CN.rst
 | 
					.. include:: ../disclaimer-zh_CN.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/highmem.rst
 | 
					:Original: Documentation/mm/highmem.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. include:: ../disclaimer-zh_CN.rst
 | 
					.. include:: ../disclaimer-zh_CN.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/hmm.rst
 | 
					:Original: Documentation/mm/hmm.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. include:: ../disclaimer-zh_CN.rst
 | 
					.. include:: ../disclaimer-zh_CN.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/hugetlbfs_reserv.rst
 | 
					:Original: Documentation/mm/hugetlbfs_reserv.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/hwpoison.rst
 | 
					:Original: Documentation/mm/hwpoison.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. include:: ../disclaimer-zh_CN.rst
 | 
					.. include:: ../disclaimer-zh_CN.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/index.rst
 | 
					:Original: Documentation/mm/index.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. include:: ../disclaimer-zh_CN.rst
 | 
					.. include:: ../disclaimer-zh_CN.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/ksm.rst
 | 
					:Original: Documentation/mm/ksm.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. SPDX-License-Identifier: GPL-2.0
 | 
					.. SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/memory-model.rst
 | 
					:Original: Documentation/mm/memory-model.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -129,7 +129,7 @@ ZONE_DEVICE
 | 
				
			||||||
* pmem: 通过DAX映射将平台持久性内存作为直接I/O目标使用。
 | 
					* pmem: 通过DAX映射将平台持久性内存作为直接I/O目标使用。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* hmm: 用 `->page_fault()` 和 `->page_free()` 事件回调扩展 `ZONE_DEVICE` ,
 | 
					* hmm: 用 `->page_fault()` 和 `->page_free()` 事件回调扩展 `ZONE_DEVICE` ,
 | 
				
			||||||
  以允许设备驱动程序协调与设备内存相关的内存管理事件,通常是GPU内存。参见/vm/hmm.rst。
 | 
					  以允许设备驱动程序协调与设备内存相关的内存管理事件,通常是GPU内存。参见Documentation/mm/hmm.rst。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* p2pdma: 创建 `struct page` 对象,允许PCI/E拓扑结构中的peer设备协调它们之间的
 | 
					* p2pdma: 创建 `struct page` 对象,允许PCI/E拓扑结构中的peer设备协调它们之间的
 | 
				
			||||||
  直接DMA操作,即绕过主机内存。
 | 
					  直接DMA操作,即绕过主机内存。
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/mmu_notifier.rst
 | 
					:Original: Documentation/mm/mmu_notifier.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/numa.rst
 | 
					:Original: Documentation/mm/numa.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/overcommit-accounting.rst
 | 
					:Original: Documentation/mm/overcommit-accounting.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/page_frag.rst
 | 
					:Original: Documentation/mm/page_frag.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/page_owner.rst
 | 
					:Original: Documentation/mm/page_owner.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
.. SPDX-License-Identifier: GPL-2.0
 | 
					.. SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:Original: Documentation/vm/page_table_check.rst
 | 
					:Original: Documentation/mm/page_table_check.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/remap_file_pages.rst
 | 
					:Original: Documentation/mm/remap_file_pages.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/split_page_table_lock.rst
 | 
					:Original: Documentation/mm/split_page_table_lock.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/z3fold.rst
 | 
					:Original: Documentation/mm/z3fold.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
:Original: Documentation/vm/zs_malloc.rst
 | 
					:Original: Documentation/mm/zs_malloc.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:翻译:
 | 
					:翻译:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -128,7 +128,7 @@ TODOList:
 | 
				
			||||||
* security/index
 | 
					* security/index
 | 
				
			||||||
* sound/index
 | 
					* sound/index
 | 
				
			||||||
* crypto/index
 | 
					* crypto/index
 | 
				
			||||||
* vm/index
 | 
					* mm/index
 | 
				
			||||||
* bpf/index
 | 
					* bpf/index
 | 
				
			||||||
* usb/index
 | 
					* usb/index
 | 
				
			||||||
* PCI/index
 | 
					* PCI/index
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								Documentation/vm/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								Documentation/vm/.gitignore
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
# SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
page-types
 | 
					 | 
				
			||||||
slabinfo
 | 
					 | 
				
			||||||
							
								
								
									
										12
									
								
								MAINTAINERS
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								MAINTAINERS
									
									
									
									
									
								
							| 
						 | 
					@ -5526,7 +5526,7 @@ L:	linux-mm@kvack.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
F:	Documentation/ABI/testing/sysfs-kernel-mm-damon
 | 
					F:	Documentation/ABI/testing/sysfs-kernel-mm-damon
 | 
				
			||||||
F:	Documentation/admin-guide/mm/damon/
 | 
					F:	Documentation/admin-guide/mm/damon/
 | 
				
			||||||
F:	Documentation/vm/damon/
 | 
					F:	Documentation/mm/damon/
 | 
				
			||||||
F:	include/linux/damon.h
 | 
					F:	include/linux/damon.h
 | 
				
			||||||
F:	include/trace/events/damon.h
 | 
					F:	include/trace/events/damon.h
 | 
				
			||||||
F:	mm/damon/
 | 
					F:	mm/damon/
 | 
				
			||||||
| 
						 | 
					@ -9037,7 +9037,7 @@ HMM - Heterogeneous Memory Management
 | 
				
			||||||
M:	Jérôme Glisse <jglisse@redhat.com>
 | 
					M:	Jérôme Glisse <jglisse@redhat.com>
 | 
				
			||||||
L:	linux-mm@kvack.org
 | 
					L:	linux-mm@kvack.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
F:	Documentation/vm/hmm.rst
 | 
					F:	Documentation/mm/hmm.rst
 | 
				
			||||||
F:	include/linux/hmm*
 | 
					F:	include/linux/hmm*
 | 
				
			||||||
F:	lib/test_hmm*
 | 
					F:	lib/test_hmm*
 | 
				
			||||||
F:	mm/hmm*
 | 
					F:	mm/hmm*
 | 
				
			||||||
| 
						 | 
					@ -9135,8 +9135,8 @@ L:	linux-mm@kvack.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
F:	Documentation/ABI/testing/sysfs-kernel-mm-hugepages
 | 
					F:	Documentation/ABI/testing/sysfs-kernel-mm-hugepages
 | 
				
			||||||
F:	Documentation/admin-guide/mm/hugetlbpage.rst
 | 
					F:	Documentation/admin-guide/mm/hugetlbpage.rst
 | 
				
			||||||
F:	Documentation/vm/hugetlbfs_reserv.rst
 | 
					F:	Documentation/mm/hugetlbfs_reserv.rst
 | 
				
			||||||
F:	Documentation/vm/vmemmap_dedup.rst
 | 
					F:	Documentation/mm/vmemmap_dedup.rst
 | 
				
			||||||
F:	fs/hugetlbfs/
 | 
					F:	fs/hugetlbfs/
 | 
				
			||||||
F:	include/linux/hugetlb.h
 | 
					F:	include/linux/hugetlb.h
 | 
				
			||||||
F:	mm/hugetlb.c
 | 
					F:	mm/hugetlb.c
 | 
				
			||||||
| 
						 | 
					@ -15072,7 +15072,7 @@ M:	Pasha Tatashin <pasha.tatashin@soleen.com>
 | 
				
			||||||
M:	Andrew Morton <akpm@linux-foundation.org>
 | 
					M:	Andrew Morton <akpm@linux-foundation.org>
 | 
				
			||||||
L:	linux-mm@kvack.org
 | 
					L:	linux-mm@kvack.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
F:	Documentation/vm/page_table_check.rst
 | 
					F:	Documentation/mm/page_table_check.rst
 | 
				
			||||||
F:	include/linux/page_table_check.h
 | 
					F:	include/linux/page_table_check.h
 | 
				
			||||||
F:	mm/page_table_check.c
 | 
					F:	mm/page_table_check.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22158,7 +22158,7 @@ M:	Nitin Gupta <ngupta@vflare.org>
 | 
				
			||||||
R:	Sergey Senozhatsky <senozhatsky@chromium.org>
 | 
					R:	Sergey Senozhatsky <senozhatsky@chromium.org>
 | 
				
			||||||
L:	linux-mm@kvack.org
 | 
					L:	linux-mm@kvack.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
F:	Documentation/vm/zsmalloc.rst
 | 
					F:	Documentation/mm/zsmalloc.rst
 | 
				
			||||||
F:	include/linux/zsmalloc.h
 | 
					F:	include/linux/zsmalloc.h
 | 
				
			||||||
F:	mm/zsmalloc.c
 | 
					F:	mm/zsmalloc.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -410,7 +410,7 @@ config ARCH_SPARSEMEM_ENABLE
 | 
				
			||||||
	  Say Y to support efficient handling of sparse physical memory,
 | 
						  Say Y to support efficient handling of sparse physical memory,
 | 
				
			||||||
	  for architectures which are either NUMA (Non-Uniform Memory Access)
 | 
						  for architectures which are either NUMA (Non-Uniform Memory Access)
 | 
				
			||||||
	  or have huge holes in the physical address space for other reasons.
 | 
						  or have huge holes in the physical address space for other reasons.
 | 
				
			||||||
	  See <file:Documentation/vm/numa.rst> for more.
 | 
						  See <file:Documentation/mm/numa.rst> for more.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config ARCH_ENABLE_THP_MIGRATION
 | 
					config ARCH_ENABLE_THP_MIGRATION
 | 
				
			||||||
	def_bool y
 | 
						def_bool y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1273,7 +1273,7 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm, unsigned long addr,
 | 
				
			||||||
 * should return true.
 | 
					 * should return true.
 | 
				
			||||||
 * We should not call this on a hugetlb entry. We should check for HugeTLB
 | 
					 * We should not call this on a hugetlb entry. We should check for HugeTLB
 | 
				
			||||||
 * entry using vma->vm_flags
 | 
					 * entry using vma->vm_flags
 | 
				
			||||||
 * The page table walk rule is explained in Documentation/vm/transhuge.rst
 | 
					 * The page table walk rule is explained in Documentation/mm/transhuge.rst
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static inline int pmd_trans_huge(pmd_t pmd)
 | 
					static inline int pmd_trans_huge(pmd_t pmd)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Authors: Jérôme Glisse <jglisse@redhat.com>
 | 
					 * Authors: Jérôme Glisse <jglisse@redhat.com>
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * See Documentation/vm/hmm.rst for reasons and overview of what HMM is.
 | 
					 * See Documentation/mm/hmm.rst for reasons and overview of what HMM is.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#ifndef LINUX_HMM_H
 | 
					#ifndef LINUX_HMM_H
 | 
				
			||||||
#define LINUX_HMM_H
 | 
					#define LINUX_HMM_H
 | 
				
			||||||
| 
						 | 
					@ -100,7 +100,7 @@ struct hmm_range {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Please see Documentation/vm/hmm.rst for how to use the range API.
 | 
					 * Please see Documentation/mm/hmm.rst for how to use the range API.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
int hmm_range_fault(struct hmm_range *range);
 | 
					int hmm_range_fault(struct hmm_range *range);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@ struct vmem_altmap {
 | 
				
			||||||
 * must be treated as an opaque object, rather than a "normal" struct page.
 | 
					 * must be treated as an opaque object, rather than a "normal" struct page.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * A more complete discussion of unaddressable memory may be found in
 | 
					 * A more complete discussion of unaddressable memory may be found in
 | 
				
			||||||
 * include/linux/hmm.h and Documentation/vm/hmm.rst.
 | 
					 * include/linux/hmm.h and Documentation/mm/hmm.rst.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * MEMORY_DEVICE_FS_DAX:
 | 
					 * MEMORY_DEVICE_FS_DAX:
 | 
				
			||||||
 * Host memory that has similar access semantics as System RAM i.e. DMA
 | 
					 * Host memory that has similar access semantics as System RAM i.e. DMA
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -198,7 +198,7 @@ struct mmu_notifier_ops {
 | 
				
			||||||
	 * invalidate_range_start()/end() notifiers, as
 | 
						 * invalidate_range_start()/end() notifiers, as
 | 
				
			||||||
	 * invalidate_range() already catches the points in time when an
 | 
						 * invalidate_range() already catches the points in time when an
 | 
				
			||||||
	 * external TLB range needs to be flushed. For more in depth
 | 
						 * external TLB range needs to be flushed. For more in depth
 | 
				
			||||||
	 * discussion on this see Documentation/vm/mmu_notifier.rst
 | 
						 * discussion on this see Documentation/mm/mmu_notifier.rst
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
	 * Note that this function might be called with just a sub-range
 | 
						 * Note that this function might be called with just a sub-range
 | 
				
			||||||
	 * of what was passed to invalidate_range_start()/end(), if
 | 
						 * of what was passed to invalidate_range_start()/end(), if
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ extern struct mm_struct *mm_alloc(void);
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Use mmdrop() to release the reference acquired by mmgrab().
 | 
					 * Use mmdrop() to release the reference acquired by mmgrab().
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * See also <Documentation/vm/active_mm.rst> for an in-depth explanation
 | 
					 * See also <Documentation/mm/active_mm.rst> for an in-depth explanation
 | 
				
			||||||
 * of &mm_struct.mm_count vs &mm_struct.mm_users.
 | 
					 * of &mm_struct.mm_count vs &mm_struct.mm_users.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static inline void mmgrab(struct mm_struct *mm)
 | 
					static inline void mmgrab(struct mm_struct *mm)
 | 
				
			||||||
| 
						 | 
					@ -92,7 +92,7 @@ static inline void mmdrop_sched(struct mm_struct *mm)
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Use mmput() to release the reference acquired by mmget().
 | 
					 * Use mmput() to release the reference acquired by mmget().
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * See also <Documentation/vm/active_mm.rst> for an in-depth explanation
 | 
					 * See also <Documentation/mm/active_mm.rst> for an in-depth explanation
 | 
				
			||||||
 * of &mm_struct.mm_count vs &mm_struct.mm_users.
 | 
					 * of &mm_struct.mm_count vs &mm_struct.mm_users.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static inline void mmget(struct mm_struct *mm)
 | 
					static inline void mmget(struct mm_struct *mm)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,7 @@ static inline int current_is_kswapd(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Unaddressable device memory support. See include/linux/hmm.h and
 | 
					 * Unaddressable device memory support. See include/linux/hmm.h and
 | 
				
			||||||
 * Documentation/vm/hmm.rst. Short description is we need struct pages for
 | 
					 * Documentation/mm/hmm.rst. Short description is we need struct pages for
 | 
				
			||||||
 * device memory that is unaddressable (inaccessible) by CPU, so that we can
 | 
					 * device memory that is unaddressable (inaccessible) by CPU, so that we can
 | 
				
			||||||
 * migrate part of a process memory to device memory.
 | 
					 * migrate part of a process memory to device memory.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -663,7 +663,7 @@ config KSM
 | 
				
			||||||
	  the many instances by a single page with that content, so
 | 
						  the many instances by a single page with that content, so
 | 
				
			||||||
	  saving memory until one or another app needs to modify the content.
 | 
						  saving memory until one or another app needs to modify the content.
 | 
				
			||||||
	  Recommended for use with KVM, or with other duplicative applications.
 | 
						  Recommended for use with KVM, or with other duplicative applications.
 | 
				
			||||||
	  See Documentation/vm/ksm.rst for more information: KSM is inactive
 | 
						  See Documentation/mm/ksm.rst for more information: KSM is inactive
 | 
				
			||||||
	  until a program has madvised that an area is MADV_MERGEABLE, and
 | 
						  until a program has madvised that an area is MADV_MERGEABLE, and
 | 
				
			||||||
	  root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
 | 
						  root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,7 +35,7 @@
 | 
				
			||||||
#include <asm/tlbflush.h>
 | 
					#include <asm/tlbflush.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Please refer Documentation/vm/arch_pgtable_helpers.rst for the semantics
 | 
					 * Please refer Documentation/mm/arch_pgtable_helpers.rst for the semantics
 | 
				
			||||||
 * expectations that are being validated here. All future changes in here
 | 
					 * expectations that are being validated here. All future changes in here
 | 
				
			||||||
 * or the documentation need to be in sync.
 | 
					 * or the documentation need to be in sync.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This code provides the generic "frontend" layer to call a matching
 | 
					 * This code provides the generic "frontend" layer to call a matching
 | 
				
			||||||
 * "backend" driver implementation of frontswap.  See
 | 
					 * "backend" driver implementation of frontswap.  See
 | 
				
			||||||
 * Documentation/vm/frontswap.rst for more information.
 | 
					 * Documentation/mm/frontswap.rst for more information.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright (C) 2009-2012 Oracle Corp.  All rights reserved.
 | 
					 * Copyright (C) 2009-2012 Oracle Corp.  All rights reserved.
 | 
				
			||||||
 * Author: Dan Magenheimer
 | 
					 * Author: Dan Magenheimer
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1937,7 +1937,7 @@ static void __split_huge_zero_page_pmd(struct vm_area_struct *vma,
 | 
				
			||||||
	 * replacing a zero pmd write protected page with a zero pte write
 | 
						 * replacing a zero pmd write protected page with a zero pte write
 | 
				
			||||||
	 * protected page.
 | 
						 * protected page.
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
	 * See Documentation/vm/mmu_notifier.rst
 | 
						 * See Documentation/mm/mmu_notifier.rst
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	pmdp_huge_clear_flush(vma, haddr, pmd);
 | 
						pmdp_huge_clear_flush(vma, haddr, pmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4875,7 +4875,7 @@ int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src,
 | 
				
			||||||
				 * table protection not changing it to point
 | 
									 * table protection not changing it to point
 | 
				
			||||||
				 * to a new page.
 | 
									 * to a new page.
 | 
				
			||||||
				 *
 | 
									 *
 | 
				
			||||||
				 * See Documentation/vm/mmu_notifier.rst
 | 
									 * See Documentation/mm/mmu_notifier.rst
 | 
				
			||||||
				 */
 | 
									 */
 | 
				
			||||||
				huge_ptep_set_wrprotect(src, addr, src_pte);
 | 
									huge_ptep_set_wrprotect(src, addr, src_pte);
 | 
				
			||||||
				entry = huge_pte_wrprotect(entry);
 | 
									entry = huge_pte_wrprotect(entry);
 | 
				
			||||||
| 
						 | 
					@ -6403,7 +6403,7 @@ unsigned long hugetlb_change_protection(struct vm_area_struct *vma,
 | 
				
			||||||
	 * No need to call mmu_notifier_invalidate_range() we are downgrading
 | 
						 * No need to call mmu_notifier_invalidate_range() we are downgrading
 | 
				
			||||||
	 * page table protection not changing it to point to a new page.
 | 
						 * page table protection not changing it to point to a new page.
 | 
				
			||||||
	 *
 | 
						 *
 | 
				
			||||||
	 * See Documentation/vm/mmu_notifier.rst
 | 
						 * See Documentation/mm/mmu_notifier.rst
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	i_mmap_unlock_write(vma->vm_file->f_mapping);
 | 
						i_mmap_unlock_write(vma->vm_file->f_mapping);
 | 
				
			||||||
	mmu_notifier_invalidate_range_end(&range);
 | 
						mmu_notifier_invalidate_range_end(&range);
 | 
				
			||||||
| 
						 | 
					@ -7102,7 +7102,7 @@ void hugetlb_unshare_all_pmds(struct vm_area_struct *vma)
 | 
				
			||||||
	i_mmap_unlock_write(vma->vm_file->f_mapping);
 | 
						i_mmap_unlock_write(vma->vm_file->f_mapping);
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * No need to call mmu_notifier_invalidate_range(), see
 | 
						 * No need to call mmu_notifier_invalidate_range(), see
 | 
				
			||||||
	 * Documentation/vm/mmu_notifier.rst.
 | 
						 * Documentation/mm/mmu_notifier.rst.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	mmu_notifier_invalidate_range_end(&range);
 | 
						mmu_notifier_invalidate_range_end(&range);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue