From: Russ Cox Date: Fri, 20 Mar 2009 23:34:13 +0000 (-0700) Subject: embarassing bug in allocator: X-Git-Tag: weekly.2009-11-06~1993 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c1e748bd2e440dde4cf9778af622e726a39ef0ae;p=gostls13.git embarassing bug in allocator: was applying wrong waste check, resulting in many more size classes than necessary. R=r DELTA=2 (0 added, 0 deleted, 2 changed) OCL=26602 CL=26605 --- diff --git a/src/runtime/malloc.h b/src/runtime/malloc.h index d1d9e95e98..530dfc98f1 100644 --- a/src/runtime/malloc.h +++ b/src/runtime/malloc.h @@ -91,7 +91,7 @@ typedef uintptr PageID; // address >> PageShift enum { // Tunable constants. - NumSizeClasses = 150, // Number of size classes (must match msize.c) + NumSizeClasses = 67, // Number of size classes (must match msize.c) MaxSmallSize = 32<<10, FixAllocChunk = 128<<10, // Chunk size for FixAlloc diff --git a/src/runtime/msize.c b/src/runtime/msize.c index 62d5c3ad99..25e22637d2 100644 --- a/src/runtime/msize.c +++ b/src/runtime/msize.c @@ -82,7 +82,7 @@ InitSizes(void) // so wasted space is at most 12.5%. allocsize = PageSize; osize = size + RefcountOverhead; - while(allocsize%osize > (PageSize/8)) + while(allocsize%osize > (allocsize/8)) allocsize += PageSize; npages = allocsize >> PageShift;