]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix bug in cpu profiler
authorDmitriy Vyukov <dvyukov@google.com>
Wed, 7 May 2014 14:48:14 +0000 (18:48 +0400)
committerDmitriy Vyukov <dvyukov@google.com>
Wed, 7 May 2014 14:48:14 +0000 (18:48 +0400)
Number of lost samples was overcounted (never reset).
Also remove unused variable (it's trivial to restore it for debugging if needed).

LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews, rsc
https://golang.org/cl/96060043

src/pkg/runtime/cpuprof.goc

index 9653e4a68db605b929ce1001e4b1e38f3f22e4ed..faaea29435be11085bc52e80a32cf4341ac3ca80 100644 (file)
@@ -81,7 +81,6 @@ struct Profile {
        uintptr count;          // tick count
        uintptr evicts;         // eviction count
        uintptr lost;           // lost ticks that need to be logged
-       uintptr totallost;      // total lost ticks
 
        // Active recent stack traces.
        Bucket hash[HashSize];
@@ -244,7 +243,6 @@ add(Profile *p, uintptr *pc, int32 n)
                if(!evict(p, e)) {
                        // Could not evict entry.  Record lost stack.
                        p->lost++;
-                       p->totallost++;
                        return;
                }
                p->evicts++;
@@ -308,6 +306,7 @@ flushlog(Profile *p)
                *q++ = p->lost;
                *q++ = 1;
                *q++ = (uintptr)LostProfileData;
+               p->lost = 0;
        }
        p->nlog = q - log;
        return true;