1. 07 Dec, 2019 1 commit
    • Emmanuel T Odeke's avatar
      net/http: unflake TestTimeoutHandlerSuperfluousLogs · bff4ebb7
      Emmanuel T Odeke authored
      Uses 2 channels to synchronize that test, because
      relying on sleeps creates flaky behavior, thus:
      
      a) 1 buffered channel to send back the last spurious line
      without having to reason about "happens before" behavior
      a) 1 buffered channel at the end of the handler; it'll
      be controlled by whether we expect to timeout or not,
      but will always be closed when the test ends
      
      Fixes #35051
      
      Change-Id: Iff735aa8d1ed9de8d92b792374ec161cc0a72798
      Reviewed-on: https://go-review.googlesource.com/c/go/+/208477
      Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
      bff4ebb7
  2. 06 Dec, 2019 17 commits
  3. 05 Dec, 2019 13 commits
  4. 04 Dec, 2019 7 commits
  5. 03 Dec, 2019 2 commits
    • Michael Anthony Knyszek's avatar
      runtime: convert page allocator bitmap to sparse array · acf3ff2e
      Michael Anthony Knyszek authored
      Currently the page allocator bitmap is implemented as a single giant
      memory mapping which is reserved at init time and committed as needed.
      This causes problems on systems that don't handle large uncommitted
      mappings well, or institute low virtual address space defaults as a
      memory limiting mechanism.
      
      This change modifies the implementation of the page allocator bitmap
      away from a directly-mapped set of bytes to a sparse array in same vein
      as mheap.arenas. This will hurt performance a little but the biggest
      gains are from the lockless allocation possible with the page allocator,
      so the impact of this extra layer of indirection should be minimal.
      
      In fact, this is exactly what we see:
          https://perf.golang.org/search?q=upload:20191125.5
      
      This reduces the amount of mapped (PROT_NONE) memory needed on systems
      with 48-bit address spaces to ~600 MiB down from almost 9 GiB. The bulk
      of this remaining memory is used by the summaries.
      
      Go processes with 32-bit address spaces now always commit to 128 KiB of
      memory for the bitmap. Previously it would only commit the pages in the
      bitmap which represented the range of addresses (lowest address to
      highest address, even if there are unused regions in that range) used by
      the heap.
      
      Updates #35568.
      Updates #35451.
      
      Change-Id: I0ff10380156568642b80c366001eefd0a4e6c762
      Reviewed-on: https://go-review.googlesource.com/c/go/+/207497
      Run-TryBot: Michael Knyszek <mknyszek@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      acf3ff2e
    • Xiangdong Ji's avatar
      cmd/vet: honor analyzer flags when running vet outside $GOROOT/src · 2ac1ca91
      Xiangdong Ji authored
      Additional vet flags specified by user are discarded if 'go vet'
      is invoked outside $GOROOT/src to check a package under $GOROOT
      (including those under "vendor" of $GOROOT), fix it by avoiding the
      overwriting, the logic of detemining if the package under vetting
      comes from $GOROOT remains untouched.
      
      Also checked 'go tool vet <options> <cfg>' and 'go vet <options>
      <user pkg>', both worked w./w.o this fix.
      
      Fixes #35837.
      
      Change-Id: I549af7964e40440afd35f2d1971f77eee6f8de34
      Reviewed-on: https://go-review.googlesource.com/c/go/+/209498
      Run-TryBot: Jay Conrod <jayconrod@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJay Conrod <jayconrod@google.com>
      2ac1ca91