Subject: Re: pool_get()/pool_put() or malloc()/free()
To: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
From: Jason R Thorpe <thorpej@zembu.com>
List: tech-kern
Date: 10/27/2000 07:35:36
On Fri, Oct 27, 2000 at 10:11:47PM +0900, Izumi Tsutsui wrote:

 > I tried to make a GENERIC3X kernel on both kernels which use
 > malloc/free and pool_get/pool_put:
 > 
 > malloc: 22796.7u 1418.7s 6:59:10.62 96.2% 0.0k 47761+18193io 553pf+0w
 > pool:   22795.9u 1414.8s 6:59:03.73 96.2% 0.0k 47603+18189io 610pf+0w
 > 
 > The difference is not so significant (sun3 is too slow to see it? :-),
 > but I will commit this change anyway.
 > 
 > I'll also try on CATS, macppc and newsmips.

One of the main differences on some architectures is that there are
hooks into the pmap for mapping pool pages.  On the MIPS and Alpha,
KSEG is used.  On the PowerPC, the direct-mapped area mapped by the
BATs is used.  Etc.  This means that on these platforms, TLB usage
is greatly reduced for things allocated with the pool allocator.

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