linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] madvise.2: update MADV_GUARD_INSTALL, MADV_GUARD_REMOVE description
@ 2025-03-17 21:06 Lorenzo Stoakes
  2025-03-23 20:15 ` Alejandro Colomar
  0 siblings, 1 reply; 4+ messages in thread
From: Lorenzo Stoakes @ 2025-03-17 21:06 UTC (permalink / raw)
  To: Alejandro Colomar
  Cc: linux-man, Suren Baghdasaryan, Liam R . Howlett, Matthew Wilcox,
	Vlastimil Babka, Jann Horn, linux-mm, Andrew Morton

Lightweight guard region support has been extended in Linux 6.15,
permitting the use of these features for file-backed and read-only
mappings.

Update the description for these operations in the madvise manpage to
describe the changed behaviour.
---
 man/man2/madvise.2 | 37 +++++++++++++++++++++++++++----------
 1 file changed, 27 insertions(+), 10 deletions(-)

diff --git a/man/man2/madvise.2 b/man/man2/madvise.2
index bd2b90b7a..37492c8cf 100644
--- a/man/man2/madvise.2
+++ b/man/man2/madvise.2
@@ -697,9 +697,22 @@ is applied to regions
 containing pre-existing lightweight guard regions,
 they are left in place.
 .IP
-This operation is supported
-only for writable anonymous private mappings
-which have not been mlock'd.
+Prior to Linux v6.15 This operation was supported
+only for writable anonymous private mappings.
+Since Linux v6.15 both anonymous and file-backed
+mappings are supported, including read-only mappings.
+.IP
+The mapping must not be mlock'd,
+nor can they map hugetlb ranges
+or special mappings
+for example,
+mappings marked with kernel-internal flags such as
+.B VM_PFNMAP
+or
+.BR VM_IO ,
+or secret memory regions created using
+.BR memfd_secret(2) .
+.IP
 An
 .B EINVAL
 error is returned if it is attempted on any other kind of mapping.
@@ -756,19 +769,23 @@ and
 .IP
 All mappings in the range
 other than lightweight guard regions
-are left in place
-(including mlock'd mappings).
-The operation is,
-however,
-valid only for writable anonymous private mappings,
+are left in place.
+The operation is supported on those mappings
+permitted by
+.B MADV_GUARD_INSTALL
+in addition to mlock()'d mappings,
 returning an
 .B EINVAL
 error otherwise.
 .IP
 When lightweight guard regions are removed,
 they act as empty regions of the containing mapping.
-Since only writable anonymous private mappings are supported,
-they therefore become zero-fill-on-demand pages.
+Anonymous private mappings therefore become
+zero-fill-on-demand pages,
+and file-backed mappings are repopulating with the
+memory contents from the up-to-date contents of the
+underlying mapped file.
+
 .IP
 If any transparent huge pages are encountered in the operation,
 they are left in place.
-- 
2.48.1



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] madvise.2: update MADV_GUARD_INSTALL, MADV_GUARD_REMOVE description
  2025-03-17 21:06 [PATCH] madvise.2: update MADV_GUARD_INSTALL, MADV_GUARD_REMOVE description Lorenzo Stoakes
@ 2025-03-23 20:15 ` Alejandro Colomar
  2025-04-23  9:37   ` Lorenzo Stoakes
  0 siblings, 1 reply; 4+ messages in thread
From: Alejandro Colomar @ 2025-03-23 20:15 UTC (permalink / raw)
  To: Lorenzo Stoakes
  Cc: linux-man, Suren Baghdasaryan, Liam R . Howlett, Matthew Wilcox,
	Vlastimil Babka, Jann Horn, linux-mm, Andrew Morton

[-- Attachment #1: Type: text/plain, Size: 3513 bytes --]

Hi Lorenzo,

On Mon, Mar 17, 2025 at 09:06:53PM +0000, Lorenzo Stoakes wrote:
> Lightweight guard region support has been extended in Linux 6.15,
> permitting the use of these features for file-backed and read-only
> mappings.
> 
> Update the description for these operations in the madvise manpage to
> describe the changed behaviour.
> ---
>  man/man2/madvise.2 | 37 +++++++++++++++++++++++++++----------
>  1 file changed, 27 insertions(+), 10 deletions(-)
> 
> diff --git a/man/man2/madvise.2 b/man/man2/madvise.2
> index bd2b90b7a..37492c8cf 100644
> --- a/man/man2/madvise.2
> +++ b/man/man2/madvise.2
> @@ -697,9 +697,22 @@ is applied to regions
>  containing pre-existing lightweight guard regions,
>  they are left in place.
>  .IP
> -This operation is supported
> -only for writable anonymous private mappings
> -which have not been mlock'd.
> +Prior to Linux v6.15 This operation was supported

We don't use 'v' for version numbers.

	alx@devuan:~/src/linux/man-pages/man-pages/contrib$ grep -rho 'Linux [1-6][^ ]*' | wc -l
	7679
	alx@devuan:~/src/linux/man-pages/man-pages/contrib$ grep -rho 'Linux v[1-6][^ ]*' | wc -l
	13

(Oh, well, I need to fix those 13 places.)

Also, there should be a comma (and lowercase):

	Prior to Linux 6.15,
	this operation ...

> +only for writable anonymous private mappings.
> +Since Linux v6.15 both anonymous and file-backed

A comma here too.

> +mappings are supported, including read-only mappings.

I'd break the line after the comma (and put 'mappings ...,' in the
previous one).

> +.IP
> +The mapping must not be mlock'd,
> +nor can they map hugetlb ranges

mapping is singular, but they is plural.  Did I misunderstand, or is it
a typo?

> +or special mappings

I think there should be some punctuation here, but let's revisit after
the rest of the paragraph is revised.

> +for example,
> +mappings marked with kernel-internal flags such as
> +.B VM_PFNMAP
> +or
> +.BR VM_IO ,
> +or secret memory regions created using
> +.BR memfd_secret(2) .

The space should go before (2), not after.

> +.IP
>  An
>  .B EINVAL
>  error is returned if it is attempted on any other kind of mapping.
> @@ -756,19 +769,23 @@ and
>  .IP
>  All mappings in the range
>  other than lightweight guard regions
> -are left in place
> -(including mlock'd mappings).
> -The operation is,
> -however,
> -valid only for writable anonymous private mappings,
> +are left in place.
> +The operation is supported on those mappings
> +permitted by
> +.B MADV_GUARD_INSTALL
> +in addition to mlock()'d mappings,
>  returning an
>  .B EINVAL
>  error otherwise.
>  .IP
>  When lightweight guard regions are removed,
>  they act as empty regions of the containing mapping.
> -Since only writable anonymous private mappings are supported,
> -they therefore become zero-fill-on-demand pages.
> +Anonymous private mappings therefore become

I'd put 'therefore' as the first word in the sentence, followed by a
comma.

> +zero-fill-on-demand pages,
> +and file-backed mappings are repopulating with the

repopulat{ing => ed}?

> +memory contents from the up-to-date contents of the
> +underlying mapped file.
> +

We can't have blank source lines.  That results in a diagnostic.

>  .IP
>  If any transparent huge pages are encountered in the operation,
>  they are left in place.
> -- 
> 2.48.1
> 

Have a lovely night!
Alex

-- 
<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] madvise.2: update MADV_GUARD_INSTALL, MADV_GUARD_REMOVE description
  2025-03-23 20:15 ` Alejandro Colomar
