Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752786AbdLFHEA (ORCPT ); Wed, 6 Dec 2017 02:04:00 -0500 Received: from bombadil.infradead.org ([65.50.211.133]:57905 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752182AbdLFHD6 (ORCPT ); Wed, 6 Dec 2017 02:03:58 -0500 Date: Tue, 5 Dec 2017 23:03:55 -0800 From: Matthew Wilcox To: Michael Ellerman Cc: Cyril Hrubis , Michal Hocko , Kees Cook , Linux API , Khalid Aziz , Andrew Morton , Russell King - ARM Linux , Andrea Arcangeli , Linux-MM , LKML , linux-arch , Florian Weimer , John Hubbard , Abdul Haleem , Joel Stanley Subject: Re: [PATCH 0/2] mm: introduce MAP_FIXED_SAFE Message-ID: <20171206070355.GA32044@bombadil.infradead.org> References: <20171129144219.22867-1-mhocko@kernel.org> <20171130065835.dbw4ajh5q5whikhf@dhcp22.suse.cz> <20171201152640.GA3765@rei> <87wp20e9wf.fsf@concordia.ellerman.id.au> <20171206045433.GQ26021@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171206045433.GQ26021@bombadil.infradead.org> User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1849 Lines: 45 On Tue, Dec 05, 2017 at 08:54:35PM -0800, Matthew Wilcox wrote: > On Wed, Dec 06, 2017 at 03:51:44PM +1100, Michael Ellerman wrote: > > Cyril Hrubis writes: > > > > > Hi! > > >> > MAP_FIXED_UNIQUE > > >> > MAP_FIXED_ONCE > > >> > MAP_FIXED_FRESH > > >> > > >> Well, I can open a poll for the best name, but none of those you are > > >> proposing sound much better to me. Yeah, naming sucks... > > > > > > Given that MAP_FIXED replaces the previous mapping MAP_FIXED_NOREPLACE > > > would probably be a best fit. > > > > Yeah that could work. > > > > I prefer "no clobber" as I just suggested, because the existing > > MAP_FIXED doesn't politely "replace" a mapping, it destroys the current > > one - which you or another thread may be using - and clobbers it with > > the new one. > > It's longer than MAP_FIXED_WEAK :-P > > You'd have to be pretty darn strong to clobber an existing mapping. I think we're thinking about this all wrong. We shouldn't document it as "This is a variant of MAP_FIXED". We should document it as "Here's an alternative to MAP_FIXED". So, just like we currently say "exactly one of MAP_SHARED or MAP_PRIVATE", we could add a new paragraph saying "at most one of MAP_FIXED or MAP_REQUIRED" and "any of the following values". Now, we should implement MAP_REQUIRED as having each architecture define _MAP_NOT_A_HINT, and then #define MAP_REQUIRED (MAP_FIXED | _MAP_NOT_A_HINT), but that's not information to confuse users with. Also, that lets us add a third option at some point that is Yet Another Way to interpret the 'addr' argument, by having MAP_FIXED clear and _MAP_NOT_A_HINT set. I'm not set on MAP_REQUIRED. I came up with some awful names (MAP_TODDLER, MAP_TANTRUM, MAP_ULTIMATUM, MAP_BOSS, MAP_PROGRAM_MANAGER, etc). But I think we should drop FIXED from the middle of the name.