1. 06 Dec, 2013 5 commits
  2. 04 Dec, 2013 2 commits
  3. 03 Dec, 2013 8 commits
    • Carl Shapiro's avatar
      encoding/gob: do not hide an unsafe.Pointer in a uintptr · 77913e9a
      Carl Shapiro authored
      R=golang-dev, r, rsc
      CC=golang-dev
      https://golang.org/cl/23320044
      77913e9a
    • Carl Shapiro's avatar
      runtime: add an allocation and free tracing for gc debugging · 48279bd5
      Carl Shapiro authored
      Output for an allocation and free (sweep) follows
      
      MProf_Malloc(p=0xc2100210a0, size=0x50, type=0x0 <single object>)
              #0 0x46ee15 runtime.mallocgc /usr/local/google/home/cshapiro/go/src/pkg/runtime/malloc.goc:141
              #1 0x47004f runtime.settype_flush /usr/local/google/home/cshapiro/go/src/pkg/runtime/malloc.goc:612
              #2 0x45f92c gc /usr/local/google/home/cshapiro/go/src/pkg/runtime/mgc0.c:2071
              #3 0x45f89e mgc /usr/local/google/home/cshapiro/go/src/pkg/runtime/mgc0.c:2050
              #4 0x45258b runtime.mcall /usr/local/google/home/cshapiro/go/src/pkg/runtime/asm_amd64.s:179
      
      MProf_Free(p=0xc2100210a0, size=0x50)
              #0 0x46ee15 runtime.mallocgc /usr/local/google/home/cshapiro/go/src/pkg/runtime/malloc.goc:141
              #1 0x47004f runtime.settype_flush /usr/local/google/home/cshapiro/go/src/pkg/runtime/malloc.goc:612
              #2 0x45f92c gc /usr/local/google/home/cshapiro/go/src/pkg/runtime/mgc0.c:2071
              #3 0x45f89e mgc /usr/local/google/home/cshapiro/go/src/pkg/runtime/mgc0.c:2050
              #4 0x45258b runtime.mcall /usr/local/google/home/cshapiro/go/src/pkg/runtime/asm_amd64.s:179
      
      R=golang-dev, dvyukov, rsc, cshapiro
      CC=golang-dev
      https://golang.org/cl/21990045
      48279bd5
    • Keith Randall's avatar
      cmd/gc: fix special-casing of the printed names of map internal structures. · f238049a
      Keith Randall authored
      Shaves 1% off of binary size.
      
      update #6853
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/35940047
      f238049a
    • Carl Shapiro's avatar
      runtime: move stack scanning into the parallel mark phase · 0368a7ce
      Carl Shapiro authored
      This change reduces the cost of the stack scanning by frames.
      It moves the stack scanning from the serial root enumeration
      phase to the parallel tracing phase.  The output that follows
      are timings for the issue 6482 benchmark
      
      Baseline
      
      BenchmarkGoroutineSelect	      50	 108027405 ns/op
      BenchmarkGoroutineBlocking	      50	  89573332 ns/op
      BenchmarkGoroutineForRange	      20	  95614116 ns/op
      BenchmarkGoroutineIdle		      20	 122809512 ns/op
      
      Stack scan by frames, non-parallel
      
      BenchmarkGoroutineSelect	      20	 297138929 ns/op
      BenchmarkGoroutineBlocking	      20	 301137599 ns/op
      BenchmarkGoroutineForRange	      10	 312499469 ns/op
      BenchmarkGoroutineIdle		      10	 209428876 ns/op
      
      Stack scan by frames, parallel
      
      BenchmarkGoroutineSelect	      20	 183938431 ns/op
      BenchmarkGoroutineBlocking	      20	 170109999 ns/op
      BenchmarkGoroutineForRange	      20	 179628882 ns/op
      BenchmarkGoroutineIdle		      20	 157541498 ns/op
      
      The remaining performance disparity is due to inefficiencies
      in gentraceback and its callees.  The effect was isolated by
      using a parallel stack scan where scanstack was modified to do
      a conservative scan of the stack segments without gentraceback
      followed by a call of gentrackback with a no-op callback.
      
      The output that follows are the top-10 most frequent tops of
      stacks as determined by the Linux perf record facility.
      
      Baseline
      
      +  25.19%  gc.test  gc.test            [.] runtime.xchg
      +  19.00%  gc.test  gc.test            [.] scanblock
      +   8.53%  gc.test  gc.test            [.] scanstack
      +   8.46%  gc.test  gc.test            [.] flushptrbuf
      +   5.08%  gc.test  gc.test            [.] procresize
      +   3.57%  gc.test  gc.test            [.] runtime.chanrecv
      +   2.94%  gc.test  gc.test            [.] dequeue
      +   2.74%  gc.test  gc.test            [.] addroots
      +   2.25%  gc.test  gc.test            [.] runtime.ready
      +   1.33%  gc.test  gc.test            [.] runtime.cas64
      
      Gentraceback
      
      +  18.12%  gc.test  gc.test             [.] runtime.xchg
      +  14.68%  gc.test  gc.test             [.] scanblock
      +   8.20%  gc.test  gc.test             [.] runtime.gentraceback
      +   7.38%  gc.test  gc.test             [.] flushptrbuf
      +   6.84%  gc.test  gc.test             [.] scanstack
      +   5.92%  gc.test  gc.test             [.] runtime.findfunc
      +   3.62%  gc.test  gc.test             [.] procresize
      +   3.15%  gc.test  gc.test             [.] readvarint
      +   1.92%  gc.test  gc.test             [.] addroots
      +   1.87%  gc.test  gc.test             [.] runtime.chanrecv
      
      R=golang-dev, dvyukov, rsc
      CC=golang-dev
      https://golang.org/cl/17410043
      0368a7ce
    • Keith Randall's avatar
      runtime: get rid of concatstring's vararg C argument. · 24699fb0
      Keith Randall authored
      Pass as a slice of strings instead.  For 2-5 strings, implement
      dedicated routines so no slices are needed.
      
      static call counts in the go binary:
       2 strings: 342 occurrences
       3 strings:  98
       4 strings:  30
       5 strings:  13
      6+ strings:  14
      
      Why?  C varags, bad for stack scanning and copying.
      
      R=golang-dev, iant
      CC=golang-dev
      https://golang.org/cl/36380043
      24699fb0
    • Keith Randall's avatar
      runtime: fix race detector when map keys/values are passed by pointer. · c0f22945
      Keith Randall authored
      Now that the map implementation is reading the keys and values from
      arbitrary memory (instead of from stack slots), it needs to tell the
      race detector when it does so.
      
      Fixes #6875.
      
      R=golang-dev, dave
      CC=golang-dev
      https://golang.org/cl/36360043
      c0f22945
    • Keith Randall's avatar
      reflect: test to make sure big Zero()-obtained objects are really zero. · 742f755a
      Keith Randall authored
      Update #6876.
      
      R=dave, bradfitz
      CC=golang-dev
      https://golang.org/cl/36370043
      742f755a
    • Keith Randall's avatar
      reflect: fix Zero() implementation - not every type has a · e7d899cb
      Keith Randall authored
      zero object allocated, so we still need to allocate a new
      zero area every time.
      
      Fixes #6876.
      
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/36320043
      e7d899cb
  4. 02 Dec, 2013 3 commits
  5. 01 Dec, 2013 1 commit
  6. 27 Nov, 2013 1 commit
  7. 25 Nov, 2013 2 commits
  8. 20 Nov, 2013 2 commits
  9. 19 Nov, 2013 3 commits
  10. 18 Nov, 2013 2 commits
  11. 15 Nov, 2013 1 commit
  12. 14 Nov, 2013 2 commits
  13. 13 Nov, 2013 7 commits
  14. 12 Nov, 2013 1 commit