go version: go1.7rc1 linux/amd64 (from go1.7rc1.linux-amd64.tar.gz 
<https://storage.googleapis.com/golang/go1.7rc1.linux-amd64.tar.gz>)
program: https://play.golang.org/p/pUyOao-V9w
pprof weblist fragment:
runtime.(*mspan).sweep
/usr/local/go/src/runtime/mgcsweep.go
  Total:        10ms      110ms (flat, cum)  0.63%
    161            .          . // It clears the mark bits in preparation 
for the next GC round. 
    162            .          . // Returns true if the span was returned to 
heap. 
    163            .          . // If preserve=true, don't return it to 
heap nor relink in MCentral lists; 
    164            .          . // caller takes care of it. 
    165            .          . //TODO go:nowritebarrier 
    166            .          . func (s *mspan) sweep(preserve bool) bool { 
    167            .          . // It's critical that we enter this 
function with preemption disabled, 
    168            .          . // GC must not start while we are in the 
middle of this function. 
    169            .          . _g_ := getg() 
    170            .          . if _g_.m.locks == 0 && _g_.m.mallocing == 0 
&& _g_ != _g_.m.g0 { 
    171            .          . throw("MSpan_Sweep: m is not locked") 
    172            .          . } 
    173         10ms       10ms sweepgen := mheap_.sweepgen 
    174            .          . if s.state != mSpanInUse || s.sweepgen != 
sweepgen-1 { 
                   .          .   41c319: MOVQ 0xe0(SP), DX                 
               /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c321: MOVZX 0x64(DX), BX               
                /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c325: MOVB BL, 0x29(SP)                 
               /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c329: TESTL BL, BL                     
                /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c32b: JNE 0x41cd16                     
                /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c331: MOVL 0x58(DX), SI                 
               /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c334: LEAL -0x1(CX), DI                 
               /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c337: MOVL DI, 0x34(SP)                 
               /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c33b: CMPL DI, SI                       
               /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   41c33d: JNE 0x41cd16                     
                /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   *41c903: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
                   .          .   41c923: MOVQ 0xe0(SP), CX                 
               /usr/local/go/src/runtime/mgcsweep.go:174
                   .          .   *41ca3d: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
*                   .          .   41ca4c: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
*                   .          .   41ca76: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
*                   .          .   41cabe: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
*                   .          .   41cb2f: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
*                   .          .   41cc54: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
*                   .          .   41cc9e: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
*                   .          .   41cd05: MOVQ 0xe0(SP), DX               
                 /usr/local/go/src/runtime/mgcsweep.go:174*
                   .          .   41cd0d: MOVL 0x34(SP), DI                 
               /usr/local/go/src/runtime/mgcsweep.go:174

    175            .          . print("MSpan_Sweep: state=", s.state, " 
sweepgen=", s.sweepgen, " mheap.sweepgen=", sweepgen, "\n") 
    176            .          . throw("MSpan_Sweep: bad span state") 
    177            .          . } 

Codegen bug or I'm missing something?

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to