Re: nommu: handling anonymous mmap clearing in userspace rather than kernel

From: Mike Frysinger
Date: Thu Apr 03 2008 - 10:47:20 EST


On Thu, Apr 3, 2008 at 7:06 AM, Bernd Schmidt <bernds_cb1@xxxxxxxxxxx> wrote:
> Mike Frysinger wrote:
> > 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);
> >
>
> Have you examined all callers in the kernel whether they can take
> uninitialized memory?

if they cant, they're broken, and need to get fixed. i see these
crashes then as a good thing :).

> (Your code doesn't match your description btw, so I'm
> only guessing what you actually want to achieve.)

doesnt it ? the memset should only be called for userspace when it
hasnt given the uninitialize flag. if it's kernel space, we want to
skip it. if the uninitialize flag is given, we want to skip it.

> Really, if MAP_UNINITIALIZE is unacceptable, then that's too bad and we'll
> carry it as a local patch, but all the other proposed mechanisms are
> non-solutions because they break an established interface.

i'm just airing out the different solutions so people get a better
idea of what's going on. i dont think the userspace <-> kernelspace
breakage is important, as the ABI is maintained at the important
layer: user application <-> C library.
-mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/