]> Cypherpunks repositories - gostls13.git/commitdiff
embarassing bug in allocator:
authorRuss Cox <rsc@golang.org>
Fri, 20 Mar 2009 23:34:13 +0000 (16:34 -0700)
committerRuss Cox <rsc@golang.org>
Fri, 20 Mar 2009 23:34:13 +0000 (16:34 -0700)
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

src/runtime/malloc.h
src/runtime/msize.c

index d1d9e95e98f3356aa9faed3b039faa8690291ca5..530dfc98f1f61b2f1db7a802ebf0f51a4168f96c 100644 (file)
@@ -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
index 62d5c3ad99bf630a8ea6d8ae0bd1405ea4922fbc..25e22637d2852de332c738ca29bbe794b0a50b17 100644 (file)
@@ -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;