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>
This commit is contained in:
parent
ae7efa507d
commit
80d6b94bd6
@ -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
|
||||||
========
|
========
|
||||||
|
Loading…
Reference in New Issue
Block a user