Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/share/man/man9 Bump date for pmap_remove addition.



details:   https://anonhg.NetBSD.org/src/rev/41f60771ff5c
branches:  trunk
changeset: 537137:41f60771ff5c
user:      wiz <wiz%NetBSD.org@localhost>
date:      Fri Sep 27 07:46:37 2002 +0000

description:
Bump date for pmap_remove addition.
Begin new sentences on new lines.
Use .Aq as much as possible instead of \*[Lt]foo\*[Gt].

diffstat:

 share/man/man9/pmap.9 |  345 +++++++++++++++++++++++++++----------------------
 1 files changed, 191 insertions(+), 154 deletions(-)

diffs (truncated from 749 to 300 lines):

diff -r 19dd383c2063 -r 41f60771ff5c share/man/man9/pmap.9
--- a/share/man/man9/pmap.9     Fri Sep 27 07:30:38 2002 +0000
+++ b/share/man/man9/pmap.9     Fri Sep 27 07:46:37 2002 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: pmap.9,v 1.17 2002/09/22 07:22:28 chs Exp $
+.\"    $NetBSD: pmap.9,v 1.18 2002/09/27 07:46:37 wiz Exp $
 .\"
 .\" Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -34,7 +34,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd August 14, 2002
+.Dd September 27, 2002
 .Dt PMAP 9
 .Os
 .Sh NAME
@@ -125,7 +125,8 @@
 module is to manage physical address maps, to program the
 memory management hardware on the system, and perform any
 cache operations necessary to ensure correct operation of
-the virtual memory system.  The
+the virtual memory system.
+The
 .Nm
 module is also responsible for maintaining certain information
 required by
@@ -137,8 +138,8 @@
 processors), the
 .Nm
 module is allowed to delay mapping invalidation or protection
-operations until such time as they are actually necessary.  The
-functions that are allowed to delay such actions are
+operations until such time as they are actually necessary.
+The functions that are allowed to delay such actions are
 .Fn pmap_enter ,
 .Fn pmap_remove ,
 .Fn pmap_protect ,
@@ -149,7 +150,8 @@
 .Fn pmap_update
 function to notify the
 .Nm
-module that the mappings need to be made correct.  Since the
+module that the mappings need to be made correct.
+Since the
 .Nm
 module is provided with information as to which processors are
 using a given physical map, the
@@ -158,7 +160,7 @@
 the expense of virtual-to-physical mapping synchronization.
 .Ss HEADER FILES AND DATA STRUCTURES
 Machine-dependent code must provide the header file
-.Pa \*[Lt]machine/pmap.h\*[Gt] .
+.Aq Pa machine/pmap.h .
 This file contains the definition of the
 .Dv pmap
 structure:
@@ -176,7 +178,7 @@
 Note that all prototypes for
 .Nm
 interface functions are provided by the header file
-.Pa \*[Lt]uvm/uvm_pmap.h\*[Gt] .
+.Aq Pa uvm/uvm_pmap.h .
 It is possible to override this behavior by defining the
 C pre-processor macro
 .Dq PMAP_EXCLUDE_DECLS .
@@ -184,10 +186,11 @@
 .Nm
 API calls, for handling different MMU types in a single
 .Nm
-module, for example.  If the
+module, for example.
+If the
 .Dq PMAP_EXCLUDE_DECLS
 macro is defined,
-.Pa \*[Lt]machine/pmap.h\*[Gt]
+.Aq Pa machine/pmap.h
 .Em must
 provide function prototypes in a block like so:
 .Bd -literal -offset indent
@@ -199,10 +202,11 @@
 .Ed
 .Pp
 The header file
-.Pa \*[Lt]uvm/uvm_pmap.h\*[Gt]
+.Aq Pa uvm/uvm_pmap.h
 defines a structure for tracking
 .Nm
