Date: Wed, 15 May 1996 12:14:47 -0500 (EST) From: "John S. Dyson" <toor@dyson.iquest.net> To: jgreco@brasil.moneng.mei.com (Joe Greco) Cc: dyson@freebsd.org, hackers@freebsd.org Subject: Re: A question for the VM gurus..! Message-ID: <199605151714.MAA22723@dyson.iquest.net> In-Reply-To: <199605151445.JAA12093@brasil.moneng.mei.com> from "Joe Greco" at May 15, 96 09:45:08 am
next in thread | previous in thread | raw e-mail | index | archive | help
> > Not portable. Solaris, at least, implements the madvise() stuff.. > Okay.. > > What it seems to do: > > If you set MADV_SEQUENTIAL on a region, if it has to fault a page "n" in, it > looks like it discards all pages from 0 to n-1 in that region.. notably it > does NOT seem to do anything if it doesn't have to fault a page in. > Is there only one process accessing the region? What happens if there are other processes using that region also? Otherwise, that is easy to do in our VM system. > > MADV_RANDOM seems to cause a lot more faults if you are doing sequential > accesses, as far as I can tell it just tells Solaris not to read ahead. > That is easy also. > > MADV_DONTNEED appears to junk pages (asynchronously, from what I can tell) > Easy. > > MADV_WILLNEED appears to fault pages (again, asynchrnously, from what I can > tell). > Hmmm... time to implement kernel threads. > > I guess in the _short_ term I am most interested in support for > MADV_DONTNEED, it is the most generally useful change for my application. > However, it would be nice to have a full suite of this stuff in the future. > Okay, I'll work on it this weekend. Probably implement everything except WILLNEED, and will give WILLNEED lip-service by making sure all of the pages are activated (and perhaps mapped), if they are already in memory. I will work on it this weekend or soon thereafter. John
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605151714.MAA22723>