From: Michal Hocko <mhocko@xxxxxxxx> 4.16+ kernels offer a new MAP_FIXED_SAFE flag which allows to atomicaly probe for a given address range. Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> --- man2/mmap.2 | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/man2/mmap.2 b/man2/mmap.2 index 385f3bfd5393..622a7000de83 100644 --- a/man2/mmap.2 +++ b/man2/mmap.2 @@ -225,6 +225,18 @@ will fail. Because requiring a fixed address for a mapping is less portable, the use of this option is discouraged. .TP +.B MAP_FIXED_SAFE (since 4.16) +Similar to MAP_FIXED wrt. to the +.I +addr +enforcement except it never clobbers a colliding mapped range and rather fail with +.B EEXIST +in such a case. This flag can therefore be used as a safe and atomic probe for the +the specific address range. Please note that older kernels which do not recognize +this flag can fallback to the hint based implementation and map to a different +location. Any backward compatible software should therefore check the returning +address with the given one. +.TP .B MAP_GROWSDOWN This flag is used for stacks. It indicates to the kernel virtual memory system that the mapping @@ -449,6 +461,12 @@ is not a valid file descriptor (and .B MAP_ANONYMOUS was not set). .TP +.B EEXIST +range covered by +.IR addr , +.IR length +is clashing with an existing mapping. +.TP .B EINVAL We don't like .IR addr , -- 2.15.0