Subject: Re: UBC performance patch
To: Jason R Thorpe <thorpej@zembu.com>
From: Chuck Silvers <chuq@chuq.com>
List: tech-kern
Date: 01/27/2001 03:56:05
On Fri, Jan 26, 2001 at 09:10:46AM -0800, Jason R Thorpe wrote:
> Not only that, but if that Netscape is *really* idle, then its
> pages won't be referenced, and thus would be a good canidate for
> freeing, which will happen.
under the scenario being discussed, pages from the idle netscape would
only be freed to make room for other anonymous pages, not for vnode pages.
certainly we must always reserve *some* memory for anonymous pages,
but not 2/3 of RAM.
> There is a problem with putting ubc pages directly on the inactive
> list. It will cause a glut of inactive pages, thus causing the
> active list scan to stop prematurely (because the inactive target
> is more likely to have been met). This in turn could cause idle
> pages that happen to be on the active list to not be scanned and
> placed on the inactive list.
I think you're talking about the same thing I am, now.
> Perhaps we want a new "ubc_inactive" list, which isn't counted in the
> inactive target? And always include ubc_inactive in the inactive scan
> (as opposed to including it in the object vs. swap backed toggle).
this would be a "vnode_inactive" list, since there's no difference between
data accessed via read() and write() vs. data accessed via mmap().
since nearly all vm objects are vnodes these days, creating such a list
would usually mean that the object list would be empty and all object
pages would be on this new list.
-Chuck