Subject: Re: sun4c slowness again
To: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
From: Jason Thorpe <thorpej@shagadelic.org>
List: port-sparc
Date: 10/12/2006 10:37:35
On Oct 11, 2006, at 4:18 PM, Izumi Tsutsui wrote:

> As you can see in systat output, there is no paging so it isn't
> memory shortage, but shortage of "Page Map Entry Group" in MMU.
>
> http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/sparc/sparc/machdep.c#rev1.230

Perhaps a better change to keep UBC from consuming the PMEGs would be  
to disable lazy-unmapping of the UBC windows.  E.g. ARM does this  
because of its VIVT cache arrangement, but it might be worth doing on  
e.g. small SUN4C machines because of the limited number of PMEGs.

Hm, well, at least the ARM *USED* to do this -- it looks like  
ubc_release() has since changed to allow the caller to specify "unmap  
or not".  Ah, I see, it's now done only for VTEXT vnodes via the  
UBC_WANT_UNMAP() macro.  Hm.

I'm not exactly sure I like exposing PMAP_CACHE_VIVT to file systems  
like that.  Instead, I think I'd rather have UBC_WANT_UNMAP() become a  
function (or, at the very least, consult a global variable that MD  
code can set).  That way the SUN4C could also indicate that it wants  
windows to be unmapped as well.

Chuq?

-- thorpej