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

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

From: Michael Ellerman <hidden>
Date: 2017-12-07 05:46:17
Also in: linux-arch, linux-mm, lkml

Matthew Wilcox [off-list ref] writes:
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.
MAP_REQUIRED doesn't immediately grab me, but I don't actively dislike
it either :)

What about MAP_AT_ADDR ?

It's short, and says what it does on the tin. The first argument to mmap
is actually called "addr" too.

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help