go/src
Austin Clements 2d00007bdb runtime: flush on every write barrier while debugging
Currently, we flush the write barrier buffer on every write barrier
once throwOnGCWork is set, but not during the mark completion
algorithm itself. As seen in recent failures like

  https://build.golang.org/log/317369853b803b4ee762b27653f367e1aa445ac1

by the time we actually catch a late gcWork put, the write barrier
buffer is full-size again.

As a result, we're probably not catching the actual problematic write
barrier, which is probably somewhere in the buffer.

Fix this by using the gcWork pause generation to also keep the write
barrier buffer small between the mark completion flushes it and when
mark completion is done.

For #27993.

Change-Id: I77618169441d42a7d562fb2a998cfaa89891edb2
Reviewed-on: https://go-review.googlesource.com/c/154638
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2018-12-18 15:17:50 +00:00
..
archive
bufio
builtin
bytes bytes: add ReplaceAll example 2018-12-13 19:40:13 +00:00
cmd runtime,cmd/dist,cmd/link: add cgo support on openbsd/arm 2018-12-18 12:02:45 +00:00
compress
container
context
crypto crypto/x509: limit number of signature checks for each verification 2018-12-14 01:04:07 +00:00
database/sql all: use "reports whether" consistently instead of "returns whether" 2018-12-02 15:12:26 +00:00
debug all: use "reports whether" consistently instead of "returns whether" 2018-12-02 15:12:26 +00:00
encoding encoding/xml, encoding/json: docs and examples using custom marshalers 2018-12-12 14:18:06 +00:00
errors
expvar
flag
fmt fmt: include failing method name in panic message 2018-12-13 22:41:52 +00:00
go go/doc: handle Examples with no body 2018-12-16 19:03:43 +00:00
hash hash/fnv: use bits.Mul64 for 128-bit hash 2018-12-10 22:50:48 +00:00
html text/html: escape MIME type "application/ld+json" as JavaScript 2018-12-13 22:45:02 +00:00
image
index/suffixarray
internal internal/x/net/http2/hpack: update from upstream 2018-12-14 18:15:56 +00:00
io
log
math math: don't run huge argument tests on s390x 2018-12-13 22:13:57 +00:00
mime mime/multipart: quote boundary in Content-Type if necessary 2018-12-13 23:58:06 +00:00
net net/http/httptest: don't register a flag unless it looks like it's in use 2018-12-14 19:56:15 +00:00
os os: make Stat work on FAT file system 2018-12-17 09:34:04 +00:00
path all: use "reports whether" consistently instead of "returns whether" 2018-12-02 15:12:26 +00:00
plugin plugin: fix build constraint to disable test on linux/arm64 2018-11-28 18:14:20 +00:00
reflect
regexp
runtime runtime: flush on every write barrier while debugging 2018-12-18 15:17:50 +00:00
sort
strconv
strings strings: add ReplaceAll example 2018-12-13 00:35:06 +00:00
sync
syscall syscall: remove linknames to runtime symbols for aix/ppc64 2018-12-14 09:10:02 +00:00
testdata
testing all: use "reports whether" consistently instead of "returns whether" 2018-12-02 15:12:26 +00:00
text
time all: use "reports whether" consistently instead of "returns whether" 2018-12-02 15:12:26 +00:00
unicode unicode: improve generated comments for categories 2018-11-28 03:12:48 +00:00
unsafe
Make.dist
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash
make.bash
make.bat
make.rc
naclmake.bash
nacltest.bash
race.bash
race.bat
run.bash
run.bat
run.rc