On Thu, Dec 05, 2024 at 09:43:09PM +0100, Vlastimil Babka wrote: > On 12/5/24 19:09, Lorenzo Stoakes wrote: > > On Thu, Dec 05, 2024 at 06:50:09PM +0100, Vlastimil Babka wrote: > >> On 12/5/24 11:41, Lorenzo Stoakes wrote: > >> > Lightweight guard region support has been added to Linux 6.13, which adds > >> > MADV_GUARD_INSTALL and MADV_GUARD_REMOVE flags to the madvise() system > >> > call. Therefore, update the manpage for madvise() and describe these > >> > operations. > >> > > >> > Reviewed-by: Jann Horn <jannh@xxxxxxxxxx> > >> > Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx> > >> > --- > >> > v4: > >> > * Reference function chapters as per Alejandro. > >> > * Minor rewording as per Alejandro. > >> > > >> > v3: > >> > * Don't describe SIGSEGV as a fatal signal as per Jann. > >> > https://lore.kernel.org/all/20241202165829.72121-1-lorenzo.stoakes@xxxxxxxxxx > >> > > >> > v2: > >> > * Updated to use semantic newlines as suggested by Alejandro. > >> > * Avoided emboldening parens as suggested by Alejandro. > >> > * One very minor grammatical fix. > >> > https://lore.kernel.org/all/20241129155943.85215-1-lorenzo.stoakes@xxxxxxxxxx > >> > > >> > v1: > >> > https://lore.kernel.org/all/20241129093205.8664-1-lorenzo.stoakes@xxxxxxxxxx > >> > > >> > man/man2/madvise.2 | 93 ++++++++++++++++++++++++++++++++++++++++++++++ > >> > 1 file changed, 93 insertions(+) > >> > > >> > diff --git a/man/man2/madvise.2 b/man/man2/madvise.2 > >> > index 4f2210ee2..7d682fa40 100644 > >> > --- a/man/man2/madvise.2 > >> > +++ b/man/man2/madvise.2 > >> > @@ -676,6 +676,91 @@ or secret memory regions created using > >> > Note that with > >> > .BR MADV_POPULATE_WRITE , > >> > the process can be killed at any moment when the system runs out of memory. > >> > +.TP > >> > +.BR MADV_GUARD_INSTALL " (since Linux 6.13)" > >> > +Install a lightweight guard region into the range specified by > >> > +.I addr > >> > +and > >> > +.IR size , > >> > +causing any read or write in the range to result in a > >> > +.B SIGSEGV > >> > +signal being raised. > >> > +.IP > >> > +If the region maps memory pages they will be cleared as part of the operation, > >> > +though if > >> > >> Hm this reads a bit ambiguous. One could read it as the memory pages are > >> being cleared, but it's the page tables. > > > > This was really hard to word, because you don't want to say unmapped, and saying > > 'clearing page tables' or 'zapping' is clear to us but not necessarily to a > > reader. 'Clearing mapping' makes it ambiguous vs. munmap(), etc. etc. > > Maybe saying "removed" instead of "cleared" would be better? I was about to put more philosophical points here then realised we already have a better solution... we can say 'the regions will become zero-fill-on-demand'. Let me respin a v5 with this corrected. We will need to revisit once we support file-backed pages. > > Anyway, I don't want to cause bikeshedding, so in any case: No it's appreciated! Review should be critical so we can make this as good as we can make it. > > Reviewed-by: Vlastimil Babka <vbabka@xxxxxxx> Thanks! > > > But you want to make it clear (no pun intended) that anon pages, if there's any > > data, it's probably lost. So I think this is a distinction that doesn't matter. > > > > Will revisit once we support file-backed mappings. > >