Subject: ubc_inactive() hackage, some analysis
To: None <tech-kern@netbsd.org>
From: Charles M. Hannum <root@ihack.net>
List: tech-kern
Date: 01/28/2001 01:17:25
So, if I understand this correctly:

The main reason this will work -- if at all -- is that it causes the
active page scan to terminate early because of an excess of inactive
pages.  This effect will be most notable when the process working set
is smaller than `memory - inactive_target'.  In order for *any* anon
pages to get paged out, the number of active pages must become greater
than this figure, and the number of active pages will never drop below
it unless processes exit.

What this means is that, on a machine with less memory than desired
process memory (such as a multi-user system with lots of idle Emacsen
and IRC clients), the UBC cache will generally stabilize at around
inactive_target, and very rarely poke above it -- even though there
may be a lot of idle pages that could be paged out.

Note that this is only commentary; I'm not drawing any conclusion here
about whether this effect is good or bad.  However, I do believe that
the major effect of this change is primarily based on subtle side
effects, and as such MUST be clearly documented.  Otherwise a user
cannot reasonably be expected to understand the performance of their
machine at all.