summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvetly Todorov <svetly.todorov@memverge.com>2024-04-23 16:36:56 -0700
committerAlejandro Colomar <alx@kernel.org>2024-04-26 01:04:04 +0200
commit92bf7eb59fd382914a92dcb8f4dacbb059f63cbc (patch)
treef937d962de20e9c788d19bf4f3d352c077ca9e37
parent07178952cc59516ba7ceb465c59d8a0f3da2b461 (diff)
man2/: Add MPOL_WEIGHTED_INTERLEAVE documentation
Add documentation for the new MPOL_WEIGHTED_INTERLEAVE mode in the same manual pages that mention MPOL_INTERLEAVE; namely, mbind(2), set_mempolicy(2), and get_mempolicy(2). Descriptions were based on the changes introduced in this patch: <https://lore.kernel.org/all/20240202170238.90004-4-gregory.price@memverge.com/> Which was upstreamed to 6.9 here: <https://lore.kernel.org/linux-mm/20240313200532.34e4cff216acd3db8def4637@linux-foundation.org/> Cc: gregory.price@memverge.com Reviewed-by: "Huang, Ying" <ying.huang@intel.com> Signed-off-by: Svetly Todorov <svetly.todorov@memverge.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--man2/get_mempolicy.210
-rw-r--r--man2/mbind.218
-rw-r--r--man2/set_mempolicy.218
3 files changed, 43 insertions, 3 deletions
diff --git a/man2/get_mempolicy.2 b/man2/get_mempolicy.2
index 5248f04ba..f6f80ab3e 100644
--- a/man2/get_mempolicy.2
+++ b/man2/get_mempolicy.2
@@ -137,7 +137,9 @@ specifies
but not
.BR MPOL_F_ADDR ,
and the thread's current policy is
-.BR MPOL_INTERLEAVE ,
+.B MPOL_INTERLEAVE
+or
+.BR MPOL_WEIGHTED_INTERLEAVE ,
then
.BR get_mempolicy ()
will return in the location pointed to by a non-NULL
@@ -205,8 +207,10 @@ specified
.B MPOL_F_NODE
but not
.B MPOL_F_ADDR
-and the current thread policy is not
-.BR MPOL_INTERLEAVE .
+and the current thread policy is neither
+.B MPOL_INTERLEAVE
+nor
+.BR MPOL_WEIGHTED_INTERLEAVE .
Or,
.I flags
specified
diff --git a/man2/mbind.2 b/man2/mbind.2
index b0e961f9c..96264ce81 100644
--- a/man2/mbind.2
+++ b/man2/mbind.2
@@ -105,6 +105,7 @@ argument must specify one of
.BR MPOL_DEFAULT ,
.BR MPOL_BIND ,
.BR MPOL_INTERLEAVE ,
+.BR MPOL_WEIGHTED_INTERLEAVE ,
.BR MPOL_PREFERRED ,
or
.B MPOL_LOCAL
@@ -243,6 +244,23 @@ at least 1\ MB or bigger with a fairly uniform access pattern.
Accesses to a single page of the area will still be limited to
the memory bandwidth of a single node.
.TP
+.BR MPOL_WEIGHTED_INTERLEAVE " (since Linux 6.9)"
+.\" commit fa3bea4e1f8202d787709b7e3654eb0a99aed758
+This mode interleaves page allocations across the nodes specified in
+.I nodemask
+according to the weights in
+.IR /sys/kernel/mm/mempolicy/weighted_interleave .
+For example, if bits 0, 2, and 5 are set in
+.IR nodemask ,
+and the contents of
+.IR /sys/kernel/mm/mempolicy/weighted_interleave/node0 ,
+.IR /sys/ .\|.\|. /node2 ,
+and
+.IR /sys/ .\|.\|. /node5
+are 4, 7, and 9, respectively,
+then pages in this region will be allocated on nodes 0, 2, and 5
+in a 4:7:9 ratio.
+.TP
.B MPOL_PREFERRED
This mode sets the preferred node for allocation.
The kernel will try to allocate pages from this
diff --git a/man2/set_mempolicy.2 b/man2/set_mempolicy.2
index fc3ad9df8..f1f225e32 100644
--- a/man2/set_mempolicy.2
+++ b/man2/set_mempolicy.2
@@ -63,6 +63,7 @@ argument must specify one of
.BR MPOL_DEFAULT ,
.BR MPOL_BIND ,
.BR MPOL_INTERLEAVE ,
+.BR MPOL_WEIGHTED_INTERLEAVE ,
.BR MPOL_PREFERRED ,
or
.B MPOL_LOCAL
@@ -199,6 +200,23 @@ the memory bandwidth of a single node.
.\" To be effective the memory area should be fairly large,
.\" at least 1 MB or bigger.
.TP
+.BR MPOL_WEIGHTED_INTERLEAVE " (since Linux 6.9)"
+.\" commit fa3bea4e1f8202d787709b7e3654eb0a99aed758
+This mode interleaves page allocations across the nodes specified in
+.I nodemask
+according to the weights in
+.IR /sys/kernel/mm/mempolicy/weighted_interleave .
+For example, if bits 0, 2, and 5 are set in
+.IR nodemask ,
+and the contents of
+.IR /sys/kernel/mm/mempolicy/weighted_interleave/node0 ,
+.IR /sys/ .\|.\|. /node2 ,
+and
+.IR /sys/ .\|.\|. /node5
+are 4, 7, and 9, respectively,
+then pages in this region will be allocated on nodes 0, 2, and 5
+in a 4:7:9 ratio.
+.TP
.B MPOL_PREFERRED
This mode sets the preferred node for allocation.
The kernel will try to allocate pages from this node first