From: "Mike Frysinger" <vapier.adi@gmail.com>
To: "Bernd Schmidt" <bernds_cb1@t-online.de>
Cc: "David Howells" <dhowells@redhat.com>,
"Greg Ungerer" <gerg@snapgear.com>,
"David McCullough" <David_Mccullough@securecomputing.com>,
LKML <linux-kernel@vger.kernel.org>,
"Bryan Wu" <Bryan.Wu@analog.com>,
"Robin Getz" <rgetz@blackfin.uclinux.org>
Subject: Re: nommu: handling anonymous mmap clearing in userspace rather than kernel
Date: Wed, 2 Apr 2008 11:07:11 -0400 [thread overview]
Message-ID: <8bd0f97a0804020807o21f69b7due910563b9dad03e8@mail.gmail.com> (raw)
In-Reply-To: <47F3A02B.5070302@t-online.de>
On Wed, Apr 2, 2008 at 11:03 AM, Bernd Schmidt <bernds_cb1@t-online.de> wrote:
> Mike Frysinger wrote:
> > On Wed, Apr 2, 2008 at 10:20 AM, David Howells <dhowells@redhat.com>
> > > Mike Frysinger <vapier.adi@gmail.com> wrote:
> > > > a workaround: introduce a new no-mmu-only mmap flag MAP_UNINITIALIZE
> > > > to signal to the kernel that it should skip the memset(). this way,
> > > > userspace malloc() can do mmap(MAP_ANONYMOUS|MAP_UNINITIALIZE) to get
> > > > large chunks of memory without affecting any other anonymous mmap()
> > > > call.
> > >
> > > I think that's reasonable for NOMMU. It's not like the process
> accessing the
> > > uninitialised memory is prevented from accessing anything it wants to
> anyway.
> > >
> > > I would vote that the memset() should only be skipped if requested as
> there
> > > may be programs that call mmap(MAP_ANONYMOUS) expecting the memory
> they're
> > > given to be zeroed out.
> >
> > in the second proposal, the C library would be expected to do this, so
> > no programs would be broken. but you're right that any program that
> > invokes the mmap() syscall directly would not get zeroed memory ...
> > but is anyone doing such a crazy thing, let alone on embedded ?
>
> It's not a guarantee we should break. What's wrong with just using the
> MAP_UNINITIALIZE code we have?
i outlined the benefits of doing it in userspace in my first e-mail.
i also expected MAP_UNINITIALIZE to be unacceptable to LKML. and
afaik, there doesnt seem to be a way to distinguish in the kernel
whether the call is coming from userspace or kernel space, so the
memset() call will still be called for the kernel. ideally the code
would read:
if (!kernel && !(flags & MAP_UNINITIALIZE))
memset(base, 0, len);
-mike
next prev parent reply other threads:[~2008-04-02 15:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-01 21:34 Mike Frysinger
2008-04-02 14:20 ` David Howells
2008-04-02 14:47 ` Mike Frysinger
2008-04-02 15:03 ` Bernd Schmidt
2008-04-02 15:07 ` Mike Frysinger [this message]
2008-04-03 11:06 ` Bernd Schmidt
2008-04-03 14:46 ` Mike Frysinger
2008-04-03 13:14 ` David Howells
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=8bd0f97a0804020807o21f69b7due910563b9dad03e8@mail.gmail.com \
--to=vapier.adi@gmail.com \
--cc=Bryan.Wu@analog.com \
--cc=David_Mccullough@securecomputing.com \
--cc=bernds_cb1@t-online.de \
--cc=dhowells@redhat.com \
--cc=gerg@snapgear.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rgetz@blackfin.uclinux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome