]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: move a few atomic fields up
authorRuss Cox <rsc@golang.org>
Mon, 11 May 2015 16:03:30 +0000 (12:03 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 11 May 2015 16:08:57 +0000 (16:08 +0000)
Moving them up makes them properly aligned on 32-bit systems.
There are some odd fields above them right now
(like fixalloc and mutex maybe).

Change-Id: I57851a5bbb2e7cc339712f004f99bb6c0cce0ca5
Reviewed-on: https://go-review.googlesource.com/9889
Reviewed-by: Austin Clements <austin@google.com>
src/runtime/mheap.go

index 48e391648b0bbeaf0068430dbb13d18582b0b9a8..a610da2e47731143fb6f402a012a8ffdbb59e8e6 100644 (file)
@@ -28,6 +28,15 @@ type mheap struct {
        spans        **mspan
        spans_mapped uintptr
 
+       // Proportional sweep
+       pagesSwept        uint64  // pages swept this cycle; updated atomically
+       sweepPagesPerByte float64 // proportional sweep ratio; written with lock, read without
+
+       // Malloc stats.
+       largefree  uint64                  // bytes freed for large objects (>maxsmallsize)
+       nlargefree uint64                  // number of frees for large objects (>maxsmallsize)
+       nsmallfree [_NumSizeClasses]uint64 // number of frees for small objects (<=maxsmallsize)
+
        // range of addresses we might see in the heap
        bitmap         uintptr
        bitmap_mapped  uintptr
@@ -50,15 +59,6 @@ type mheap struct {
        specialfinalizeralloc fixalloc // allocator for specialfinalizer*
        specialprofilealloc   fixalloc // allocator for specialprofile*
        speciallock           mutex    // lock for sepcial record allocators.
-
-       // Proportional sweep
-       pagesSwept        uint64  // pages swept this cycle; updated atomically
-       sweepPagesPerByte float64 // proportional sweep ratio; written with lock, read without
-
-       // Malloc stats.
-       largefree  uint64                  // bytes freed for large objects (>maxsmallsize)
-       nlargefree uint64                  // number of frees for large objects (>maxsmallsize)
-       nsmallfree [_NumSizeClasses]uint64 // number of frees for small objects (<=maxsmallsize)
 }
 
 var mheap_ mheap