From: Rob L. <ro...@la...> - 2005-11-03 05:42:29
|
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 |