]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
man/man2/{mbind,set_mempolicy}.2: Document MPOL_PREFERRED_MANY
authorMatthew Cassell <mcassell411@gmail.com>
Thu, 20 Feb 2025 22:52:32 +0000 (16:52 -0600)
committerAlejandro Colomar <alx@kernel.org>
Fri, 21 Feb 2025 18:00:15 +0000 (19:00 +0100)
Browsing a header file in the kernel source and saw the memory policy
enum used for mbind() and set_mempolicy() using an entry that I didn't
recognize.  I man 2'd both system calls and didn't see an entry for
MPOL_PREFERRED_MANY.  The commit on the enum entry:

linux.git b27abaccf8e8 (2021-09-02; "mm/mempolicy: add
MPOL_PREFERRED_MANY for multiple preferred nodes")

The commit message gives the rationale as to why the MPOL_PREFERRED_MANY
mode would be beneficial.  Giving the ability to set the memory policy
to target different tiers of memory over various NUMA nodes.

Cc: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Matthew Cassell <mcassell411@gmail.com>
Message-ID: <20250220225232.2138-1-mcassell411@gmail.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
man/man2/mbind.2
man/man2/set_mempolicy.2

index fd1aca4ad79b5f80c9ba6f7d2815f3257ab9417d..55a03a78803d71683afb204643a636f72c7c2568 100644 (file)
@@ -107,6 +107,7 @@ argument must specify one of
 .BR MPOL_INTERLEAVE ,
 .BR MPOL_WEIGHTED_INTERLEAVE ,
 .BR MPOL_PREFERRED ,
+.BR MPOL_PREFERRED_MANY ,
 or
 .B MPOL_LOCAL
 (which are described in detail below).
@@ -277,6 +278,11 @@ and
 arguments specify the empty set, then the memory is allocated on
 the node of the CPU that triggered the allocation.
 .TP
+.BR MPOL_PREFERRED_MANY " (since Linux 5.15)"
+.\" commit b27abaccf8e8b012f126da0c2a1ab32723ec8b9f
+Specifies a set of nodes for allocation; see
+.BR set_mempolicy (2)
+.TP
 .BR MPOL_LOCAL " (since Linux 3.8)"
 .\" commit 479e2802d09f1e18a97262c4c6f8f17ae5884bd8
 .\" commit f2a07f40dbc603c15f8b06e6ec7f768af67b424f
index 2d0b1da19c3f4c2acafaf45fbcee2c49b8e06cb3..19cae408a03bd933a20c88ea5963cce80873ab04 100644 (file)
@@ -65,6 +65,7 @@ argument must specify one of
 .BR MPOL_INTERLEAVE ,
 .BR MPOL_WEIGHTED_INTERLEAVE ,
 .BR MPOL_PREFERRED ,
+.BR MPOL_PREFERRED_MANY ,
 or
 .B MPOL_LOCAL
 (which are described in detail below).
@@ -234,6 +235,19 @@ arguments specify the empty set, then the policy
 specifies "local allocation"
 (like the system default policy discussed above).
 .TP
+.BR MPOL_PREFERRED_MANY " (since Linux 5.15)"
+.\" commit b27abaccf8e8b012f126da0c2a1ab32723ec8b9f
+This mode specifies a preference for nodes
+from which the kernel will try to allocate from.
+This differs from
+.B MPOL_PREFERRED
+in that it accepts a set of nodes
+versus a single node.
+This policy is intended to benefit page allocations
+where specific memory types
+(i.e. non-volatile, high-bandwidth, or accelerator memory)
+are of greater importance than node location.
+.TP
 .BR MPOL_LOCAL " (since Linux 3.8)"
 .\" commit 479e2802d09f1e18a97262c4c6f8f17ae5884bd8
 .\" commit f2a07f40dbc603c15f8b06e6ec7f768af67b424f