On 07/21/2015 05:41 PM, David Rientjes wrote:
munmap(2) will fail with an errno of EINVAL for hugetlb memory if the
length is not a multiple of the underlying page size.
Documentation/vm/hugetlbpage.txt was updated to specify this behavior
since Linux 4.1 in commit 80d6b94bd69a ("mm, doc: cleanup and clarify
munmap behavior for hugetlb memory").
Signed-off-by: David Rientjes <rient...@google.com>
---
man2/mmap.2 | 4 ++++
1 file changed, 4 insertions(+)
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
--
Should we also add a similar comment for the mmap offset? Currently
the man page says:
"offset must be a multiple of the page size as returned by
sysconf(_SC_PAGE_SIZE)."
For hugetlbfs, I beieve the offset must be a multiple of the
hugetlb page size. A similar comment/exception about using
the "underlying page size" would apply here as well.
--
Mike Kravetz
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/