Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Sep 2001 03:52:04 -0500
From:      Alfred Perlstein <bright@mu.org>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        John Polstra <jdp@polstra.com>, current@FreeBSD.ORG, gersh@sonn.com
Subject:   Re: MALLOC/FREE macro useage.
Message-ID:  <20010903035204.M81307@elvis.mu.org>
In-Reply-To: <20010903183414.X6804-100000@alphplex.bde.org>; from bde@zeta.org.au on Mon, Sep 03, 2001 at 06:47:22PM %2B1000
References:  <20010902211606.I81307@elvis.mu.org> <20010903183414.X6804-100000@alphplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* Bruce Evans <bde@zeta.org.au> [010903 03:47] wrote:
> On Sun, 2 Sep 2001, Alfred Perlstein wrote:
> 
> > The reason for the macro is that when the size paramter is a constant
> > there's an evil trick that makes selecting the malloc bucket really
> > cheap.
> 
> That's not the reason.  The size parameter is not constant since MALLOC()
> just calls malloc().  I wouldn't call the big conditional statement in
> BUCKETINDX() an evil trick.  But perhaps it should be replaced by fls().
> A builtin fls() could handle constants just as well.

Well it was the original intent, in fact it was done such that
when a constant was used and the bucket wasn't empty the code
would expand to just a handful of instructions.  This is
mentioned in "Design and Implementation".

As far as BUCKETINDX(), i almost thought that instead of doing
power of two buckets, we could use mod-32, this would do nifty
things like when we just barely go over 128 bytes for something
we don't waste nearly double our allocation.

-- 
-Alfred Perlstein [alfred@freebsd.org]
'Instead of asking why a piece of software is using "1970s technology,"
start asking why software is ignoring 30 years of accumulated wisdom.'
'"Java" developer, like "special" Olympics, right?' - Bill Paul

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010903035204.M81307>