Re: [PATCH 0/2] mm,fork,security: introduce MADV_WIPEONFORK

From: Rik van Riel
Date: Sat Aug 05 2017 - 11:21:53 EST


On Sat, 2017-08-05 at 02:44 +0300, Kirill A. Shutemov wrote:
> On Fri, Aug 04, 2017 at 03:07:28PM -0400, riel@xxxxxxxxxx wrote:
> > [resend because half the recipients got dropped due to IPv6
> > firewall issues]
> >
> > Introduce MADV_WIPEONFORK semantics, which result in a VMA being
> > empty in the child process after fork. This differs from
> > MADV_DONTFORK
> > in one important way.
> >
> > If a child process accesses memory that was MADV_WIPEONFORK, it
> > will get zeroes. The address ranges are still valid, they are just
> > empty.
>
> I feel like we are repeating mistake we made with MADV_DONTNEED.
>
> MADV_WIPEONFORK would require a specific action from kernel, ignoring
> the /advise/ would likely lead to application misbehaviour.
>
> Is it something we really want to see from madvise()?

We already have various mandatory madvise behaviors in Linux,
including MADV_REMOVE, MADV_DONTFORK, and MADV_DONTDUMP.