Re: [PATCH] lazy freeing of memory through MADV_FREE 2/2

Hugh Dickins
2007-04-21T07:37:14Z

On Fri, 20 Apr 2007, Ulrich Drepper wrote:
>
> Just for reference: the MADV_CURRENT behavior is to throw away data in
> the range.

Not exactly. The Linux MADV_DONTNEED never throws away data from a
PROT_WRITE,MAP_SHARED mapping (or shm) - it propagates the dirty bit,
the page will eventually get written out to file, and can be retrieved
later by subsequent access. But the Linux MADV_DONTNEED does throw away
data from a PROT_WRITE,MAP_PRIVATE mapping (or brk or stack) - those
changes are discarded, and a subsequent access will revert to zeroes
or the underlying mapped file. Been like that since before 2.4.0.

> The POSIX_MADV_DONTNEED behavior is to never lose data.
> I.e., file backed data is written back, anon data is at most swapped
> out.