linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: linux-mm@kvack.org, kosaki.motohiro@jp.fujitsu.com,
	linux-kernel@vger.kernel.org, linux-api@vger.kernel.org,
	akpm@linux-foundation.org, andrew.c.morrow@gmail.com,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: Re: [PATCH v6] add MAP_UNLOCKED mmap flag
Date: Mon, 18 Jan 2010 16:19:38 +0200	[thread overview]
Message-ID: <20100118141938.GI30698@redhat.com> (raw)
In-Reply-To: <84144f021001180609r4d7fbbd0p972d5bc0e227d09a@mail.gmail.com>

On Mon, Jan 18, 2010 at 04:09:35PM +0200, Pekka Enberg wrote:
> Hi Gleb,
> 
> On Mon, Jan 18, 2010 at 3:37 PM, Gleb Natapov <gleb@redhat.com> wrote:
> > The current interaction between mlockall(MCL_FUTURE) and mmap has a
> > deficiency. In 'normal' mode, without MCL_FUTURE in force, the default
> > is that new memory mappings are not locked, but mmap provides MAP_LOCKED
> > specifically to override that default. However, with MCL_FUTURE toggled
> > to on, there is no analogous way to tell mmap to override the default. The
> > proposed MAP_UNLOCKED flag would resolve this deficiency.
> >
> > The benefit of the patch is that it makes it possible for an application
> > which has previously called mlockall(MCL_FUTURE) to selectively exempt
> > new memory mappings from memory locking, on a per-mmap-call basis. There
> > is currently no thread-safe way for an application to do this as
> > toggling MCL_FUTURE around calls to mmap is racy in a multi-threaded
> > context. Other threads may manipulate the address space during the
> > window where MCL_FUTURE is off, subverting the programmers intended
> > memory locking semantics.
> >
> > The ability to exempt specific memory mappings from memory locking is
> > necessary when the region to be mapped is larger than physical memory.
> > In such cases a call to mmap the region cannot succeed, unless
> > MAP_UNLOCKED is available.
> 
> The changelog doesn't mention what kind of applications would want to
> use this. Are there some? Using mlockall(MCL_FUTURE) but then having
> some memory regions MAP_UNLOCKED sounds like a strange combination to
> me.
The specific use cases were discussed in the thread following previous
version of the patch. I can describe my specific use case in a change log
and I can copy what Andrew said about his case, but is it really needed in
a commit message itself? It boils down to greater control over when and
where application can get major fault. There are applications that need
this kind of control. As of use of mlockall(MCL_FUTURE) how can I make
sure that all memory allocated behind my application's back (by dynamic
linker, libraries, stack) will be locked otherwise?


--
			Gleb.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-01-18 14:19 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-18 13:37 [PATCH v6] add MAP_UNLOCKED mmap flag Gleb Natapov
     [not found] ` <20100118133755.GG30698-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-01-18 14:09   ` Pekka Enberg
2010-01-18 14:19     ` Gleb Natapov [this message]
2010-01-18 14:32       ` Alan Cox
2010-01-18 14:35         ` Gleb Natapov
2010-01-18 14:49         ` Peter Zijlstra
2010-01-18 15:01           ` Gleb Natapov
2010-01-18 15:06             ` Peter Zijlstra
2010-01-18 15:11               ` Avi Kivity
2010-01-18 15:14                 ` Peter Zijlstra
2010-01-18 15:19                   ` Avi Kivity
     [not found]                     ` <4B547C09.8010906-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-01-18 15:24                       ` Peter Zijlstra
2010-01-18 15:41                         ` Alan Cox
2010-01-18 15:44                           ` Peter Zijlstra
2010-01-18 17:11                   ` Gleb Natapov
2010-01-18 15:14               ` Gleb Natapov
2010-01-19  0:12                 ` KOSAKI Motohiro
2010-01-18 16:05       ` Pekka Enberg
2010-01-18 17:08         ` Gleb Natapov
2010-01-18 18:09           ` Pekka Enberg
2010-01-18 18:19             ` Gleb Natapov
2010-01-18 19:10               ` Alan Cox
2010-01-19  7:17                 ` Gleb Natapov
2010-01-19  7:37                   ` Pekka Enberg
2010-01-19  7:52                     ` Gleb Natapov
     [not found]                       ` <20100119075205.GI14345-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-01-19  8:07                         ` Pekka Enberg
2010-01-19  8:26                           ` Gleb Natapov
     [not found]                             ` <20100119082638.GK14345-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-01-19  8:44                               ` Pekka Enberg
2010-01-19 10:40                                 ` Gleb Natapov
     [not found]                                 ` <84144f021001190044s397c6665qb00af48235d2d818-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-01-19 12:48                                   ` Minchan Kim
2010-01-19 13:18                                     ` Pekka Enberg
2010-01-19 13:26                                       ` Gleb Natapov
2010-01-20  0:24                                 ` KOSAKI Motohiro
2010-01-19 11:54                       ` Alan Cox
2010-01-19 12:07                         ` Gleb Natapov
2010-01-19 13:21                           ` Alan Cox
2010-01-19 14:07                       ` Minchan Kim
2010-01-19 14:14                         ` Gleb Natapov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100118141938.GI30698@redhat.com \
    --to=gleb@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrew.c.morrow@gmail.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=penberg@cs.helsinki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).