aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorDavid Rientjes <rientjes@google.com>2015-04-15 19:14:26 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-15 19:35:19 -0400
commit80d6b94bd69a7a49b52bf503ef6a841f43cf5bbb (patch)
treeae701bac5add788e58774bb009f3a335e072eee2 /Documentation
parentae7efa507dee4813ec4bcdadebeec191e247d0c9 (diff)
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: David 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: Hugh 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/vm/hugetlbpage.txt24
1 files changed, 16 insertions, 8 deletions
diff --git a/Documentation/vm/hugetlbpage.txt b/Documentation/vm/hugetlbpage.txt
index b32b9cd50c0e..030977fb8d2d 100644
--- a/Documentation/vm/hugetlbpage.txt
+++ b/Documentation/vm/hugetlbpage.txt
@@ -302,15 +302,23 @@ file systems, write system calls are not.
302Regular chown, chgrp, and chmod commands (with right permissions) could be 302Regular chown, chgrp, and chmod commands (with right permissions) could be
303used to change the file attributes on hugetlbfs. 303used to change the file attributes on hugetlbfs.
304 304
305Also, it is important to note that no such mount command is required if the 305Also, it is important to note that no such mount command is required if
306applications are going to use only shmat/shmget system calls or mmap with 306applications are going to use only shmat/shmget system calls or mmap with
307MAP_HUGETLB. Users who wish to use hugetlb page via shared memory segment 307MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see map_hugetlb
308should be a member of a supplementary group and system admin needs to 308below.
309configure that gid into /proc/sys/vm/hugetlb_shm_group. It is possible for 309
310same or different applications to use any combination of mmaps and shm* 310Users who wish to use hugetlb memory via shared memory segment should be a
311calls, though the mount of filesystem will be required for using mmap calls 311member of a supplementary group and system admin needs to configure that gid
312without MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see 312into /proc/sys/vm/hugetlb_shm_group. It is possible for same or different
313map_hugetlb.c. 313applications to use any combination of mmaps and shm* calls, though the mount of
314filesystem will be required for using mmap calls without MAP_HUGETLB.
315
316Syscalls that operate on memory backed by hugetlb pages only have their lengths
317aligned to the native page size of the processor; they will normally fail with
318errno set to EINVAL or exclude hugetlb pages that extend beyond the length if
319not hugepage aligned. For example, munmap(2) will fail if memory is backed by
320a hugetlb page and the length is smaller than the hugepage size.
321
314 322
315Examples 323Examples
316======== 324========