Re: [Lhms-devel] [PATCH 0/7] Fragmentation Avoidance V19

Rob Landley
2005-11-03T05:42:43Z

On Wednesday 02 November 2005 23:26, Jeff Dike wrote:
> On Wed, Nov 02, 2005 at 05:28:35PM -0600, Rob Landley wrote:
> > With fragmentation reduction and prezeroing, UML suddenly gains the
> > option of calling madvise(DONT_NEED) on sufficiently large blocks as A) a
> > fast way of prezeroing, B) a way of giving memory back to the host OS
> > when it's not in use.
>
> DONT_NEED is insufficient. It doesn't discard the data in dirty
> file-backed pages.

I thought DONT_NEED would discard the page cache, and punch was only needed to
free up the disk space.

I was hoping that since the file was deleted from disk and is already getting
_some_ special treatment (since it's a longstanding "poor man's shared
memory" hack), that madvise wouldn't flush the data to disk, but would just
zero it out. A bit optimistic on my part, I know. :)

> Badari Pulavarty has a test patch (google for madvise(MADV_REMOVE))
> which does do the trick, and I have a UML patch which adds memory
> hotplug. This combination does free memory back to the host.

I saw it wander by, and am all for it. If it goes in, it's obviously the
right thing to use. You may remember I asked about this two years ago:
http://seclists.org/lists/linux-kernel/2003/Dec/0919.html

And a reply indicated that SVr4 had it, but we don't. I assume the "naming
discussion" mentioned in the recent thread already scrubbed through this old
thread to determine that the SVr4 API was icky.
http://seclists.org/lists/linux-kernel/2003/Dec/0955.html

> Jeff

Rob