From: Matthew Wilcox Subject: Re: [PATCH 01/18] mm: introduce MAP_SHARED_VALIDATE, a mechanism to safely define new mmap flags Date: Wed, 22 Nov 2017 11:53:18 -0800 Message-ID: <20171122195318.GA29485@bombadil.infradead.org> References: <20171101153648.30166-1-jack@suse.cz> <20171101153648.30166-2-jack@suse.cz> <638b3b80-5cb9-97c2-5055-fef3a1ec25b9@suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Florian Weimer , linux-xfs , Jan Kara , Kees Cook , Arnd Bergmann , "linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org" , Linux API , "Darrick J . Wong" , linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Michal Hocko , Christoph Hellwig , Linux MM , "Kirill A. Shutemov" , Andy Lutomirski , John Hubbard , linux-fsdevel , linux-ext4 , Andrew Morton , Vlastimil Babka To: Dan Williams Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-nvdimm-bounces-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org Sender: "Linux-nvdimm" List-Id: linux-ext4.vger.kernel.org On Wed, Nov 22, 2017 at 08:52:37AM -0800, Dan Williams wrote: > On Wed, Nov 22, 2017 at 4:02 AM, Vlastimil Babka wrote: > > On 11/01/2017 04:36 PM, Jan Kara wrote: > >> From: Dan Williams > >> > >> The mmap(2) syscall suffers from the ABI anti-pattern of not validating > >> unknown flags. However, proposals like MAP_SYNC need a mechanism to > >> define new behavior that is known to fail on older kernels without the > >> support. Define a new MAP_SHARED_VALIDATE flag pattern that is > >> guaranteed to fail on all legacy mmap implementations. > > > > So I'm trying to make sense of this together with Michal's attempt for > > MAP_FIXED_SAFE [1] where he has to introduce a completely new flag > > instead of flag modifier exactly for the reason of not validating > > unknown flags. And my conclusion is that because MAP_SHARED_VALIDATE > > implies MAP_SHARED and excludes MAP_PRIVATE, MAP_FIXED_SAFE as a > > modifier cannot build on top of this. Wouldn't thus it be really better > > long-term to introduce mmap3 at this point? ... > > We have room to define MAP_PRIVATE_VALIDATE in MAP_TYPE on every arch > except parisc. Can we steal an extra bit for MAP_TYPE from somewhere > else on parisc? It looks like 0x08 should work. But I don't have an HPUX machine around to check that HP didn't use that bit for something else. It'd probably help to cc the linux-parisc mailing list when asking questions about PARISC, eh?