@ 2025-04-23  9:37   ` Lorenzo Stoakes
  2025-04-23 10:05     ` Alejandro Colomar
  0 siblings, 1 reply; 4+ messages in thread
From: Lorenzo Stoakes @ 2025-04-23  9:37 UTC (permalink / raw)
  To: Alejandro Colomar
  Cc: linux-man, Suren Baghdasaryan, Liam R . Howlett, Matthew Wilcox,
	Vlastimil Babka, Jann Horn, linux-mm, Andrew Morton

Hi Alejandro,

Sorry for being slow on this, LSF and workload has held me up a bit, will apply
your feedback and send a v2 soon.

Thanks, Lorenzo

On Sun, Mar 23, 2025 at 09:15:36PM +0100, Alejandro Colomar wrote:
> Hi Lorenzo,
>
> On Mon, Mar 17, 2025 at 09:06:53PM +0000, Lorenzo Stoakes wrote:
> > Lightweight guard region support has been extended in Linux 6.15,
> > permitting the use of these features for file-backed and read-only
> > mappings.
> >
> > Update the description for these operations in the madvise manpage to
> > describe the changed behaviour.
> > ---
> >  man/man2/madvise.2 | 37 +++++++++++++++++++++++++++----------
> >  1 file changed, 27 insertions(+), 10 deletions(-)
> >
> > diff --git a/man/man2/madvise.2 b/man/man2/madvise.2
> > index bd2b90b7a..37492c8cf 100644
> > --- a/man/man2/madvise.2
> > +++ b/man/man2/madvise.2
> > @@ -697,9 +697,22 @@ is applied to regions
> >  containing pre-existing lightweight guard regions,
> >  they are left in place.
> >  .IP
> > -This operation is supported
> > -only for writable anonymous private mappings
> > -which have not been mlock'd.
> > +Prior to Linux v6.15 This operation was supported
>
> We don't use 'v' for version numbers.
>
> 	alx@devuan:~/src/linux/man-pages/man-pages/contrib$ grep -rho 'Linux [1-6][^ ]*' | wc -l
> 	7679
> 	alx@devuan:~/src/linux/man-pages/man-pages/contrib$ grep -rho 'Linux v[1-6][^ ]*' | wc -l
> 	13
>
> (Oh, well, I need to fix those 13 places.)
>
> Also, there should be a comma (and lowercase):
>
> 	Prior to Linux 6.15,
> 	this operation ...
>
> > +only for writable anonymous private mappings.
> > +Since Linux v6.15 both anonymous and file-backed
>
> A comma here too.
>
> > +mappings are supported, including read-only mappings.
>
> I'd break the line after the comma (and put 'mappings ...,' in the
> previous one).
>
> > +.IP
> > +The mapping must not be mlock'd,
> > +nor can they map hugetlb ranges
>
> mapping is singular, but they is plural.  Did I misunderstand, or is it
> a typo?
>
> > +or special mappings
>
> I think there should be some punctuation here, but let's revisit after
> the rest of the paragraph is revised.
>
> > +for example,
> > +mappings marked with kernel-internal flags such as
> > +.B VM_PFNMAP
> > +or
> > +.BR VM_IO ,
> > +or secret memory regions created using
> > +.BR memfd_secret(2) .
>
> The space should go before (2), not after.
>
> > +.IP
> >  An
> >  .B EINVAL
> >  error is returned if it is attempted on any other kind of mapping.
> > @@ -756,19 +769,23 @@ and
> >  .IP
> >  All mappings in the range
> >  other than lightweight guard regions
> > -are left in place
> > -(including mlock'd mappings).
> > -The operation is,
> > -however,
> > -valid only for writable anonymous private mappings,
> > +are left in place.
> > +The operation is supported on those mappings
> > +permitted by
> > +.B MADV_GUARD_INSTALL
> > +in addition to mlock()'d mappings,
> >  returning an
> >  .B EINVAL
> >  error otherwise.
> >  .IP
> >  When lightweight guard regions are removed,
> >  they act as empty regions of the containing mapping.
> > -Since only writable anonymous private mappings are supported,
> > -they therefore become zero-fill-on-demand pages.
> > +Anonymous private mappings therefore become
>
> I'd put 'therefore' as the first word in the sentence, followed by a
> comma.
>
> > +zero-fill-on-demand pages,
> > +and file-backed mappings are repopulating with the
>
> repopulat{ing => ed}?
>
> > +memory contents from the up-to-date contents of the
> > +underlying mapped file.
> > +
>
> We can't have blank source lines.  That results in a diagnostic.
>
> >  .IP
> >  If any transparent huge pages are encountered in the operation,
> >  they are left in place.
> > --
> > 2.48.1
> >
>
> Have a lovely night!
> Alex
>
> --
> <https://www.alejandro-colomar.es/>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] madvise.2: update MADV_GUARD_INSTALL, MADV_GUARD_REMOVE description
  2025-04-23  9:37   ` Lorenzo Stoakes
@ 2025-04-23 10:05     ` Alejandro Colomar
  0 siblings, 0 replies; 4+ messages in thread
From: Alejandro Colomar @ 2025-04-23 10:05 UTC (permalink / raw)
  To: Lorenzo Stoakes
  Cc: linux-man, Suren Baghdasaryan, Liam R . Howlett, Matthew Wilcox,
	Vlastimil Babka, Jann Horn, linux-mm, Andrew Morton

[-- Attachment #1: Type: text/plain, Size: 4433 bytes --]

Hi Lorenzo,

On Wed, Apr 23, 2025 at 10:37:57AM +0100, Lorenzo Stoakes wrote:
> Hi Alejandro,
> 
> Sorry for being slow on this, LSF and workload has held me up a bit, will apply
> your feedback and send a v2 soon.

No problem.  Take as much time as you need.  :)


Have a lovely day!
Alex

> 
> Thanks, Lorenzo
> 
> On Sun, Mar 23, 2025 at 09:15:36PM +0100, Alejandro Colomar wrote:
> > Hi Lorenzo,
> >
> > On Mon, Mar 17, 2025 at 09:06:53PM +0000, Lorenzo Stoakes wrote:
> > > Lightweight guard region support has been extended in Linux 6.15,
> > > permitting the use of these features for file-backed and read-only
> > > mappings.
> > >
> > > Update the description for these operations in the madvise manpage to
> > > describe the changed behaviour.
> > > ---
> > >  man/man2/madvise.2 | 37 +++++++++++++++++++++++++++----------
> > >  1 file changed, 27 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/man/man2/madvise.2 b/man/man2/madvise.2
> > > index bd2b90b7a..37492c8cf 100644
> > > --- a/man/man2/madvise.2
> > > +++ b/man/man2/madvise.2
> > > @@ -697,9 +697,22 @@ is applied to regions
> > >  containing pre-existing lightweight guard regions,
> > >  they are left in place.
> > >  .IP
> > > -This operation is supported
> > > -only for writable anonymous private mappings
> > > -which have not been mlock'd.
> > > +Prior to Linux v6.15 This operation was supported
> >
> > We don't use 'v' for version numbers.
> >
> > 	alx@devuan:~/src/linux/man-pages/man-pages/contrib$ grep -rho 'Linux [1-6][^ ]*' | wc -l
> > 	7679
> > 	alx@devuan:~/src/linux/man-pages/man-pages/contrib$ grep -rho 'Linux v[1-6][^ ]*' | wc -l
> > 	13
> >
> > (Oh, well, I need to fix those 13 places.)
> >
> > Also, there should be a comma (and lowercase):
> >
> > 	Prior to Linux 6.15,
> > 	this operation ...
> >
> > > +only for writable anonymous private mappings.
> > > +Since Linux v6.15 both anonymous and file-backed
> >
> > A comma here too.
> >
> > > +mappings are supported, including read-only mappings.
> >
> > I'd break the line after the comma (and put 'mappings ...,' in the
> > previous one).
> >
> > > +.IP
> > > +The mapping must not be mlock'd,
> > > +nor can they map hugetlb ranges
> >
> > mapping is singular, but they is plural.  Did I misunderstand, or is it
> > a typo?
> >
> > > +or special mappings
> >
> > I think there should be some punctuation here, but let's revisit after
> > the rest of the paragraph is revised.
> >
> > > +for example,
> > > +mappings marked with kernel-internal flags such as
> > > +.B VM_PFNMAP
> > > +or
> > > +.BR VM_IO ,
> > > +or secret memory regions created using
> > > +.BR memfd_secret(2) .
> >
> > The space should go before (2), not after.
> >
> > > +.IP
> > >  An
> > >  .B EINVAL
> > >  error is returned if it is attempted on any other kind of mapping.
> > > @@ -756,19 +769,23 @@ and
> > >  .IP
> > >  All mappings in the range
> > >  other than lightweight guard regions
> > > -are left in place
> > > -(including mlock'd mappings).
> > > -The operation is,
> > > -however,
> > > -valid only for writable anonymous private mappings,
> > > +are left in place.
> > > +The operation is supported on those mappings
> > > +permitted by
> > > +.B MADV_GUARD_INSTALL
> > > +in addition to mlock()'d mappings,
> > >  returning an
> > >  .B EINVAL
> > >  error otherwise.
> > >  .IP
> > >  When lightweight guard regions are removed,
> > >  they act as empty regions of the containing mapping.
> > > -Since only writable anonymous private mappings are supported,
> > > -they therefore become zero-fill-on-demand pages.
> > > +Anonymous private mappings therefore become
> >
> > I'd put 'therefore' as the first word in the sentence, followed by a
> > comma.
> >
> > > +zero-fill-on-demand pages,
> > > +and file-backed mappings are repopulating with the
> >
> > repopulat{ing => ed}?
> >
> > > +memory contents from the up-to-date contents of the
> > > +underlying mapped file.
> > > +
> >
> > We can't have blank source lines.  That results in a diagnostic.
> >
> > >  .IP
> > >  If any transparent huge pages are encountered in the operation,
> > >  they are left in place.
> > > --
> > > 2.48.1
> > >
> >
> > Have a lovely night!
> > Alex
> >
> > --
> > <https://www.alejandro-colomar.es/>

-- 
<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:[~2025-04-23 10:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-17 21:06 [PATCH] madvise.2: update MADV_GUARD_INSTALL, MADV_GUARD_REMOVE description Lorenzo Stoakes
2025-03-23 20:15 ` Alejandro Colomar
2025-04-23  9:37   ` Lorenzo Stoakes
2025-04-23 10:05     ` Alejandro Colomar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox