go/src/cmd
Michael Anthony Knyszek b25b5f3ff4 runtime: fix GODEBUG=gccheckmark=1 and add smoke test
This change fixes GODEBUG=gccheckmark=1 which seems to have bit-rotted.
Because the root jobs weren't being reset, it wasn't doing anything.
Then, it turned out that checkmark mode would queue up noscan objects in
workbufs, which caused it to fail. Then it turned out checkmark mode was
broken with user arenas, since their heap arenas are not registered
anywhere. Then, it turned out that checkmark mode could just not run
properly if the goroutine's preemption flag was set (since
sched.gcwaiting is true during the STW). And lastly, it turned out that
async preemption could cause erroneous checkmark failures.

This change fixes all these issues and adds a simple smoke test to dist
to run the runtime tests under gccheckmark, which exercises all of these
issues.

Fixes #69074.
Fixes #69377.
Fixes #69376.

Change-Id: Iaa0bb7b9e63ed4ba34d222b47510d6292ce168bc
Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest
Reviewed-on: https://go-review.googlesource.com/c/go/+/608915
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2025-02-03 08:21:09 -08:00
..
addr2line cmd/addr2line: use t.TempDir 2024-09-06 13:23:48 +00:00
api cmd/api: report error in test instead of crashing 2025-01-14 10:06:18 -08:00
asm cmd/internal/obj/ppc64: support for decimal floating point instructions 2024-11-21 18:27:17 +00:00
buildid
cgo cmd/cgo: use full prototype for main in C code 2024-12-11 15:57:34 -08:00
compile runtime: rename mapiterinit and mapiternext 2025-01-28 10:54:43 -08:00
covdata internal/coverage: refactor EmitTextual in preparation for bugfix 2025-01-17 08:40:47 -08:00
cover cmd: replace many sort.Interface with slices.Sort and SortFunc 2024-09-03 20:55:18 +00:00
dist runtime: fix GODEBUG=gccheckmark=1 and add smoke test 2025-02-03 08:21:09 -08:00
distpack misc/wasm: move wasm runtime files to lib/wasm 2024-08-30 19:15:21 +00:00
doc all: use t.Chdir in tests 2024-09-04 00:52:28 +00:00
fix all: use slices.Delete 2024-10-01 14:55:00 +00:00
go cmd/go/internal/modindex: correct isDir doc comment 2025-02-03 08:20:02 -08:00
gofmt
internal runtime: rename mapiterinit and mapiternext 2025-01-28 10:54:43 -08:00
link cmd/link/internal/loader: fix linknames from FIPS 140 frozen tree 2025-01-29 06:30:36 -08:00
nm cmd/nm: use t.TempDir 2024-09-06 13:25:54 +00:00
objdump cmd/internal/objfile: break out dissassemblers to another package 2024-12-11 08:53:20 -08:00
pack all: use t.Chdir in tests 2024-09-04 00:52:28 +00:00
pprof cmd/internal/objfile: break out dissassemblers to another package 2024-12-11 08:53:20 -08:00
preprofile cmd/preprofile: correct -V flag 2024-11-27 21:27:58 +00:00
relnote
test2json cmd/go: print build errors during go test -json in JSON 2024-11-17 14:32:05 +00:00
tools
trace cmd/trace: also show end stack traces 2024-11-27 06:35:34 +00:00
vendor cmd: update golang.org/x/tools to CL 645697, and revendor 2025-01-31 08:42:32 -08:00
vet cmd, go: fix some typos 2024-12-17 11:19:09 -08:00
README.vendor
go.mod cmd: update golang.org/x/tools to CL 645697, and revendor 2025-01-31 08:42:32 -08:00
go.sum cmd: update golang.org/x/tools to CL 645697, and revendor 2025-01-31 08:42:32 -08:00

README.vendor

See src/README.vendor for information on loading vendored packages
and updating the vendor directory.