]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: track HeapIdle
authorRuss Cox <rsc@golang.org>
Wed, 14 Sep 2011 15:29:01 +0000 (11:29 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 14 Sep 2011 15:29:01 +0000 (11:29 -0400)
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/4995045

src/pkg/runtime/mheap.c

index 37d50568154053eb2530a6267dee2f01f8930b61..7d24a6540db638e2d9793de592585ad77f9ac0bb 100644 (file)
@@ -101,6 +101,7 @@ HaveSpan:
                runtime·throw("MHeap_AllocLocked - bad npages");
        runtime·MSpanList_Remove(s);
        s->state = MSpanInUse;
+       mstats.heap_idle -= s->npages<<PageShift;
 
        if(s->npages > npage) {
                // Trim extra and put it back in the heap.
@@ -276,6 +277,7 @@ MHeap_FreeLocked(MHeap *h, MSpan *s)
                runtime·printf("MHeap_FreeLocked - span %p ptr %p state %d ref %d\n", s, s->start<<PageShift, s->state, s->ref);
                runtime·throw("MHeap_FreeLocked - invalid free");
        }
+       mstats.heap_idle += s->npages<<PageShift;
        s->state = MSpanFree;
        runtime·MSpanList_Remove(s);
        sp = (uintptr*)(s->start<<PageShift);