From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Williams Subject: Re: [PATCH v5 3/5] mm: introduce mmap3 for safely defining new mmap flags Date: Wed, 16 Aug 2017 09:35:11 -0700 Message-ID: References: <150286944610.8837.9513410258028246174.stgit@dwillia2-desk3.amr.corp.intel.com> <150286946261.8837.1454297295346610351.stgit@dwillia2-desk3.amr.corp.intel.com> <20170816111541.6c4ulnipt5cxgfsb@node.shutemov.name> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Return-path: In-Reply-To: <20170816111541.6c4ulnipt5cxgfsb@node.shutemov.name> Sender: linux-kernel-owner@vger.kernel.org To: "Kirill A. Shutemov" Cc: Andrew Morton , Jan Kara , Arnd Bergmann , "linux-nvdimm@lists.01.org" , Linux API , "linux-kernel@vger.kernel.org" , linux-xfs@vger.kernel.org, Linux MM , Andy Lutomirski , linux-fsdevel List-Id: linux-api@vger.kernel.org On Wed, Aug 16, 2017 at 4:15 AM, Kirill A. Shutemov wrote: > On Wed, Aug 16, 2017 at 12:44:22AM -0700, Dan Williams wrote: >> diff --git a/include/linux/mman.h b/include/linux/mman.h >> index c8367041fafd..0e1de42c836f 100644 >> --- a/include/linux/mman.h >> +++ b/include/linux/mman.h >> @@ -7,6 +7,40 @@ >> #include >> #include >> >> +#ifndef MAP_32BIT >> +#define MAP_32BIT 0 >> +#endif >> +#ifndef MAP_HUGE_2MB >> +#define MAP_HUGE_2MB 0 >> +#endif >> +#ifndef MAP_HUGE_1GB >> +#define MAP_HUGE_1GB 0 >> +#endif >> + >> +/* >> + * The historical set of flags that all mmap implementations implicitly >> + * support when file_operations.mmap_supported_mask is zero. >> + */ >> +#define LEGACY_MAP_SUPPORTED_MASK (MAP_SHARED \ >> + | MAP_PRIVATE \ >> + | MAP_FIXED \ >> + | MAP_ANONYMOUS \ >> + | MAP_UNINITIALIZED \ >> + | MAP_GROWSDOWN \ >> + | MAP_DENYWRITE \ >> + | MAP_EXECUTABLE \ >> + | MAP_LOCKED \ >> + | MAP_NORESERVE \ >> + | MAP_POPULATE \ >> + | MAP_NONBLOCK \ >> + | MAP_STACK \ >> + | MAP_HUGETLB \ >> + | MAP_32BIT \ >> + | MAP_HUGE_2MB \ >> + | MAP_HUGE_1GB) >> + >> +#define MAP_SUPPORTED_MASK (LEGACY_MAP_SUPPORTED_MASK) >> + >> extern int sysctl_overcommit_memory; >> extern int sysctl_overcommit_ratio; >> extern unsigned long sysctl_overcommit_kbytes; > > Since we looking into mmap(2) ABI, maybe we should consider re-defining > MAP_DENYWRITE and MAP_EXECUTABLE as 0 in hope that we would be able to > re-use these bits in the future? These flags are ignored now anyway. Yes, we can make these -EOPNOTSUPP in the new syscall.