Bug 97511 - Document vm.overcommit_memory=2 interaction with mmap/mprotect/madvise
Summary: Document vm.overcommit_memory=2 interaction with mmap/mprotect/madvise
Status: NEW
Alias: None
Product: Documentation
Classification: Unclassified
Component: man-pages (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: documentation_man-pages@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-29 15:15 UTC by Florian Weimer
Modified: 2015-04-29 15:15 UTC (History)
0 users

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Florian Weimer 2015-04-29 15:15:29 UTC
For mmap and MAP_NORESERVE:

In vm.overcommit_memory=2, private mappings still count towards the commit limit, despite what the flag name might imply.

For mmap and PROT_NONE:

Mappings created with this protection flag do not count towards the commit limit in vm.overcommit_memory=2 mode.  mprotect can subsequently be used to change the flags of (parts of) the mapping, to allocate memory as needed, at which point mprotect may fail with ENOMEM.

For mprotect and madvise:

mprotect/madvise cannot be used to mark a previously allocated memory region as unallocated, but reserved, and not have it count towards the vm.overcommit_memory=2 limit.  Instead, use mmap with MAP_FIXED and a PROT_NONE memory area, which will mark the region as unused.

Note You need to log in before you can comment on or make changes to this bug.