* [PATCH v3] man2: add MPOL_WEIGHTED_INTERLEAVE documentation @ 2024-03-15 23:43 Svetly Todorov 2024-03-15 23:52 ` Alejandro Colomar 0 siblings, 1 reply; 4+ messages in thread From: Svetly Todorov @ 2024-03-15 23:43 UTC (permalink / raw) To: alx; +Cc: linux-man, gregory.price, ying.huang, Svetly Todorov --- Adding documentation for the new MPOL_WEIGHTED_INTERLEAVE mode in the same manpages 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/ To: alx@kernel.org Cc: linux-man@vger.kernel.org Cc: gregory.price@memverge.com Cc: ying.huang@intel.com Signed-off-by: Svetly Todorov <svetly.todorov@memverge.com> Changes in v3: - italicize paths - Link to v2: https://lore.kernel.org/r/20240315-weighted_interleave-v2-1-b742a48750b0@memverge.com Changes in v2: - make flag documentation implementation-agnostic - Link to v1: https://lore.kernel.org/r/20240314-weighted_interleave-v1-1-ce85d64db0d4@memverge.com --- man2/get_mempolicy.2 | 8 ++++++-- man2/mbind.2 | 17 +++++++++++++++++ man2/set_mempolicy.2 | 17 +++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/man2/get_mempolicy.2 b/man2/get_mempolicy.2 index 5248f04ba..03550331d 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 , +.BR MPOL_INTERLEAVE +or +.BR MPOL_WEIGHTED_INTERLEAVE , then .BR get_mempolicy () will return in the location pointed to by a non-NULL @@ -206,7 +208,9 @@ specified but not .B MPOL_F_ADDR and the current thread policy is not -.BR MPOL_INTERLEAVE . +.BR MPOL_INTERLEAVE +or +.BR MPOL_WEIGHTED_INTERLEAVE . Or, .I flags specified diff --git a/man2/mbind.2 b/man2/mbind.2 index b0e961f9c..6f85dec0e 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,22 @@ 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 +.B MPOL_WEIGHTED_INTERLEAVE +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 raised in +.IR nodemask , +and the contents of +.IR /sys/kernel/mm/mempolicy/weighted_interleave/node0 , +.IR /sys/.../node2 , +and +.I /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..6b51cb376 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,22 @@ the memory bandwidth of a single node. .\" To be effective the memory area should be fairly large, .\" at least 1 MB or bigger. .TP +.B MPOL_WEIGHTED_INTERLEAVE +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 raised in +.IR nodemask , +and the contents of +.IR /sys/kernel/mm/mempolicy/weighted_interleave/node0 , +.IR /sys/.../node2 , +and +.I /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 --- base-commit: a4ea5f76215dcf1d8d017eb65ab12919ccf09f3f change-id: 20240313-weighted_interleave-e8141ed754f9 Best regards, -- Svetly Todorov <svetly.todorov@memverge.com> ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3] man2: add MPOL_WEIGHTED_INTERLEAVE documentation 2024-03-15 23:43 [PATCH v3] man2: add MPOL_WEIGHTED_INTERLEAVE documentation Svetly Todorov @ 2024-03-15 23:52 ` Alejandro Colomar 2024-03-16 19:21 ` Svetly Todorov 0 siblings, 1 reply; 4+ messages in thread From: Alejandro Colomar @ 2024-03-15 23:52 UTC (permalink / raw) To: Svetly Todorov; +Cc: linux-man, gregory.price, ying.huang [-- Attachment #1: Type: text/plain, Size: 5248 bytes --] Hi Svetly, On Fri, Mar 15, 2024 at 04:43:36PM -0700, Svetly Todorov wrote: > > > --- > Adding documentation for the new MPOL_WEIGHTED_INTERLEAVE mode in the same > manpages 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/ > > To: alx@kernel.org > Cc: linux-man@vger.kernel.org > Cc: gregory.price@memverge.com > Cc: ying.huang@intel.com Please add those to the commit message. Content-wise, the patch LGTM. I have some comments about formatting. Please see below. Have a lovely night! Alex > Signed-off-by: Svetly Todorov <svetly.todorov@memverge.com> > > Changes in v3: > - italicize paths > - Link to v2: https://lore.kernel.org/r/20240315-weighted_interleave-v2-1-b742a48750b0@memverge.com > > Changes in v2: > - make flag documentation implementation-agnostic > - Link to v1: https://lore.kernel.org/r/20240314-weighted_interleave-v1-1-ce85d64db0d4@memverge.com > --- > man2/get_mempolicy.2 | 8 ++++++-- > man2/mbind.2 | 17 +++++++++++++++++ > man2/set_mempolicy.2 | 17 +++++++++++++++++ > 3 files changed, 40 insertions(+), 2 deletions(-) > > diff --git a/man2/get_mempolicy.2 b/man2/get_mempolicy.2 > index 5248f04ba..03550331d 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 , > +.BR MPOL_INTERLEAVE This should be B, not BR (BR is for alternating Bold and Roman). > +or > +.BR MPOL_WEIGHTED_INTERLEAVE , > then > .BR get_mempolicy () > will return in the location pointed to by a non-NULL > @@ -206,7 +208,9 @@ specified > but not > .B MPOL_F_ADDR > and the current thread policy is not > -.BR MPOL_INTERLEAVE . > +.BR MPOL_INTERLEAVE > +or > +.BR MPOL_WEIGHTED_INTERLEAVE . > Or, > .I flags > specified > diff --git a/man2/mbind.2 b/man2/mbind.2 > index b0e961f9c..6f85dec0e 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,22 @@ 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 > +.B MPOL_WEIGHTED_INTERLEAVE > +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 raised in > +.IR nodemask , > +and the contents of > +.IR /sys/kernel/mm/mempolicy/weighted_interleave/node0 , > +.IR /sys/.../node2 , Since ... is variable stuff inside an italicised word, according to the groff_man_style(7) paragraph I quoted, it should be in Roman. So, .IR /sys/ ... /node2 , Also, for better formatting of the '...', we use \| between the dots, which on proportional fonts (in PDF, or HTML, for example) will produce nicer elipses. So, .IR /sys/ .\|.\|. /node2 , > +and > +.I /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..6b51cb376 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,22 @@ the memory bandwidth of a single node. > .\" To be effective the memory area should be fairly large, > .\" at least 1 MB or bigger. > .TP > +.B MPOL_WEIGHTED_INTERLEAVE > +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 raised in > +.IR nodemask , > +and the contents of > +.IR /sys/kernel/mm/mempolicy/weighted_interleave/node0 , > +.IR /sys/.../node2 , > +and > +.I /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 > > --- > base-commit: a4ea5f76215dcf1d8d017eb65ab12919ccf09f3f > change-id: 20240313-weighted_interleave-e8141ed754f9 > > Best regards, > -- > Svetly Todorov <svetly.todorov@memverge.com> > > -- <https://www.alejandro-colomar.es/> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3] man2: add MPOL_WEIGHTED_INTERLEAVE documentation 2024-03-15 23:52 ` Alejandro Colomar @ 2024-03-16 19:21 ` Svetly Todorov 2024-03-16 19:36 ` Alejandro Colomar 0 siblings, 1 reply; 4+ messages in thread From: Svetly Todorov @ 2024-03-16 19:21 UTC (permalink / raw) To: Alejandro Colomar; +Cc: linux-man@vger.kernel.org, Gregory Price, Huang, Ying Hi Alex, Happy Saturday. >> diff --git a/man2/get_mempolicy.2 b/man2/get_mempolicy.2 >> index 5248f04ba..03550331d 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 , >> +.BR MPOL_INTERLEAVE > > This should be B, not BR (BR is for alternating Bold and Roman). Can’t believe I missed that! > Or, >> >> .I flags >> specified >> diff --git a/man2/mbind.2 b/man2/mbind.2 >> index b0e961f9c..6f85dec0e 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,22 @@ 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 >> +.B MPOL_WEIGHTED_INTERLEAVE >> +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 raised in >> +.IR nodemask , >> +and the contents of >> +.IR /sys/kernel/mm/mempolicy/weighted_interleave/node0 , >> +.IR /sys/.../node2 , > > Since ... is variable stuff inside an italicised word, according to the > groff_man_style(7) paragraph I quoted, it should be in Roman. So, > > .IR /sys/ ... /node2 , > > Also, for better formatting of the '...', we use \| between the dots, > which on proportional fonts (in PDF, or HTML, for example) will produce > nicer elipses. So, > > .IR /sys/ .\|.\|. /node2 , This I was more unsure about. I saw the quoted portion of groff (7) but since the ellipses are a stand-in 'kernel/mm/mempolicy’, I figured they technically *weren’t* a variable region, so I left them italicized... I dunno. I was pretty fried yesterday. I’ll follow your lead on this, and thank you for the \| tip. Svetly ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3] man2: add MPOL_WEIGHTED_INTERLEAVE documentation 2024-03-16 19:21 ` Svetly Todorov @ 2024-03-16 19:36 ` Alejandro Colomar 0 siblings, 0 replies; 4+ messages in thread From: Alejandro Colomar @ 2024-03-16 19:36 UTC (permalink / raw) To: Svetly Todorov; +Cc: linux-man@vger.kernel.org, Gregory Price, Huang, Ying [-- Attachment #1: Type: text/plain, Size: 2626 bytes --] Hi Svetly, On Sat, Mar 16, 2024 at 07:21:21PM +0000, Svetly Todorov wrote: > Hi Alex, > > Happy Saturday. Have a lovely Saturday! > >> diff --git a/man2/get_mempolicy.2 b/man2/get_mempolicy.2 > >> index 5248f04ba..03550331d 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 , > >> +.BR MPOL_INTERLEAVE > > > > This should be B, not BR (BR is for alternating Bold and Roman). > > Can’t believe I missed that! > > > Or, > >> > >> .I flags > >> specified > >> diff --git a/man2/mbind.2 b/man2/mbind.2 > >> index b0e961f9c..6f85dec0e 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,22 @@ 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 > >> +.B MPOL_WEIGHTED_INTERLEAVE > >> +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 raised in > >> +.IR nodemask , > >> +and the contents of > >> +.IR /sys/kernel/mm/mempolicy/weighted_interleave/node0 , > >> +.IR /sys/.../node2 , > > > > Since ... is variable stuff inside an italicised word, according to the > > groff_man_style(7) paragraph I quoted, it should be in Roman. So, > > > > .IR /sys/ ... /node2 , > > > > Also, for better formatting of the '...', we use \| between the dots, > > which on proportional fonts (in PDF, or HTML, for example) will produce > > nicer elipses. So, > > > > .IR /sys/ .\|.\|. /node2 , > > This I was more unsure about. > I saw the quoted portion of groff (7) but since > the ellipses are a stand-in 'kernel/mm/mempolicy’, I figured > they technically *weren’t* a variable region, so I left them italicized... > > I dunno. I was pretty fried yesterday. I’ll follow your lead on this, > and thank you for the \| tip. The rule I follow to not have to think too much about it is: if the user can copy it verbatim, then it's not a variable; otherwise, it is. :) Cheers, Alex > > Svetly > -- <https://www.alejandro-colomar.es/> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-03-16 19:36 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-03-15 23:43 [PATCH v3] man2: add MPOL_WEIGHTED_INTERLEAVE documentation Svetly Todorov 2024-03-15 23:52 ` Alejandro Colomar 2024-03-16 19:21 ` Svetly Todorov 2024-03-16 19:36 ` Alejandro Colomar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox