Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752504AbcDBTSl (ORCPT ); Sat, 2 Apr 2016 15:18:41 -0400 Received: from mail-lb0-f194.google.com ([209.85.217.194]:35222 "EHLO mail-lb0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752378AbcDBTSi (ORCPT ); Sat, 2 Apr 2016 15:18:38 -0400 From: Piotr Kwapulinski To: akpm@linux-foundation.org Cc: mhocko@suse.com, mtk.manpages@gmail.com, cmetcalf@mellanox.com, arnd@arndb.de, viro@zeniv.linux.org.uk, mszeredi@suse.cz, dave@stgolabs.net, kirill.shutemov@linux.intel.com, vbabka@suse.cz, mingo@kernel.org, dan.j.williams@intel.com, dave.hansen@linux.intel.com, koct9i@gmail.com, hannes@cmpxchg.org, jack@suse.cz, xiexiuqi@huawei.com, iamjoonsoo.kim@lge.com, oleg@redhat.com, gang.chen.5i5j@gmail.com, aarcange@redhat.com, aryabinin@virtuozzo.com, rientjes@google.com, denc716@gmail.com, toshi.kani@hpe.com, ldufour@linux.vnet.ibm.com, kuleshovmail@gmail.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, Piotr Kwapulinski Subject: [PATCH 3/3] man/mremap.2: don't unmap the overlapping VMA(s) Date: Sat, 2 Apr 2016 21:17:34 +0200 Message-Id: <1459624654-7955-4-git-send-email-kwapulinski.piotr@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1459624654-7955-1-git-send-email-kwapulinski.piotr@gmail.com> References: <1459624654-7955-1-git-send-email-kwapulinski.piotr@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2827 Lines: 108 mremap.2 man page update for MREAP_DONTUNMAP flag of mremap. Signed-off-by: Piotr Kwapulinski --- It should be considered to be merged only in case the patch "[PATCH 2/3] mm/mremap.c: don't unmap the overlapping VMA(s)" is merged. --- man2/mremap.2 | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/man2/mremap.2 b/man2/mremap.2 index e4998a4..978d509 100644 --- a/man2/mremap.2 +++ b/man2/mremap.2 @@ -27,7 +27,7 @@ .\" Update for Linux 1.3.87 and later .\" 2005-10-11 mtk: Added NOTES for MREMAP_FIXED; revised EINVAL text. .\" -.TH MREMAP 2 2015-12-05 "Linux" "Linux Programmer's Manual" +.TH MREMAP 2 2016-04-02 "Linux" "Linux Programmer's Manual" .SH NAME mremap \- remap a virtual memory address .SH SYNOPSIS @@ -104,7 +104,9 @@ accepts a fifth argument, .IR "void\ *new_address" , which specifies a page-aligned address to which the mapping must be moved. -Any previous mapping at the address range specified by +If +.B MREMAP_DONTUNMAP +is not set then any previous mapping at the address range specified by .I new_address and .I new_size @@ -114,6 +116,30 @@ If is specified, then .B MREMAP_MAYMOVE must also be specified. +.TP +.BR MREMAP_DONTUNMAP " (since Linux 4.6)" +This flag is similar to +.B MAP_DONTUNMAP +flag of +.BR mmap (2). +If this flag and +.B MREMAP_FIXED +are set and the memory region specified by +.I new_address +and +.I new_size +overlaps pages of any existing mapping(s), then the +.BR mremap () +will fail with +.BR ENOMEM . +No existing mapping(s) will be discarded. If +.B MREMAP_DONTUNMAP +is specified, then +.B MREMAP_FIXED +must also be specified. + +Note: currently, this flag is not implemented in the glibc wrapper. +Use the numerical value 4, if you want to use it. .PP If the memory segment specified by .I old_address @@ -156,8 +182,9 @@ page aligned; a value other than .B MREMAP_MAYMOVE or .B MREMAP_FIXED -was specified in -.IR flags ; +or +.B MREMAP_DONTUNMAP +was specified in \fIflags\fP; .I new_size was zero; .I new_size @@ -175,13 +202,26 @@ and or .B MREMAP_FIXED was specified without also specifying -.BR MREMAP_MAYMOVE . +.BR MREMAP_MAYMOVE ; +or +.B MREMAP_DONTUNMAP +was specified without also specifying +.BR MREMAP_FIXED . .TP .B ENOMEM The memory area cannot be expanded at the current virtual address, and the .B MREMAP_MAYMOVE flag is not set in \fIflags\fP. Or, there is not enough (virtual) memory available. +Or, both the +.B MREMAP_FIXED +and +.B MREMAP_DONTUNMAP +flags are set and the memory region specified by +.I new_address +and +.I new_size +overlaps pages of any existing mapping(s). .SH CONFORMING TO This call is Linux-specific, and should not be used in programs intended to be portable. -- 2.7.4