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.