All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Olivier Galibert <galibert@pobox.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linux-api@vger.kernel.org
Subject: Re: [PATCH][RFC] add MAP_UNLOCKED mmap flag
Date: Wed, 7 Oct 2009 22:47:18 +0200	[thread overview]
Message-ID: <20091007204718.GD19692@redhat.com> (raw)
In-Reply-To: <20091007201017.GC66690@dspnet.fr.eu.org>

On Wed, Oct 07, 2009 at 10:10:17PM +0200, Olivier Galibert wrote:
> On Wed, Oct 07, 2009 at 08:59:52PM +0200, Gleb Natapov wrote:
> > On Wed, Oct 07, 2009 at 08:50:54PM +0200, Olivier Galibert wrote:
> > > On Tue, Oct 06, 2009 at 02:16:03PM +0200, Gleb Natapov wrote:
> > > > I did. It allows me to achieve something I can't now. Steps you provide
> > > > just don't fit my needs. I need all memory areas (current and feature) to be
> > > > locked except one. Very big one. You propose to lock memory at some
> > > > arbitrary point and from that point on all newly mapped memory areas will
> > > > be unlocked. Don't you see it is different?
> > > 
> > > What about mlockall(MCL_CURRENT); mmap(...); mlockall(MCL_FUTURE);?
> > > Or toggle MCL_FUTURE if a mlockall call can stop it?
> > > 
> > This may work. And MCL_FUTURE can be toggled, but this is not thread
> > safe.
> 
> Just ensure that your one special mmap is done with the other threads
> not currently allocating stuff.  It's probably a synchronization point
> for the whole process anyway.
> 
How can you stop other threads and libraries from calling malloc()? And if
it is two special allocations? Or many mmap(big file)/munmap(big file)?
This is the same issue as opening file CLOEXEC atomically. Why not
prevent other thread from calling fork() instead of adding flags to
bunch of system calls.

--
			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>

WARNING: multiple messages have this Message-ID (diff)
From: Gleb Natapov <gleb@redhat.com>
To: Olivier Galibert <galibert@pobox.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linux-api@vger.kernel.org
Subject: Re: [PATCH][RFC] add MAP_UNLOCKED mmap flag
Date: Wed, 7 Oct 2009 22:47:18 +0200	[thread overview]
Message-ID: <20091007204718.GD19692@redhat.com> (raw)
In-Reply-To: <20091007201017.GC66690@dspnet.fr.eu.org>

On Wed, Oct 07, 2009 at 10:10:17PM +0200, Olivier Galibert wrote:
> On Wed, Oct 07, 2009 at 08:59:52PM +0200, Gleb Natapov wrote:
> > On Wed, Oct 07, 2009 at 08:50:54PM +0200, Olivier Galibert wrote:
> > > On Tue, Oct 06, 2009 at 02:16:03PM +0200, Gleb Natapov wrote:
> > > > I did. It allows me to achieve something I can't now. Steps you provide
> > > > just don't fit my needs. I need all memory areas (current and feature) to be
> > > > locked except one. Very big one. You propose to lock memory at some
> > > > arbitrary point and from that point on all newly mapped memory areas will
> > > > be unlocked. Don't you see it is different?
> > > 
> > > What about mlockall(MCL_CURRENT); mmap(...); mlockall(MCL_FUTURE);?
> > > Or toggle MCL_FUTURE if a mlockall call can stop it?
> > > 
> > This may work. And MCL_FUTURE can be toggled, but this is not thread
> > safe.
> 
> Just ensure that your one special mmap is done with the other threads
> not currently allocating stuff.  It's probably a synchronization point
> for the whole process anyway.
> 
How can you stop other threads and libraries from calling malloc()? And if
it is two special allocations? Or many mmap(big file)/munmap(big file)?
This is the same issue as opening file CLOEXEC atomically. Why not
prevent other thread from calling fork() instead of adding flags to
bunch of system calls.

--
			Gleb.

  reply	other threads:[~2009-10-07 20:47 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-06  9:51 [PATCH][RFC] add MAP_UNLOCKED mmap flag Gleb Natapov
2009-10-06  9:51 ` Gleb Natapov
2009-10-06 10:09 ` Frederik Deweerdt
2009-10-06 10:09   ` Frederik Deweerdt
2009-10-06 10:11 ` KOSAKI Motohiro
2009-10-06 10:11   ` KOSAKI Motohiro
2009-10-06 10:21   ` Gleb Natapov
2009-10-06 10:21     ` Gleb Natapov
2009-10-06 10:27     ` KOSAKI Motohiro
2009-10-06 10:27       ` KOSAKI Motohiro
2009-10-06 10:33       ` Gleb Natapov
2009-10-06 10:33         ` Gleb Natapov
2009-10-06 12:10         ` KOSAKI Motohiro
2009-10-06 12:10           ` KOSAKI Motohiro
2009-10-06 12:16           ` Gleb Natapov
2009-10-06 12:16             ` Gleb Natapov
2009-10-06 13:50             ` Peter Zijlstra
2009-10-06 13:50               ` Peter Zijlstra
2009-10-06 14:06               ` Gleb Natapov
2009-10-06 14:06                 ` Gleb Natapov
2009-10-07 18:50             ` Olivier Galibert
2009-10-07 18:50               ` Olivier Galibert
2009-10-07 18:59               ` Gleb Natapov
2009-10-07 18:59                 ` Gleb Natapov
2009-10-07 20:10                 ` Olivier Galibert
2009-10-07 20:10                   ` Olivier Galibert
2009-10-07 20:47                   ` Gleb Natapov [this message]
2009-10-07 20:47                     ` Gleb Natapov
2009-10-06 10:49 ` Arnd Bergmann
2009-10-06 11:00   ` Gleb Natapov
2009-10-06 11:00     ` 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=20091007204718.GD19692@redhat.com \
    --to=gleb@redhat.com \
    --cc=galibert@pobox.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.