From d8aeb42ded927d63d0ed83b8038a8c68b8002fc3 Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Thu, 12 Apr 2018 14:36:35 +0200 Subject: [PATCH] mmap.2: Add description of MAP_SHARED_VALIDATE and MAP_SYNC Reviewed-by: Ross Zwisler Signed-off-by: Jan Kara Signed-off-by: Michael Kerrisk --- man2/mmap.2 | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/man2/mmap.2 b/man2/mmap.2 index b195a4103..d9df750c1 100644 --- a/man2/mmap.2 +++ b/man2/mmap.2 @@ -126,6 +126,21 @@ are carried through to the underlying file. to the underlying file requires the use of .BR msync (2).) .TP +.BR MAP_SHARED_VALIDATE " (since Linux 4.15)" +The same as +.B MAP_SHARED +except that +.B MAP_SHARED +mappings ignore unknown flags in +.IR flags . +In contrast when creating mapping of +.B MAP_SHARED_VALIDATE +mapping type, the kernel verifies all passed flags are known and fails the +mapping with +.BR EOPNOTSUPP +otherwise. This mapping type is also required to be able to use some mapping +flags. +.TP .B MAP_PRIVATE Create a private copy-on-write mapping. Updates to the mapping are not visible to other processes @@ -416,6 +431,21 @@ support can later be transparently implemented for glibc. .\" "pthread_create() slow for many threads; also time to revisit 64b .\" context switch optimization?" .TP +.BR MAP_SYNC " (since Linux 4.15)" +This flags is available only with +.B MAP_SHARED_VALIDATE +mapping type. Mappings of +.B MAP_SHARED +type will silently ignore this flag. +This flag is supported only for files supporting DAX (direct mapping of persistent +memory). For other files, creating mapping with this flag results in +.B EOPNOTSUPP +error. Shared file mappings with this flag provide the guarantee that while +some memory is writeably mapped in the address space of the process, it will +be visible in the same file at the same offset even after the system crashes or +is rebooted. This allows users of such mappings to make data modifications +persistent in a more efficient way using appropriate CPU instructions. +.TP .BR MAP_UNINITIALIZED " (since Linux 2.6.33)" Don't clear anonymous pages. This flag is intended to improve performance on embedded devices.