-statistics (see below).  This structure is defined as:
+statistics (see below).
+This structure is defined as:
 .Bd -literal -offset indent
 struct pmap_statistics {
         long        resident_count; /* number of mapped pages */
@@ -213,49 +217,50 @@
 The
 .Nm
 module is based on the premise that all information contained
-in the physical maps it manages is redundant.  That is, physical
-map information may be
+in the physical maps it manages is redundant.
+That is, physical map information may be
 .Dq forgotten
 by the
 .Nm
 module in the event that it is necessary to do so; it can be rebuilt
 by
 .Xr uvm 9
-by taking a page fault.  There is one exception to this rule: so-called
+by taking a page fault.
+There is one exception to this rule: so-called
 .Dq wired
-mappings may not be forgotten.  Wired mappings are those for which either
-no high-level information exists with which to rebuild the mapping, or
-mappings which are needed by critical sections of code where taking a
-page fault is unacceptable.  Information about which mappings are wired
-is provided to the
+mappings may not be forgotten.
+Wired mappings are those for which either no high-level information
+exists with which to rebuild the mapping, or mappings which are needed
+by critical sections of code where taking a page fault is unacceptable.
+Information about which mappings are wired is provided to the
 .Nm
 module when a mapping is established.
 .Ss MODIFIED/REFERENCED INFORMATION
 The
 .Nm
 module is required to keep track of whether or not a page managed
-by the virtual memory system has been referenced or modified.  This
-information is used by
+by the virtual memory system has been referenced or modified.
+This information is used by
 .Xr uvm 9
 to determine what happens to the page when scanned by the
 pagedaemon.
 .Pp
 Many CPUs provide hardware support for tracking
-modified/referenced information.  However, many CPUs, particularly
-modern RISC CPUs, do not.  On CPUs which lack hardware support
-for modified/referenced tracking, the
+modified/referenced information.
+However, many CPUs, particularly modern RISC CPUs, do not.
+On CPUs which lack hardware support for modified/referenced tracking, the
 .Nm
-module must emulate it in software.  There are several strategies
-for doing this, and the best strategy depends on the CPU.
+module must emulate it in software.
+There are several strategies for doing this, and the best strategy
+depends on the CPU.
 .Pp
 The
 .Dq referenced
 attribute is used by the pagedaemon to determine if a page is
 .Dq active .
-Active pages are not candidates for re-use in the page replacement
-algorithm.  Accurate referenced information is not required for
-correct operation; if supplying referenced information for a page
-is not feasible, then the
+Active pages are not candidates for re-use in the page replacement algorithm.
+Accurate referenced information is not required for correct operation; if
+supplying referenced information for a page is not feasible, then the
 .Nm
 implementation should always consider the
 .Dq referenced
@@ -272,19 +277,22 @@
 module for correct operation of the virtual memory system.
 .Pp
 Note that modified/referenced information is only tracked for
-pages managed by the virtual memory system (i.e. pages for
-which a vm_page structure exists).  In addition, only
+pages managed by the virtual memory system (i.e., pages for
+which a vm_page structure exists).
+In addition, only
 .Dq managed
-mappings of those pages have modified/referenced tracking.  Mappings
-entered with the
+mappings of those pages have modified/referenced tracking.
+Mappings entered with the
 .Fn pmap_enter
 function are
 .Dq managed
-mappings.  It is possible for
+mappings.
+It is possible for
 .Dq unmanaged
 mappings of a page to be created, using the
 .Fn pmap_kenter_pa
-function.  The use of
+function.
+The use of
 .Dq unmanaged
 mappings should be limited to code which may execute in interrupt context
 (for example, the kernel memory allocator), or to enter mappings for
@@ -302,17 +310,21 @@
 .Pp
 Also note that the modified/referenced information must be tracked
 on a per-page basis; they are not attributes of a mapping, but attributes
-of a page.  Therefore, even after all mappings for a given page have
+of a page.
+Therefore, even after all mappings for a given page have
 been removed, the modified/referenced information for that page
 .Em must
-be preserved.  The only time the modified/referenced attributes may
+be preserved.
+The only time the modified/referenced attributes may
 be cleared is when the virtual memory system explicitly calls the
 .Fn pmap_clear_modify
 and
 .Fn pmap_clear_reference
-functions.  These functions must also change any internal state
-necessary to detect the page being modified or referenced again
-after the modified or referenced state is cleared.  (Prior to
+functions.
+These functions must also change any internal state necessary to detect
+the page being modified or referenced again after the modified or
+referenced state is cleared.
+(Prior to
 .Nx 1.6 ,
 .Nm
 implementations could get away without this because UVM (and Mach VM
@@ -333,16 +345,17 @@
 .Pp
 A
 .Dq resident
-page is one for which a mapping exists.  This statistic is used to
-compute the resident size of a process and enforce resource limits.
+page is one for which a mapping exists.
+This statistic is used to compute the resident size of a process and
+enforce resource limits.
 Only pages (whether managed by the virtual memory system or not)
 which are mapped into a physical map should be counted in the resident
 count.
 .Pp
 A
 .Dq wired
-page is one for which a wired mapping exists.  This statistic is used to
-enforce resource limits.
+page is one for which a wired mapping exists.
+This statistic is used to enforce resource limits.
 .Pp
 Note that it is recommended (though not required) that the
 .Nm
@@ -353,8 +366,9 @@
 statistics by placing it inside the
 .Dv pmap
 structure and adjusting the counts when mappings are established, changed,
-or removed.  This avoids potentially expensive data structure traversals
-when the statistics are queried.
+or removed.
+This avoids potentially expensive data structure traversals when the
+statistics are queried.
 .Ss REQUIRED FUNCTIONS
 This section describes functions that a
 .Nm
@@ -363,7 +377,8 @@
 .It void Fn "pmap_init" "void"
 This function initializes the
 .Nm
-module.  It is called by
+module.
+It is called by
 .Fn uvm_init
 to initialize any data structures that the module needs to
 manage physical maps.
@@ -377,8 +392,9 @@
 The
 .Fn pmap_virtual_space
 function is called to determine the initial kernel virtual address
-space beginning and end.  These values are used to create the kernel's
-virtual memory map.  The function must set
+space beginning and end.
+These values are used to create the kernel's virtual memory map.
+The function must set
 .Fa *vstartp
 to the first kernel virtual address that will be managed by
 .Xr uvm 9 ,
@@ -394,7 +410,8 @@
 implementation, then
 .Fa *vendp
 should be set to the maximum kernel virtual address allowed by the
-implementation.  If
+implementation.
+If
 .Fn pmap_growkernel
 is not used, then
 .Fa *vendp
@@ -403,13 +420,14 @@
 the resources currently allocated to map the kernel virtual address
 space.
 .It pmap_t Fn "pmap_create" "void"
-Create a physical map and return it to the caller.  The reference
-count on the new map is 1.
+Create a physical map and return it to the caller.
+The reference count on the new map is 1.
 .It void Fn "pmap_destroy" "pmap_t pmap"
-Drop the reference count on the specified physical map.  If the
-reference count drops to 0, all resources associated with the
-physical map are released and the physical map destroyed.  In the
-case of a drop-to-0, no mappings will exist in the map.  The



Home | Main Index | Thread Index | Old Index