mirror of https://github.com/mkerrisk/man-pages
madvise.2: Add MADV_HUGEPAGE and MADV_NOHUGEPAGE
Document the MADV_HUGEPAGE and MADV_NOHUGEPAGE flags added to madvise() in Linux 2.6.38. Signed-off-by: Doug Goldstein <cardoe@cardoe.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
7f98857ab9
commit
e8dd3ed2f1
|
@ -211,6 +211,40 @@ KSM unmerges whatever pages it had merged in the address range specified by
|
|||
.IR addr
|
||||
and
|
||||
.IR length .
|
||||
.TP
|
||||
.BR MADV_HUGEPAGE " (since Linux 2.6.38)"
|
||||
Enables Transparent Huge Pages (THP) for pages in the range specified by
|
||||
.I addr
|
||||
and
|
||||
.IR length .
|
||||
Currently Transparent Huge Pages only work with private anonymous pages (see
|
||||
.BR mmap (2)).
|
||||
The kernel will regularly scan the areas marked as huge page candidates
|
||||
to replace them with huge pages.
|
||||
The kernel will also allocate huge pages directly when the region is
|
||||
naturally aligned to the huge page size. (see
|
||||
.BR posix_memalign (2)).
|
||||
This feature is primarily aimmed at applications that use large mappings of
|
||||
data and access large regions of that memory at a time (e.g. virtualization
|
||||
systems such as qemu).
|
||||
It can very easily waste memory (e.g. a 2MB mapping that only ever accesses
|
||||
1 byte will result in 2MB of wired memory instead of one 4KB page).
|
||||
See the kernel source file
|
||||
.I Documentation/vm/transhuge.txt
|
||||
for more details.
|
||||
The
|
||||
.BR MADV_HUGEPAGE
|
||||
and
|
||||
.BR MADV_NOHUGEPAGE
|
||||
operations are only available if the kernel was configured with
|
||||
.BR CONFIG_TRANSPARENT_HUGEPAGE.
|
||||
.TP
|
||||
.BR MADV_NOHUGEPAGE " (since Linux 2.6.38)"
|
||||
Ensures that memory in the address range specified by
|
||||
.IR addr
|
||||
and
|
||||
.IR length
|
||||
will not be collapsed into huge pages.
|
||||
.SH "RETURN VALUE"
|
||||
On success
|
||||
.BR madvise ()
|
||||
|
|
Loading…
Reference in New Issue