1. 31 Jul, 2015 12 commits
  2. 30 Jul, 2015 23 commits
  3. 29 Jul, 2015 5 commits
    • Russ Cox's avatar
      runtime: set invalidptr=1 by default, as documented · d3ffc975
      Russ Cox authored
      Also make invalidptr control the recently added GC pointer check,
      as documented.
      
      Change-Id: Iccfdf49480219d12be8b33b8f03d8312d8ceabed
      Reviewed-on: https://go-review.googlesource.com/12857
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: default avatarRob Pike <r@golang.org>
      d3ffc975
    • Andrew Gerrand's avatar
      doc: remove non-answer from FAQ · e4bd8e04
      Andrew Gerrand authored
      Change-Id: Ie43986d016e5a9fb17ca1393263932bbb56e81ff
      Reviewed-on: https://go-review.googlesource.com/12836Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      e4bd8e04
    • Russ Cox's avatar
      runtime/trace: remove existing Skips · bd5ca222
      Russ Cox authored
      The skips added in CL 12579, based on incorrect time stamps,
      should be sufficient to identify and exclude all the time-related
      flakiness on these systems.
      
      If there is other flakiness, we want to find out.
      
      For #10512.
      
      Change-Id: I5b588ac1585b2e9d1d18143520d2d51686b563e3
      Reviewed-on: https://go-review.googlesource.com/12746Reviewed-by: default avatarAustin Clements <austin@google.com>
      bd5ca222
    • Russ Cox's avatar
      runtime/trace: record event sequence numbers explicitly · 80c98fa9
      Russ Cox authored
      Nearly all the flaky failures we've seen in trace tests have been
      due to the use of time stamps to determine relative event ordering.
      This is tricky for many reasons, including:
       - different cores might not have exactly synchronized clocks
       - VMs are worse than real hardware
       - non-x86 chips have different timer resolution than x86 chips
       - on fast systems two events can end up with the same time stamp
      
      Stop trying to make time reliable. It's clearly not going to be for Go 1.5.
      Instead, record an explicit event sequence number for ordering.
      Using our own counter solves all of the above problems.
      
      The trace still contains time stamps, of course. The sequence number
      is just used for ordering.
      
      Should alleviate #10554 somewhat. Then tickDiv can be chosen to
      be a useful time unit instead of having to be exact for ordering.
      
      Separating ordering and time stamps lets the trace parser diagnose
      systems where the time stamp order and actual order do not match
      for one reason or another. This CL adds that check to the end of
      trace.Parse, after all other sequence order-based checking.
      If that error is found, we skip the test instead of failing it.
      Putting the check in trace.Parse means that cmd/trace will pick
      up the same check, refusing to display a trace where the time stamps
      do not match actual ordering.
      
      Using net/http's BenchmarkClientServerParallel4 on various CPU counts,
      not tracing vs tracing:
      
      name                      old time/op    new time/op    delta
      ClientServerParallel4       50.4µs ± 4%    80.2µs ± 4%  +59.06%        (p=0.000 n=10+10)
      ClientServerParallel4-2     33.1µs ± 7%    57.8µs ± 5%  +74.53%        (p=0.000 n=10+10)
      ClientServerParallel4-4     18.5µs ± 4%    32.6µs ± 3%  +75.77%        (p=0.000 n=10+10)
      ClientServerParallel4-6     12.9µs ± 5%    24.4µs ± 2%  +89.33%        (p=0.000 n=10+10)
      ClientServerParallel4-8     11.4µs ± 6%    21.0µs ± 3%  +83.40%        (p=0.000 n=10+10)
      ClientServerParallel4-12    14.4µs ± 4%    23.8µs ± 4%  +65.67%        (p=0.000 n=10+10)
      
      Fixes #10512.
      
      Change-Id: I173eecf8191e86feefd728a5aad25bf1bc094b12
      Reviewed-on: https://go-review.googlesource.com/12579Reviewed-by: default avatarAustin Clements <austin@google.com>
      80c98fa9
    • Russ Cox's avatar
      runtime: ignore arguments in cgocallback_gofunc frame · fde39262
      Russ Cox authored
      Otherwise the GC may see uninitialized memory there,
      which might be old pointers that are retained, or it might
      trigger the invalid pointer check.
      
      Fixes #11907.
      
      Change-Id: I67e306384a68468eef45da1a8eb5c9df216a77c0
      Reviewed-on: https://go-review.googlesource.com/12852Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      fde39262