1. 07 Aug, 2017 2 commits
    • Chris Broadfoot's avatar
      [release-branch.go1.9] all: merge master into release-branch.go1.9 · cff0de3d
      Chris Broadfoot authored
      57912032 runtime: mapassign_* should use typedmemmove to update keys
      38052559 all: remove some manual hyphenation
      f096b5b3 runtime: mark activeModules nosplit/nowritebarrier
      3e3da546 math/bits: fix example for OnesCount64
      9b1e7cf2 math/bits: add examples for OnesCount functions
      b01db023 misc/cgo/testsanitizers: also skip tsan11/tsan12 when using GCC
      a279b53a reflect: document how DeepEqual handles cycles
      909f409a doc: mention handling of moved GOROOT in 1.9 release notes
      58ad0176 doc: use better wording to explain type-aware completion
      92dac21d doc: replace paid with commercial
      9bb98e02 doc/1.9: add CL 43712, ReverseProxy of HTTP/2 trailers to the release notes.
      78d74fc2 doc: clarify that Gogland is for paid IntelliJ platform IDEs
      54950472 doc/1.9: fix broken html link in CL 53030/53210
      890e0e86 doc: fix bad link in go1.9 release notes
      be596f04 doc/1.9: fix stray html in CL 53030
      0173631d encoding/binary: add examples for varint functions
      ac0ccf3c doc/1.9: add CL 36696 for crypto/x509 to the release notes
      cc402c2c doc: hide blog content for golang.google.cn
      f396fa42 internal/poll: don't add non-sockets to runtime poller
      664cd26c cmd/vet: don't exit with failure on type checking error
      a8730cd9 doc: hide video and share if being served from CN
      b63db76c testsanitizers: check that tsan program runs, skip tsan10 on gcc
      193eda72 time: skip ZoneAbbr test in timezones with no abbreviation
      6f08c935 cmd/go: show examples with empty output in go test -list
      f20944de cmd/compile: set/unset base register for better assembly print
      623e2c46 runtime: map bitmap and spans during heap initialization
      780249ee runtime: fall back to small mmaps if we fail to grow reservation
      31b2c4cc .github: add .md extension to SUPPORT file
      ac29f30d plugin: mention that there are known bugs with plugins
      45a4609c cmd/dist: skip moved GOROOT on Go's Windows builders when not sharding tests
      e157fac0 test: add README
      835dfef9 runtime/pprof: prevent a deadlock that SIGPROF might create on mips{,le}
      df91b804 doc: list editor options by name, not plugin name
      3d9475c0 doc: cleanup editor page
      b9661a14 doc: add Atom to editor guide
      ee392ac1 cmd/compile: consider exported flag in namedata
      
      Change-Id: I3a48493e8c05d97cb3b61635503ef0ccd646e5cb
      cff0de3d
    • Keith Randall's avatar
      runtime: mapassign_* should use typedmemmove to update keys · 57912032
      Keith Randall authored
      We need to make sure that when the key contains a pointer, we use
      a write barrier to update the key.
      
      Also mapdelete_* should use typedmemclr.
      
      Fixes #21297
      
      Change-Id: I63dc90bec1cb909c2c6e08676c9ec853d736cdf8
      Reviewed-on: https://go-review.googlesource.com/53414
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      Reviewed-by: default avatarJosh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      57912032
  2. 06 Aug, 2017 1 commit
  3. 05 Aug, 2017 2 commits
  4. 04 Aug, 2017 10 commits
  5. 03 Aug, 2017 6 commits
  6. 02 Aug, 2017 5 commits
  7. 31 Jul, 2017 4 commits
    • Austin Clements's avatar
      [release-branch.go1.9] runtime: map bitmap and spans during heap initialization · 196492a2
      Austin Clements authored
      We lazily map the bitmap and spans areas as the heap grows. However,
      right now we're very slightly too lazy. Specifically, the following
      can happen on 32-bit:
      
      1. mallocinit fails to allocate any heap arena, so
         arena_used == arena_alloc == arena_end == bitmap.
      
      2. There's less than 256MB between the end of the bitmap mapping and
         the next mapping.
      
      3. On the first allocation, mheap.sysAlloc sees that there's not
         enough room in [arena_alloc, arena_end) because there's no room at
         all. It gets a 256MB mapping from somewhere *lower* in the address
         space than arena_used and sets arena_alloc and arena_end to this
         hole.
      
      4. Since the new arena_alloc is lower than arena_used, mheap.sysAlloc
         doesn't bother to call mheap.setArenaUsed, so we still don't have a
         bitmap mapping or a spans array mapping.
      
      5. mheap.grow, which called mheap.sysAlloc, attempts to fill in the
         spans array and crashes.
      
      Fix this by mapping the metadata regions for the initial arena_used
      when the heap is initialized, rather than trying to wait for an
      allocation. This maintains the intended invariant that the structures
      are always mapped for [arena_start, arena_used).
      
      Fixes #21044.
      
      Cherry-pick of CL 51714. Fixes #21234.
      
      Change-Id: I4422375a6e234b9f979d22135fc63ae3395946b0
      Reviewed-on: https://go-review.googlesource.com/52191
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      196492a2
    • Austin Clements's avatar
      [release-branch.go1.9] runtime: fall back to small mmaps if we fail to grow reservation · 1a6d87d4
      Austin Clements authored
      Right now, if it's possible to grow the arena reservation but
      mheap.sysAlloc fails to get 256MB more of memory, it simply fails.
      However, on 32-bit we have a fallback path that uses much smaller
      mmaps that could take in this situation, but fail to.
      
      This commit fixes mheap.sysAlloc to use a common failure path in case
      it can't grow the reservation. On 32-bit, this path includes the
      fallback.
      
      Ideally, mheap.sysAlloc would attempt smaller reservation growths
      first, but taking the fallback path is a simple change for Go 1.9.
      
      Updates #21044 (fixes one of two issues).
      
      Cherry-pick of CL 51713. Updates #21234.
      
      Change-Id: I1e0035ffba986c3551479d5742809e43da5e7c73
      Reviewed-on: https://go-review.googlesource.com/52190
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      1a6d87d4
    • Austin Clements's avatar
      runtime: map bitmap and spans during heap initialization · 623e2c46
      Austin Clements authored
      We lazily map the bitmap and spans areas as the heap grows. However,
      right now we're very slightly too lazy. Specifically, the following
      can happen on 32-bit:
      
      1. mallocinit fails to allocate any heap arena, so
         arena_used == arena_alloc == arena_end == bitmap.
      
      2. There's less than 256MB between the end of the bitmap mapping and
         the next mapping.
      
      3. On the first allocation, mheap.sysAlloc sees that there's not
         enough room in [arena_alloc, arena_end) because there's no room at
         all. It gets a 256MB mapping from somewhere *lower* in the address
         space than arena_used and sets arena_alloc and arena_end to this
         hole.
      
      4. Since the new arena_alloc is lower than arena_used, mheap.sysAlloc
         doesn't bother to call mheap.setArenaUsed, so we still don't have a
         bitmap mapping or a spans array mapping.
      
      5. mheap.grow, which called mheap.sysAlloc, attempts to fill in the
         spans array and crashes.
      
      Fix this by mapping the metadata regions for the initial arena_used
      when the heap is initialized, rather than trying to wait for an
      allocation. This maintains the intended invariant that the structures
      are always mapped for [arena_start, arena_used).
      
      Fixes #21044.
      
      Change-Id: I4422375a6e234b9f979d22135fc63ae3395946b0
      Reviewed-on: https://go-review.googlesource.com/51714
      Run-TryBot: Austin Clements <austin@google.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      623e2c46
    • Austin Clements's avatar
      runtime: fall back to small mmaps if we fail to grow reservation · 780249ee
      Austin Clements authored
      Right now, if it's possible to grow the arena reservation but
      mheap.sysAlloc fails to get 256MB more of memory, it simply fails.
      However, on 32-bit we have a fallback path that uses much smaller
      mmaps that could take in this situation, but fail to.
      
      This commit fixes mheap.sysAlloc to use a common failure path in case
      it can't grow the reservation. On 32-bit, this path includes the
      fallback.
      
      Ideally, mheap.sysAlloc would attempt smaller reservation growths
      first, but taking the fallback path is a simple change for Go 1.9.
      
      Updates #21044 (fixes one of two issues).
      
      Change-Id: I1e0035ffba986c3551479d5742809e43da5e7c73
      Reviewed-on: https://go-review.googlesource.com/51713
      Run-TryBot: Austin Clements <austin@google.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      780249ee
  8. 30 Jul, 2017 1 commit
  9. 28 Jul, 2017 1 commit
  10. 27 Jul, 2017 2 commits
  11. 26 Jul, 2017 2 commits
  12. 25 Jul, 2017 3 commits
  13. 24 Jul, 2017 1 commit