Commit 80d6b94b authored by David Rientjes's avatar David Rientjes Committed by Linus Torvalds

mm, doc: cleanup and clarify munmap behavior for hugetlb memory

munmap(2) of hugetlb memory requires a length that is hugepage aligned,
otherwise it may fail.  Add this to the documentation.

This also cleans up the documentation and separates it into logical units:
one part refers to MAP_HUGETLB and another part refers to requirements for
shared memory segments.
Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Davide Libenzi <davidel@xmailserver.org>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Acked-by: default avatarHugh Dickins <hughd@google.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Joern Engel <joern@logfs.org>
Cc: Jianguo Wu <wujianguo@huawei.com>
Cc: Eric B Munson <emunson@akamai.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ae7efa50
...@@ -302,15 +302,23 @@ file systems, write system calls are not. ...@@ -302,15 +302,23 @@ file systems, write system calls are not.
Regular chown, chgrp, and chmod commands (with right permissions) could be Regular chown, chgrp, and chmod commands (with right permissions) could be
used to change the file attributes on hugetlbfs. used to change the file attributes on hugetlbfs.
Also, it is important to note that no such mount command is required if the Also, it is important to note that no such mount command is required if
applications are going to use only shmat/shmget system calls or mmap with applications are going to use only shmat/shmget system calls or mmap with
MAP_HUGETLB. Users who wish to use hugetlb page via shared memory segment MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see map_hugetlb
should be a member of a supplementary group and system admin needs to below.
configure that gid into /proc/sys/vm/hugetlb_shm_group. It is possible for
same or different applications to use any combination of mmaps and shm* Users who wish to use hugetlb memory via shared memory segment should be a
calls, though the mount of filesystem will be required for using mmap calls member of a supplementary group and system admin needs to configure that gid
without MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see into /proc/sys/vm/hugetlb_shm_group. It is possible for same or different
map_hugetlb.c. applications to use any combination of mmaps and shm* calls, though the mount of
filesystem will be required for using mmap calls without MAP_HUGETLB.
Syscalls that operate on memory backed by hugetlb pages only have their lengths
aligned to the native page size of the processor; they will normally fail with
errno set to EINVAL or exclude hugetlb pages that extend beyond the length if
not hugepage aligned. For example, munmap(2) will fail if memory is backed by
a hugetlb page and the length is smaller than the hugepage size.
Examples Examples
======== ========
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment