lkml.org 
[lkml]   [2015]   [Jul]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch] mmap.2: document the munmap exception for underlying page size
On Wed, 22 Jul 2015, Michael Kerrisk (man-pages) wrote:

> > diff --git a/man2/mmap.2 b/man2/mmap.2
> > --- a/man2/mmap.2
> > +++ b/man2/mmap.2
> > @@ -383,6 +383,10 @@ All pages containing a part
> > of the indicated range are unmapped, and subsequent references
> > to these pages will generate
> > .BR SIGSEGV .
> > +An exception is when the underlying memory is not of the native page
> > +size, such as hugetlb page sizes, whereas
> > +.I length
> > +must be a multiple of the underlying page size.
> > It is not an error if the
> > indicated range does not contain any mapped pages.
> > .SS Timestamps changes for file-backed mappings
>
> I'm struggling a bit to understand your text. Is the point this:
>
> If we have a hugetlb area, then the munmap() length
> must be a multiple of the page size.
>
> ?
>

Of the hugetlb page size, yes, which was meant by the "underlying page
size" since we have configurable hugetlb sizes. This is different from
the native page size, whereas the length is rounded up to be page aligned
per POSIX.

> Are there any requirements about 'addr'? Must it also me huge-page-aligned?
>

Yes, so it looks like we need to fix up the reference to "address addr
must be a multiple of the page size" to something like "address addr must
be a multiple of the underlying page size" but I think the distinction
isn't explicit enough as I'd like it. I think it's better to explicitly
show the exception for hugetlb page sizes and compare the underlying page
size to the native page size to define how the behavior differs.

Would something like

An exception is when the underlying memory, such as hugetlb
memory, is not of the native page size: the address addr and
the length must be a multiple of the underlying page size.

suffice?

Also, is it typical to reference the commit of the documentation change
in the kernel source that defines this? I see this done with .\" blocks
for MAP_STACK in the same man page.


\
 
 \ /
  Last update: 2015-07-23 00:21    [W:0.459 / U:0.172 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site