1. 28 May, 2013 5 commits
    • Dmitriy Vyukov's avatar
      runtime: fix heap corruption during GC · 2f5825d4
      Dmitriy Vyukov authored
      The 'n' variable is used during rescan initiation in GC_END case,
      but it's overwritten with chan capacity in GC_CHAN case.
      As the result rescan is done with the wrong object size.
      Fixes #5554.
      
      R=golang-dev, khr
      CC=golang-dev
      https://golang.org/cl/9831043
      2f5825d4
    • Shenghou Ma's avatar
      runtime: use m and g, instead of R9 and R10, in ARM assembly files · d8fd8d89
      Shenghou Ma authored
      also don't clobber R9 if it is about to crash.
      
      In response to https://golang.org/cl/9251043/#msg2.
      
      R=golang-dev, khr, khr, dave
      CC=golang-dev
      https://golang.org/cl/9778046
      d8fd8d89
    • Dmitriy Vyukov's avatar
      undo CL 9805043 / 776aba85ece8 · 828c68f8
      Dmitriy Vyukov authored
      multiple failures on amd64
      
      ««« original CL description
      runtime: introduce helper persistentalloc() function
      It is a caching wrapper around SysAlloc() that can allocate small chunks.
      Use it for symtab allocations. Reduces number of symtab walks from 4 to 3
      (reduces buildfuncs time from 10ms to 7.5ms on a large binary,
      reduces initial heap size by 680K on the same binary).
      Also can be used for type info allocation, itab allocation.
      There are also several places in GC where we do the same thing,
      they can be changed to use persistentalloc().
      Also can be used in FixAlloc, because each instance of FixAlloc allocates
      in 128K regions, which is too eager.
      
      R=golang-dev, daniel.morsing, khr
      CC=golang-dev
      https://golang.org/cl/9805043
      »»»
      
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/9822043
      828c68f8
    • Dmitriy Vyukov's avatar
      runtime: inline MCache_Alloc() into mallocgc() · 5166013f
      Dmitriy Vyukov authored
      benchmark                    old ns/op    new ns/op    delta
      BenchmarkMalloc8                    68           62   -8.63%
      BenchmarkMalloc16                   75           69   -7.94%
      BenchmarkMallocTypeInfo8           102           98   -3.73%
      BenchmarkMallocTypeInfo16          108          103   -4.63%
      
      R=golang-dev, dave, khr
      CC=golang-dev
      https://golang.org/cl/9790043
      5166013f
    • Dmitriy Vyukov's avatar
      runtime: introduce helper persistentalloc() function · 47e0a3d7
      Dmitriy Vyukov authored
      It is a caching wrapper around SysAlloc() that can allocate small chunks.
      Use it for symtab allocations. Reduces number of symtab walks from 4 to 3
      (reduces buildfuncs time from 10ms to 7.5ms on a large binary,
      reduces initial heap size by 680K on the same binary).
      Also can be used for type info allocation, itab allocation.
      There are also several places in GC where we do the same thing,
      they can be changed to use persistentalloc().
      Also can be used in FixAlloc, because each instance of FixAlloc allocates
      in 128K regions, which is too eager.
      
      R=golang-dev, daniel.morsing, khr
      CC=golang-dev
      https://golang.org/cl/9805043
      47e0a3d7
  2. 27 May, 2013 6 commits
  3. 25 May, 2013 2 commits
  4. 24 May, 2013 13 commits
  5. 23 May, 2013 8 commits
  6. 22 May, 2013 6 commits