aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-03-20 16:34:13 -0700
committerRuss Cox <rsc@golang.org>2009-03-20 16:34:13 -0700
commitc1e748bd2e440dde4cf9778af622e726a39ef0ae (patch)
tree491e3743300c535d52e605d1a60887610272009f /src/runtime
parent90943c8ee4cf2ccef11b72ba01ea729edd8b3c66 (diff)
downloadgo-c1e748bd2e440dde4cf9778af622e726a39ef0ae.tar.xz
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
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/malloc.h2
-rw-r--r--src/runtime/msize.c2
2 files changed, 2 insertions, 2 deletions
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;