Thread (44 messages) 44 messages, 11 authors, 2017-12-08

Re: [PATCH 0/2] mm: introduce MAP_FIXED_SAFE

From: John Hubbard <jhubbard@nvidia.com>
Date: 2017-12-06 07:34:02
Also in: linux-arch, linux-mm, lkml

On 12/05/2017 11:03 PM, Matthew Wilcox wrote:
On Tue, Dec 05, 2017 at 08:54:35PM -0800, Matthew Wilcox wrote:
quoted
On Wed, Dec 06, 2017 at 03:51:44PM +1100, Michael Ellerman wrote:
quoted
Cyril Hrubis [off-list ref] writes:
quoted
Hi!
quoted
quoted
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.
In that case, maybe:

    MAP_EXACT

? ...because that's the characteristic behavior. It doesn't clobber, but
you don't need to say that in the name, now that we're not including
_FIXED_ in the middle.

thanks,
John Hubbard
NVIDIA    
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help