1
0
mirror of https://github.com/golang/go synced 2024-11-20 08:54:40 -07:00
go/src
Russ Cox aae0f074c0 runtime: fix a few GC-related bugs
1) Move non-preemption check even earlier in newstack.
This avoids a few priority inversion problems.

2) Always use atomic operations to update bitmap for 1-word objects.
This avoids lost mark bits during concurrent GC.

3) Stop using work.nproc == 1 as a signal for being single-threaded.
The concurrent GC runs with work.nproc == 1 but other procs are
running mutator code.

The use of work.nproc == 1 in getfull *is* safe, but remove it anyway,
since it is saving only a single atomic operation per GC round.

Fixes #9225.

Change-Id: I24134f100ad592ea8cb59efb6a54f5a1311093dc
Reviewed-on: https://go-review.googlesource.com/2745
Reviewed-by: Rick Hudson <rlh@golang.org>
2015-01-14 15:05:33 +00:00
..
archive archive/tar: document Reader.Next's behavior at the end 2014-12-30 21:38:37 +00:00
bufio bufio: add Reader.Discard 2015-01-07 06:37:57 +00:00
builtin
bytes
cmd cmd/go: adjust error for custom import checkout mismatch 2015-01-14 15:01:55 +00:00
compress compress/bzip2: s/repeat_power/repeatPower/ 2014-12-19 01:29:00 +00:00
container
crypto crypto/x509: add cert SmartOS cert path 2015-01-14 05:07:37 +00:00
database/sql database/sql: Remove unnecessary call to maybeOpenNewConnections 2014-12-24 02:39:12 +00:00
debug all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
encoding encoding/gob: address go vet report 2014-12-28 19:30:31 +00:00
errors
expvar
flag flag: Check for Set error 2014-12-22 00:17:07 +00:00
fmt fmt: fix two typos 2015-01-04 23:07:43 +00:00
go cmd/cgo, go/build: finish a cleanup TODO 2015-01-08 00:59:37 +00:00
hash all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
html
image image/draw: fold TestClipWithNilMP into TestClip. 2015-01-14 06:04:13 +00:00
index/suffixarray
internal/syscall
io
lib9
libbio
liblink cmd/6g, cmd/8g, liblink: improve handling of float constants 2015-01-07 22:26:55 +00:00
log log: add global Output function 2015-01-12 04:45:38 +00:00
math math/big: faster assembly kernels for AddVx/SubVx for 386. 2015-01-08 20:58:59 +00:00
mime mime/multipart: moved some code to mime/internal/quotedprintable 2014-12-23 19:30:02 +00:00
net net/http: deflake TestResponseWriterWriteStringAllocs, test interface instead 2015-01-13 01:38:10 +00:00
os os: replace itod on posix with general itoa and fix possible infinite recursion 2015-01-02 16:21:18 +00:00
path path/filepath: remove named result parameter for VolumeName 2014-12-18 16:05:07 +00:00
reflect reflect: remove extra word in comment 2015-01-13 18:55:15 +00:00
regexp regexp: fix typo in comment: s/onpass/onepass/ 2014-12-24 07:30:28 +00:00
runtime runtime: fix a few GC-related bugs 2015-01-14 15:05:33 +00:00
sort sort: reduce number of comparisons needed by medianOfThree 2015-01-13 19:37:02 +00:00
strconv strconv: speed up atoi for common cases 2015-01-08 20:58:26 +00:00
strings
sync sync/atomic: remove atomic pointer hammer tests 2015-01-06 00:28:22 +00:00
syscall syscall: use name+(NN)FP for darwin 2015-01-14 14:14:29 +00:00
testing testing/iotest: fix copy/paste error in comment 2014-12-29 19:05:37 +00:00
text
time
unicode
unsafe
all.bash
all.bat
all.rc
androidtest.bash
clean.bash
clean.bat
clean.rc
make.bash build: change all.bash output to be more markdown-friendly 2014-12-13 00:03:23 +00:00
make.bat build: change all.bash output to be more markdown-friendly 2014-12-13 00:03:23 +00:00
Make.dist
make.rc
nacltest.bash
race.bash
race.bat
run.bash cmd/cgo: remove obsolete -cdefs flag 2015-01-07 22:49:59 +00:00
run.bat build: change all.bash output to be more markdown-friendly 2014-12-13 00:03:23 +00:00
run.rc build: add GOTESTONLY environment test for Plan 9's run.rc 2015-01-08 04:35:23 +00:00
sudo.bash