Subject: Re: UBC vs page_idle_zero
To: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
From: Jason R Thorpe <thorpej@zembu.com>
List: tech-kern
Date: 11/28/2000 11:00:00
On Tue, Nov 28, 2000 at 01:37:24PM -0500, Bill Sommerfeld wrote:

 > see some benchmarks Jason did at the time he implemented the feature:
 > 
 > http://mail-index.netbsd.org/current-users/2000/04/24/0038.html
 > 
 > a 50-60% improvement in the start time for a memory hog like netscape
 > is not something to sneeze at..

...and since the idle_zero was turned off with UBC, I have noticed
that my machines boot less quickly than they did before, and process
startup bug processes is slower...  Granted, more file data is being
cached, so this good, but... :-)

What's probably killing UBC when used with idle_zero is the fact that
the zero'ing is done un-cached.  This is probably doing something like
making the CPU always win the bus arbitration when it needs to do the
synchronous memory write, and thereby making it harder for the DMA
controller to get a cycle in edgewise.

Really, the idle_zero should be done *cached*, which would likely
solve this problem.  However, to do that without pounding the cache
too hard (i.e. evicting things in the cache that you *WANT*), you need
to have page coloring so that you can minimize the impact on the cache
of the zeroing activity (by e.g. zeroing all pages with the same footprint
first, before moving onto the next color...)

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>