go/src/runtime
Ian Lance Taylor d2d155d1ae runtime: don't adjust timer pp field in timerWaiting status
Before this CL, the following sequence was possible:

* GC scavenger starts and sets up scavenge.timer
* GC calls readyForScavenger, but sysmon is sleeping
* program calls runtime.GOMAXPROCS to shrink number of processors
* procresize destroys a P, the one that scavenge.timer is on
* (*pp).destroy calls moveTimers, which gets to the scavenger timer
* scavenger timer is timerWaiting, and moveTimers clears t.pp
* sysmon wakes up and calls wakeScavenger
* wakeScavengers calls stopTimer on scavenger.timer, still timerWaiting
* stopTimer calls deltimer which loads t.pp, which is still nil
* stopTimer tries to increment deletedTimers on nil t.pp, and crashes

The point of vulnerability is the time that t.pp is set to nil by
moveTimers and the time that t.pp is set to non-nil by moveTimers,
which is a few instructions at most. So it's not likely and in
particular is quite unlikely on x86. But with a more relaxed memory
model the area of vulnerability can be somewhat larger. This appears
to tbe the cause of two builder failures in a few months on linux-mips.

This CL fixes the problem by making moveTimers change the status from
timerWaiting to timerMoving while t.pp is clear. That will cause
deltimer to wait until the status is back to timerWaiting, at which
point t.pp has been set again.

Fixes #43712

Change-Id: I66838319ecfbf15be66c1fac88d9bd40e2295852
Reviewed-on: https://go-review.googlesource.com/c/go/+/284775
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
2021-01-20 19:55:44 +00:00
..
cgo runtime/cgo: fix Android build with NDK 22 2020-12-26 19:08:56 +00:00
debug all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
internal all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
metrics runtime/metrics: mark histogram metrics as cumulative 2021-01-08 18:15:53 +00:00
msan
pprof all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
race test: make a race detector test robust to timing variations 2020-12-14 20:30:16 +00:00
testdata all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
trace all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
HACKING.md runtime: update go:notinheap documentation 2020-09-25 15:35:59 +00:00
Makefile
alg.go Revert "cmd/compile: split exported/non-exported methods for interface type" 2020-10-28 17:10:08 +00:00
asm.s runtime: remove tracebackinit and unused skipPC 2020-08-17 21:05:19 +00:00
asm_386.s runtime: tidy cgocallback 2020-10-26 14:50:34 +00:00
asm_amd64.s cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
asm_arm.s runtime,cmd/cgo: simplify C -> Go call path 2020-10-26 14:50:32 +00:00
asm_arm64.s runtime: save/restore g unconditionally on darwin/arm64 2020-10-28 13:46:11 +00:00
asm_mips64x.s runtime,cmd/cgo: simplify C -> Go call path 2020-10-26 14:50:32 +00:00
asm_mipsx.s runtime,cmd/cgo: simplify C -> Go call path 2020-10-26 14:50:32 +00:00
asm_ppc64x.h
asm_ppc64x.s runtime,cmd/cgo: simplify C -> Go call path 2020-10-26 14:50:32 +00:00
asm_riscv64.s cmd/dist,cmd/go,runtime: add support for cgo on linux/riscv64 2020-11-03 12:59:51 +00:00
asm_s390x.s runtime,cmd/cgo: simplify C -> Go call path 2020-10-26 14:50:32 +00:00
asm_wasm.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
atomic_arm64.s
atomic_mips64x.s
atomic_mipsx.s
atomic_pointer.go
atomic_ppc64x.s
atomic_riscv64.s cmd/internal/obj/riscv: add FENCE instruction 2020-03-15 07:13:18 +00:00
auxv_none.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
callers_test.go runtime: mark testCallersEqual as a test helper 2020-02-22 04:32:05 +00:00
cgo.go
cgo_mmap.go runtime: add go:nosplit to cgo_mmap.go:mmap() and sys_darwin.go:mmap() 2019-11-25 03:41:16 +00:00
cgo_ppc64x.go
cgo_sigaction.go all: avoid awkward wording from CL 236857 2020-06-08 21:36:04 +00:00
cgocall.go cmd/dist,cmd/go,runtime: add support for cgo on linux/riscv64 2020-11-03 12:59:51 +00:00
cgocallback.go
cgocheck.go cmd/compile,runtime: pass only ptr and len to some runtime calls 2020-04-08 22:19:53 +00:00
chan.go runtime: check channel's elemsize before calling race detector 2020-11-25 15:59:35 +00:00
chan_test.go runtime: disable stack shrinking in activeStackChans race window 2020-09-21 14:34:33 +00:00
chanbarrier_test.go
checkptr.go runtime: don't report a pointer alignment error for pointer-free base type 2020-03-17 20:47:06 +00:00
checkptr_test.go cmd/compile: fix checkptr handling of &^ 2020-08-20 17:48:29 +00:00
closure_test.go all: add empty line between copyright header and package clause 2020-08-17 09:45:44 +00:00
compiler.go
complex.go
complex_test.go
conv_wasm_test.go runtime: use correct truncated constants for float conversion 2020-05-06 13:55:00 +00:00
cpuflags.go runtime: improve MIPS64x memclr 2020-03-26 17:48:20 +00:00
cpuflags_amd64.go
cpuflags_arm64.go runtime: improve memmove performance on arm64 2020-11-02 15:23:43 +00:00
cpuprof.go
cputicks.go
crash_cgo_test.go runtime: use inlined function name for traceback elision 2020-11-24 21:47:44 +00:00
crash_nonunix_test.go
crash_test.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
crash_unix_test.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
debug.go runtime: update docs for GOMAXPROCS 2020-09-10 14:44:25 +00:00
debug_test.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
debugcall.go runtime: remove go115ReduceLiveness and go115RestartSeq 2020-10-30 21:13:24 +00:00
debuglog.go runtime: fix debuglog traceback printing off-by-one 2020-04-29 20:33:30 +00:00
debuglog_off.go
debuglog_on.go
debuglog_test.go
defer_test.go runtime: fix TestDeferWithRepeatedRepanics and TestIssue37688 to be less chatty 2020-04-23 18:33:44 +00:00
defs1_linux.go
defs1_netbsd_386.go
defs1_netbsd_amd64.go
defs1_netbsd_arm.go
defs1_netbsd_arm64.go
defs1_solaris_amd64.go runtime: add pipe/pipe2 on Solaris 2019-11-08 19:28:57 +00:00
defs2_linux.go
defs3_linux.go
defs_aix.go all: fix a bunch of misspellings 2019-11-15 21:04:43 +00:00
defs_aix_ppc64.go
defs_arm_linux.go
defs_darwin.go all: remove scattered remnants of darwin/386 2020-04-08 18:37:38 +00:00
defs_darwin_amd64.go
defs_darwin_arm64.go runtime: set up TLS without cgo on darwin/arm64 2020-10-28 13:25:44 +00:00
defs_dragonfly.go
defs_dragonfly_amd64.go
defs_freebsd.go
defs_freebsd_386.go runtime: correct error handling in several FreeBSD syscall wrappers 2020-12-22 15:59:17 +00:00
defs_freebsd_amd64.go runtime: correct error handling in several FreeBSD syscall wrappers 2020-12-22 15:59:17 +00:00
defs_freebsd_arm.go runtime: correct error handling in several FreeBSD syscall wrappers 2020-12-22 15:59:17 +00:00
defs_freebsd_arm64.go runtime: correct error handling in several FreeBSD syscall wrappers 2020-12-22 15:59:17 +00:00
defs_illumos_amd64.go
defs_linux.go
defs_linux_386.go runtime: revert signal stack mlocking 2020-08-13 02:17:17 +00:00
defs_linux_amd64.go runtime: revert signal stack mlocking 2020-08-13 02:17:17 +00:00
defs_linux_arm.go runtime: add file copyright header declaration 2020-09-02 10:09:21 +00:00
defs_linux_arm64.go runtime: remove unused _F_SETFL const on linux 2020-02-24 15:55:01 +00:00
defs_linux_mips64x.go runtime: add file copyright header declaration 2020-09-02 10:09:21 +00:00
defs_linux_mipsx.go
defs_linux_ppc64.go
defs_linux_ppc64le.go
defs_linux_riscv64.go runtime: add support for linux/riscv64 2020-01-19 14:04:09 +00:00
defs_linux_s390x.go
defs_netbsd.go
defs_netbsd_386.go
defs_netbsd_amd64.go
defs_netbsd_arm.go
defs_openbsd.go cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
defs_openbsd_386.go
defs_openbsd_amd64.go cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
defs_openbsd_arm.go
defs_openbsd_arm64.go runtime: add file copyright header declaration 2020-09-02 10:09:21 +00:00
defs_openbsd_mips64.go runtime: add defs for openbsd/mips64 2020-10-28 18:54:46 +00:00
defs_plan9_386.go runtime: add file copyright header declaration 2020-09-02 10:09:21 +00:00
defs_plan9_amd64.go runtime: add file copyright header declaration 2020-09-02 10:09:21 +00:00
defs_plan9_arm.go
defs_solaris.go runtime: add pipe/pipe2 on Solaris 2019-11-08 19:28:57 +00:00
defs_solaris_amd64.go
defs_windows.go
defs_windows_386.go
defs_windows_amd64.go
defs_windows_arm.go
duff_386.s
duff_amd64.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
duff_arm.s
duff_arm64.s
duff_mips64x.s
duff_ppc64x.s runtime: generate dummy duffcopy 2020-03-31 23:54:09 +00:00
duff_riscv64.s cmd/compile,cmd/internal/obj/riscv,runtime: use Duff's devices on riscv64 2020-10-28 05:02:44 +00:00
duff_s390x.s
env_plan9.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
env_posix.go runtime, syscall: use local cache for Setenv/Getenv in Plan 9 2020-06-19 11:28:19 +00:00
env_test.go runtime, syscall: use local cache for Setenv/Getenv in Plan 9 2020-06-19 11:28:19 +00:00
error.go runtime/debug: provide Addr method for errors from SetPanicOnFault 2020-09-18 17:21:06 +00:00
example_test.go
export_aix_test.go
export_arm_test.go
export_darwin_test.go internal/syscall/unix: use fcntl64 on 32-bit GNU/Linux systems 2019-12-23 23:29:48 +00:00
export_debug_test.go runtime: perform debug call injection on a new goroutine 2020-04-29 21:29:11 +00:00
export_debuglog_test.go
export_futex_test.go
export_linux_test.go
export_mmap_test.go
export_pipe2_test.go runtime: use pipe2 syscall for Pipe in tests 2020-11-18 19:08:11 +00:00
export_pipe_test.go runtime: use pipe2 syscall for Pipe in tests 2020-11-18 19:08:11 +00:00
export_solaris_test.go runtime: add pipe/pipe2 on Solaris 2019-11-08 19:28:57 +00:00
export_test.go runtime: shift timeHistogram buckets and allow negative durations 2020-12-23 17:31:18 +00:00
export_unix_test.go runtime: use pipe2 syscall for Pipe in tests 2020-11-18 19:08:11 +00:00
export_windows_test.go
extern.go runtime: default to MADV_DONTNEED on Linux 2020-11-02 16:14:49 +00:00
fastlog2.go
fastlog2_test.go
fastlog2table.go
float.go
funcdata.h cmd/internal/objabi, runtime: compact FUNCDATA indices 2020-10-30 21:14:09 +00:00
futex_test.go
gc_test.go runtime: add readMetrics latency benchmark 2020-10-26 18:29:12 +00:00
gcinfo_test.go runtime: move checkmarks to a separate bitmap 2020-08-17 14:31:20 +00:00
go_tls.h
hash32.go
hash64.go runtime: add support for linux/riscv64 2020-01-19 14:04:09 +00:00
hash_test.go runtime: raise alert threshold on window smhasher test 2020-06-12 20:46:27 +00:00
heapdump.go runtime: add world-stopped assertions 2020-10-30 20:20:58 +00:00
histogram.go runtime,runtime/metrics: use explicit histogram boundaries 2021-01-08 03:43:44 +00:00
histogram_test.go runtime: shift timeHistogram buckets and allow negative durations 2020-12-23 17:31:18 +00:00
iface.go Revert "cmd/compile: split exported/non-exported methods for interface type" 2020-10-28 17:10:08 +00:00
iface_test.go cmd/compile: use staticuint64s instead of staticbytes 2020-03-04 21:43:01 +00:00
lfstack.go
lfstack_32bit.go
lfstack_64bit.go runtime: add support for linux/riscv64 2020-01-19 14:04:09 +00:00
lfstack_test.go
libfuzzer.go
libfuzzer_amd64.s
libfuzzer_arm64.s
lock_futex.go runtime: fix race condition between timer and event handler 2020-05-31 18:35:04 +00:00
lock_js.go runtime: fix race condition between timer and event handler 2020-05-31 18:35:04 +00:00
lock_sema.go runtime: fix race condition between timer and event handler 2020-05-31 18:35:04 +00:00
lockrank.go runtime: add lock rank partial order edge pollDesc -> spanSetSpine 2020-11-10 16:25:38 +00:00
lockrank_off.go runtime: add world-stopped assertions 2020-10-30 20:20:58 +00:00
lockrank_on.go runtime: tighten systemstack in lock assertions 2020-10-30 21:02:17 +00:00
malloc.go runtime: avoid a bit of unneeded work when MemProfileRate==1 2020-11-05 16:43:34 +00:00
malloc_test.go runtime: align 12-byte objects to 8 bytes on 32-bit systems 2020-10-01 19:13:03 +00:00
map.go runtime: fix file references in hiter's comments 2020-11-05 16:32:15 +00:00
map_benchmark_test.go all: add empty line between copyright header and package clause 2020-08-17 09:45:44 +00:00
map_fast32.go runtime: code cleanup about map 2020-09-30 19:59:48 +00:00
map_fast64.go runtime: code cleanup about map 2020-09-30 19:59:48 +00:00
map_faststr.go runtime: code cleanup about map 2020-09-30 19:59:48 +00:00
map_test.go runtime: avoid memclr call for keys in mapdelete_fast 2020-08-17 04:56:56 +00:00
mbarrier.go cmd/compile: unify reflect, string and slice copy runtime functions 2020-09-16 04:37:14 +00:00
mbitmap.go runtime: make the span allocation purpose more explicit 2020-10-26 17:27:14 +00:00
mcache.go runtime: decouple consistent stats from mcache and allow P-less update 2020-11-02 21:21:46 +00:00
mcentral.go runtime: remove residual !go115NewMCentralImpl fields 2020-10-31 17:29:05 +00:00
mcheckmark.go runtime: add world-stopped assertions 2020-10-30 20:20:58 +00:00
mem_aix.go runtime: delineate which memstats are system stats with a type 2020-10-26 18:09:41 +00:00
mem_bsd.go runtime: delineate which memstats are system stats with a type 2020-10-26 18:09:41 +00:00
mem_darwin.go runtime: delineate which memstats are system stats with a type 2020-10-26 18:09:41 +00:00
mem_js.go runtime: delineate which memstats are system stats with a type 2020-10-26 18:09:41 +00:00
mem_linux.go runtime: delineate which memstats are system stats with a type 2020-10-26 18:09:41 +00:00
mem_plan9.go runtime: delineate which memstats are system stats with a type 2020-10-26 18:09:41 +00:00
mem_windows.go runtime: delineate which memstats are system stats with a type 2020-10-26 18:09:41 +00:00
memclr_386.s
memclr_amd64.s
memclr_arm.s all: fix dead links to inferno-os bitbucket repository 2020-06-04 07:25:06 +00:00
memclr_arm64.s
memclr_mips64x.s runtime: improve MIPS64x memclr 2020-03-26 17:48:20 +00:00
memclr_mipsx.s
memclr_plan9_386.s
memclr_plan9_amd64.s
memclr_ppc64x.s
memclr_riscv64.s runtime: fix file permission 2020-02-25 15:48:09 +00:00
memclr_s390x.s
memclr_wasm.s
memmove_386.s all: fix dead links to inferno-os bitbucket repository 2020-06-04 07:25:06 +00:00
memmove_amd64.s all: fix dead links to inferno-os bitbucket repository 2020-06-04 07:25:06 +00:00
memmove_arm.s all: fix dead links to inferno-os bitbucket repository 2020-06-04 07:25:06 +00:00
memmove_arm64.s runtime: improve memmove performance on arm64 2020-11-02 15:23:43 +00:00
memmove_linux_amd64_test.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
memmove_mips64x.s runtime: document special memmove requirements 2020-01-22 18:54:48 +00:00
memmove_mipsx.s runtime: document special memmove requirements 2020-01-22 18:54:48 +00:00
memmove_plan9_386.s all: fix dead links to inferno-os bitbucket repository 2020-06-04 07:25:06 +00:00
memmove_plan9_amd64.s all: fix dead links to inferno-os bitbucket repository 2020-06-04 07:25:06 +00:00
memmove_ppc64x.s runtime: improve memmove for short moves on ppc64 2020-03-19 17:52:50 +00:00
memmove_riscv64.s runtime: fix file permission 2020-02-25 15:48:09 +00:00
memmove_s390x.s runtime: document special memmove requirements 2020-01-22 18:54:48 +00:00
memmove_test.go runtime: improve memmove performance on arm64 2020-11-02 15:23:43 +00:00
memmove_wasm.s runtime: document special memmove requirements 2020-01-22 18:54:48 +00:00
metrics.go runtime/metrics: change unit on *-by-size metrics to match bucket unit 2021-01-08 16:28:15 +00:00
metrics_test.go runtime/metrics: change unit on *-by-size metrics to match bucket unit 2021-01-08 16:28:15 +00:00
mfinal.go Revert "cmd/compile: split exported/non-exported methods for interface type" 2020-10-28 17:10:08 +00:00
mfinal_test.go
mfixalloc.go runtime: delineate which memstats are system stats with a type 2020-10-26 18:09:41 +00:00
mgc.go runtime: add heap lock assertions 2020-10-30 20:21:14 +00:00
mgcmark.go runtime: don't take allglock in tracebackothers 2021-01-05 20:00:43 +00:00
mgcscavenge.go runtime: decouple consistent stats from mcache and allow P-less update 2020-11-02 21:21:46 +00:00
mgcscavenge_test.go runtime: fix scavenging tests for pallocChunkBytes huge pages and larger 2020-10-20 15:19:09 +00:00
mgcstack.go cmd/compile: don't allow go:notinheap on the heap or stack 2020-08-25 01:46:05 +00:00
mgcsweep.go runtime: decouple consistent stats from mcache and allow P-less update 2020-11-02 21:21:46 +00:00
mgcwork.go runtime: make the span allocation purpose more explicit 2020-10-26 17:27:14 +00:00
mheap.go runtime: allow physical page aligned stacks to be allocated 2020-11-04 06:14:02 +00:00
mkduff.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
mkfastlog2table.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
mkpreempt.go reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
mksizeclasses.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
mmap.go
mpagealloc.go runtime: add heap lock assertions 2020-10-30 20:21:14 +00:00
mpagealloc_32bit.go runtime: rename pageAlloc receiver 2020-10-23 16:54:35 +00:00
mpagealloc_64bit.go runtime: rename pageAlloc receiver 2020-10-23 16:54:35 +00:00
mpagealloc_test.go runtime: define the AddrRange used for testing in terms of addrRange 2020-10-22 15:25:33 +00:00
mpagecache.go runtime: add heap lock assertions 2020-10-30 20:21:14 +00:00
mpagecache_test.go runtime: ensure allocToCache updates searchAddr in a valid way 2020-04-27 21:37:31 +00:00
mpallocbits.go runtime: bit parallel implementation of findBitRange64 2020-08-17 22:00:17 +00:00
mpallocbits_test.go runtime: bit parallel implementation of findBitRange64 2020-08-17 22:00:17 +00:00
mprof.go runtime/pprof: plumb labels for goroutine profiles 2020-04-22 16:01:25 +00:00
mranges.go runtime: implement addrRanges.findSucc with a binary search 2020-10-26 22:00:15 +00:00
mranges_test.go runtime: add tests for addrRanges.add 2020-10-23 23:01:52 +00:00
msan.go cmd/compile, runtime: use __msan_memmove for moving data, split msanread to fields 2020-12-03 15:40:11 +00:00
msan0.go
msan_amd64.s cmd/compile, runtime: use __msan_memmove for moving data, split msanread to fields 2020-12-03 15:40:11 +00:00
msan_arm64.s cmd/compile, runtime: use __msan_memmove for moving data, split msanread to fields 2020-12-03 15:40:11 +00:00
msize.go runtime: use divRoundUp 2020-03-20 16:05:35 +00:00
mspanset.go runtime: break down memstats.gc_sys 2020-10-26 18:10:04 +00:00
mstats.go runtime: decouple consistent stats from mcache and allow P-less update 2020-11-02 21:21:46 +00:00
mwbbuf.go runtime: remove debugCachedWork 2020-10-15 15:55:19 +00:00
nbpipe_fcntl_libc_test.go internal/syscall/unix: use fcntl64 on 32-bit GNU/Linux systems 2019-12-23 23:29:48 +00:00
nbpipe_fcntl_unix_test.go internal/syscall/unix: use fcntl64 on 32-bit GNU/Linux systems 2019-12-23 23:29:48 +00:00
nbpipe_pipe.go
nbpipe_pipe2.go runtime: add pipe/pipe2 on Solaris 2019-11-08 19:28:57 +00:00
nbpipe_test.go runtime: add pipe/pipe2 on Solaris 2019-11-08 19:28:57 +00:00
net_plan9.go
netpoll.go cmd/compile, runtime: store pointers to go:notinheap types indirectly 2020-10-27 21:29:13 +00:00
netpoll_aix.go runtime: replace the type of netpollWakeSig from a uintptr to a uint32 2020-04-10 03:29:25 +00:00
netpoll_epoll.go runtime: replace the type of netpollWakeSig from a uintptr to a uint32 2020-04-10 03:29:25 +00:00
netpoll_fake.go
netpoll_kqueue.go runtime: replace the type of netpollWakeSig from a uintptr to a uint32 2020-04-10 03:29:25 +00:00
netpoll_os_test.go runtime: converge duplicate calls to netpollBreak into one 2020-03-27 17:14:16 +00:00
netpoll_solaris.go runtime: replace the type of netpollWakeSig from a uintptr to a uint32 2020-04-10 03:29:25 +00:00
netpoll_stub.go runtime: avoid lock starvation in TestNetpollBreak on Plan 9 2020-06-14 17:50:11 +00:00
netpoll_windows.go runtime: replace the type of netpollWakeSig from a uintptr to a uint32 2020-04-10 03:29:25 +00:00
norace_linux_test.go
norace_test.go
numcpu_freebsd_test.go
os2_aix.go runtime: move ppc64/aix cpu feature detection to internal/cpu 2020-10-29 13:49:26 +00:00
os2_freebsd.go
os2_openbsd.go
os2_plan9.go
os2_solaris.go
os3_plan9.go
os3_solaris.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_aix.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_android.go
os_darwin.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_darwin_arm64.go runtime: consistently seed fastrand state across archs 2019-11-12 21:40:12 +00:00
os_dragonfly.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_freebsd.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_freebsd2.go
os_freebsd_amd64.go
os_freebsd_arm.go runtime: consistently seed fastrand state across archs 2019-11-12 21:40:12 +00:00
os_freebsd_arm64.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
os_freebsd_noauxv.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
os_illumos.go
os_js.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_linux.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_linux_arm.go runtime: mlock top of signal stack on Linux 5.2–5.4.1 2019-12-05 01:48:14 +00:00
os_linux_arm64.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
os_linux_be64.go runtime: prevent stack growth after fork in runtime.sigfillset 2020-12-09 03:01:58 +00:00
os_linux_generic.go runtime: prevent stack growth after fork in runtime.sigfillset 2020-12-09 03:01:58 +00:00
os_linux_mips64x.go runtime: prevent stack growth after fork in runtime.sigfillset 2020-12-09 03:01:58 +00:00
os_linux_mipsx.go runtime: prevent stack growth after fork in runtime.sigfillset 2020-12-09 03:01:58 +00:00
os_linux_noauxv.go
os_linux_novdso.go
os_linux_ppc64x.go runtime: mlock top of signal stack on Linux 5.2–5.4.1 2019-12-05 01:48:14 +00:00
os_linux_riscv64.go runtime: add missing code for linux/riscv64 2020-01-23 14:36:57 +00:00
os_linux_s390x.go runtime: move s390x HWCap CPU feature detection to internal/cpu 2020-10-22 17:11:03 +00:00
os_linux_x86.go runtime: revert signal stack mlocking 2020-08-13 02:17:17 +00:00
os_netbsd.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_netbsd_386.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
os_netbsd_amd64.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
os_netbsd_arm.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
os_netbsd_arm64.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
os_nonopenbsd.go
os_only_solaris.go
os_openbsd.go runtime: convert openbsd/amd64 locking to libc 2021-01-20 09:06:08 +00:00
os_openbsd_arm.go runtime: consistently seed fastrand state across archs 2019-11-12 21:40:12 +00:00
os_openbsd_arm64.go internal/cpu: consolidate arm64 feature detection 2020-10-20 11:09:52 +00:00
os_openbsd_libc.go cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
os_openbsd_mips64.go runtime: add support for openbsd/mips64 2020-10-29 08:07:46 +00:00
os_openbsd_syscall.go cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
os_openbsd_syscall1.go runtime: convert openbsd/amd64 locking to libc 2021-01-20 09:06:08 +00:00
os_plan9.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_plan9_arm.go runtime: consistently seed fastrand state across archs 2019-11-12 21:40:12 +00:00
os_solaris.go runtime: add pipe/pipe2 on Solaris 2019-11-08 19:28:57 +00:00
os_windows.go runtime: free Windows event handles after last lock is dropped 2021-01-18 18:16:12 +00:00
os_windows_arm.go
panic.go runtime: remove debugCachedWork 2020-10-15 15:55:19 +00:00
panic32.go
panic_test.go runtime: fix bad link to issue tracker in test 2020-04-22 16:03:11 +00:00
plugin.go
preempt.go runtime: remove go115ReduceLiveness and go115RestartSeq 2020-10-30 21:13:24 +00:00
preempt_386.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_amd64.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_arm.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_arm64.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_mips64x.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_mipsx.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_nonwindows.go runtime: protect against external code calling ExitProcess 2020-01-09 17:28:58 +00:00
preempt_ppc64x.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_riscv64.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_s390x.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
preempt_wasm.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
print.go cmd/compile: print pointers to go:notinheap types without converting to unsafe.Pointer 2020-10-27 22:13:30 +00:00
proc.go cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
proc_runtime_test.go
proc_test.go runtime: disable stack shrinking in activeStackChans race window 2020-09-21 14:34:33 +00:00
profbuf.go
profbuf_test.go
proflabel.go
race.go runtime: swap the order of raceacquire() and racerelease() 2020-11-13 15:00:23 +00:00
race0.go runtime: swap the order of raceacquire() and racerelease() 2020-11-13 15:00:23 +00:00
race_amd64.s runtime: declare arg size/map for race version of sync/atomic functions 2020-11-16 17:26:46 +00:00
race_arm64.s runtime: declare arg size/map for race version of sync/atomic functions 2020-11-16 17:26:46 +00:00
race_ppc64le.s runtime: declare arg size/map for race version of sync/atomic functions 2020-11-16 17:26:46 +00:00
rand_test.go
rdebug.go
relax_stub.go
rt0_aix_ppc64.s
rt0_android_386.s
rt0_android_amd64.s
rt0_android_arm.s
rt0_android_arm64.s
rt0_darwin_amd64.s
rt0_darwin_arm64.s cmd/link: support internal linking on darwin/arm64 2020-10-14 21:32:26 +00:00
rt0_dragonfly_amd64.s
rt0_freebsd_386.s
rt0_freebsd_amd64.s
rt0_freebsd_arm.s
rt0_freebsd_arm64.s runtime: use the CBZ instruction in the assembler 2020-08-17 20:59:59 +00:00
rt0_illumos_amd64.s
rt0_ios_amd64.s all: add GOOS=ios GOARCH=amd64 target for the ios simulator 2020-10-22 17:13:24 +00:00
rt0_ios_arm64.s runtime: define ios/arm64 entry points 2020-10-19 18:31:05 +00:00
rt0_js_wasm.s
rt0_linux_386.s
rt0_linux_amd64.s
rt0_linux_arm.s
rt0_linux_arm64.s runtime: use CBZ/CBNZ in linux/arm64 assembly code 2020-03-03 09:29:47 +00:00
rt0_linux_mips64x.s
rt0_linux_mipsx.s
rt0_linux_ppc64.s runtime: add file copyright header declaration 2020-09-02 10:09:21 +00:00
rt0_linux_ppc64le.s runtime: add file copyright header declaration 2020-09-02 10:09:21 +00:00
rt0_linux_riscv64.s runtime: add support for linux/riscv64 2020-01-19 14:04:09 +00:00
rt0_linux_s390x.s
rt0_netbsd_386.s
rt0_netbsd_amd64.s
rt0_netbsd_arm.s
rt0_netbsd_arm64.s runtime: use the CBZ instruction in the assembler 2020-08-17 20:59:59 +00:00
rt0_openbsd_386.s
rt0_openbsd_amd64.s
rt0_openbsd_arm.s
rt0_openbsd_arm64.s runtime: use the CBZ instruction in the assembler 2020-08-17 20:59:59 +00:00
rt0_openbsd_mips64.s runtime: add support for openbsd/mips64 2020-10-29 08:07:46 +00:00
rt0_plan9_386.s
rt0_plan9_amd64.s
rt0_plan9_arm.s
rt0_solaris_amd64.s
rt0_windows_386.s
rt0_windows_amd64.s
rt0_windows_arm.s
runtime-gdb.py runtime: make runtime-gdb.py tolerant of creatively-named gdb versions 2020-06-03 22:07:42 +00:00
runtime-gdb_test.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
runtime-lldb_test.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
runtime.go
runtime1.go runtime: default to MADV_DONTNEED on Linux 2020-11-02 16:14:49 +00:00
runtime2.go runtime: don't take allglock in tracebackothers 2021-01-05 20:00:43 +00:00
runtime_linux_test.go
runtime_mmap_test.go
runtime_test.go
runtime_unix_test.go
rwmutex.go runtime: static lock ranking for the runtime (enabled by GOEXPERIMENT) 2020-04-07 21:51:03 +00:00
rwmutex_test.go
select.go runtime: check channel's elemsize before calling race detector 2020-11-25 15:59:35 +00:00
sema.go runtime: static lock ranking for the runtime (enabled by GOEXPERIMENT) 2020-04-07 21:51:03 +00:00
sema_test.go runtime: really wait for goroutines in testSemaHandoff 2020-02-22 04:08:12 +00:00
semasleep_test.go
sigaction.go
signal_386.go cmd/internal/obj, runtime: preempt & restart some instruction sequences 2020-05-06 15:41:12 +00:00
signal_aix_ppc64.go
signal_amd64.go cmd/internal/obj, runtime: preempt & restart some instruction sequences 2020-05-06 15:41:12 +00:00
signal_arm.go cmd/internal/obj, runtime: preempt & restart some instruction sequences 2020-05-06 15:41:12 +00:00
signal_arm64.go cmd/internal/obj, runtime: preempt & restart some instruction sequences 2020-05-06 15:41:12 +00:00
signal_darwin.go
signal_darwin_amd64.go
signal_darwin_arm64.go
signal_dragonfly.go
signal_dragonfly_amd64.go
signal_freebsd.go
signal_freebsd_386.go
signal_freebsd_amd64.go
signal_freebsd_arm.go
signal_freebsd_arm64.go
signal_linux_386.go
signal_linux_amd64.go
signal_linux_arm.go
signal_linux_arm64.go
signal_linux_mips64x.go
signal_linux_mipsx.go
signal_linux_ppc64x.go
signal_linux_riscv64.go runtime: add support for linux/riscv64 2020-01-19 14:04:09 +00:00
signal_linux_s390x.go cmd/internal/obj, runtime: preempt & restart some instruction sequences 2020-05-06 15:41:12 +00:00
signal_mips64x.go runtime: add support for openbsd/mips64 2020-10-29 08:07:46 +00:00
signal_mipsx.go cmd/internal/obj, runtime: preempt & restart some instruction sequences 2020-05-06 15:41:12 +00:00
signal_netbsd.go
signal_netbsd_386.go
signal_netbsd_amd64.go
signal_netbsd_arm.go
signal_netbsd_arm64.go
signal_openbsd.go
signal_openbsd_386.go
signal_openbsd_amd64.go
signal_openbsd_arm.go
signal_openbsd_arm64.go
signal_openbsd_mips64.go runtime: add support for openbsd/mips64 2020-10-29 08:07:46 +00:00
signal_plan9.go
signal_ppc64x.go cmd/internal/obj, runtime: preempt & restart some instruction sequences 2020-05-06 15:41:12 +00:00
signal_riscv64.go cmd/internal/obj, runtime: preempt & restart some instruction sequences 2020-05-06 15:41:12 +00:00
signal_solaris.go
signal_solaris_amd64.go
signal_unix.go runtime: linux iscgo support for not blocking nptl signals 2020-12-23 02:10:51 +00:00
signal_windows.go runtime: adjust address calculation in identifying abort on windows/arm 2020-11-27 22:28:11 +00:00
signal_windows_test.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
sigqueue.go os/signal: fix a deadlock with syscall.AllThreadsSyscall() use 2020-12-23 05:27:04 +00:00
sigqueue_note.go
sigqueue_plan9.go os/signal: fix a deadlock with syscall.AllThreadsSyscall() use 2020-12-23 05:27:04 +00:00
sigtab_aix.go
sigtab_linux_generic.go runtime: handle signal 34 for musl setgid 2020-10-28 00:48:22 +00:00
sigtab_linux_mipsx.go runtime: handle signal 34 for musl setgid 2020-10-28 00:48:22 +00:00
sizeclasses.go runtime: add 24 byte allocation size class 2020-09-14 19:21:56 +00:00
sizeof_test.go runtime, time: gofmt 2020-05-26 22:06:26 +00:00
slice.go runtime: use old capacity to decide on append growth regime 2020-09-25 03:59:54 +00:00
slice_test.go all: add empty line between copyright header and package clause 2020-08-17 09:45:44 +00:00
softfloat64.go runtime: use quiet NaNs in softfloat implementation 2020-03-02 17:17:18 +00:00
softfloat64_test.go
stack.go runtime: make the span allocation purpose more explicit 2020-10-26 17:27:14 +00:00
stack_test.go runtime: use inlined function name for traceback elision 2020-11-24 21:47:44 +00:00
string.go runtime: replace index and contains with bytealg calls 2020-08-17 13:20:03 +00:00
string_test.go runtime: revert signal stack mlocking 2020-08-13 02:17:17 +00:00
stubs.go os: add ReadFile, WriteFile, CreateTemp (was TempFile), MkdirTemp (was TempDir) from io/ioutil 2020-12-02 17:00:06 +00:00
stubs2.go
stubs3.go
stubs_386.go
stubs_amd64.go cmd/compile, runtime: use more registers for amd64 write barrier calls 2020-03-31 21:26:33 +00:00
stubs_arm.go
stubs_arm64.go
stubs_linux.go
stubs_mips64x.go
stubs_mipsx.go
stubs_nonlinux.go
stubs_ppc64x.go
stubs_s390x.go
symtab.go cmd/internal/objabi, runtime: compact FUNCDATA indices 2020-10-30 21:14:09 +00:00
symtab_test.go
sys_aix_ppc64.s
sys_arm.go
sys_arm64.go
sys_darwin.go cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
sys_darwin_amd64.s internal/cpu: add darwin/arm64 CPU feature detection support 2020-12-07 07:59:54 +00:00
sys_darwin_arm64.go runtime: set up TLS without cgo on darwin/arm64 2020-10-28 13:25:44 +00:00
sys_darwin_arm64.s internal/cpu: add darwin/arm64 CPU feature detection support 2020-12-07 07:59:54 +00:00
sys_dragonfly_amd64.s
sys_freebsd_386.s runtime: correct error handling in several FreeBSD syscall wrappers 2020-12-22 15:59:17 +00:00
sys_freebsd_amd64.s runtime: correct error handling in several FreeBSD syscall wrappers 2020-12-22 15:59:17 +00:00
sys_freebsd_arm.s runtime: correct error handling in several FreeBSD syscall wrappers 2020-12-22 15:59:17 +00:00
sys_freebsd_arm64.s runtime: correct error handling in several FreeBSD syscall wrappers 2020-12-22 15:59:17 +00:00
sys_libc.go cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
sys_linux_386.s runtime: revert signal stack mlocking 2020-08-13 02:17:17 +00:00
sys_linux_amd64.s reflect,runtime: use internal ABI for selected ASM routines, attempt 2 2020-10-30 17:41:35 +00:00
sys_linux_arm.s runtime: make nanotime1 reentrant 2020-08-10 18:06:04 +00:00
sys_linux_arm64.s runtime: make nanotime1 reentrant 2020-08-10 18:06:04 +00:00
sys_linux_mips64x.s runtime: check mips64 VDSO clock_gettime return code 2021-01-07 01:55:27 +00:00
sys_linux_mipsx.s runtime: negate errno value for mips pipe/pipe2 2020-03-24 11:03:07 +00:00
sys_linux_ppc64x.s runtime: make nanotime1 reentrant 2020-08-10 18:06:04 +00:00
sys_linux_riscv64.s cmd/internal/obj/riscv: add FENCE instruction 2020-03-15 07:13:18 +00:00
sys_linux_s390x.s
sys_mips64x.go
sys_mipsx.go
sys_netbsd_386.s
sys_netbsd_amd64.s
sys_netbsd_arm.s
sys_netbsd_arm64.s runtime: correct arguments to pipe2 syscall in pipe on netbsd/arm64 2020-09-29 19:01:28 +00:00
sys_nonppc64x.go
sys_openbsd.go cmd/link,runtime: switch openbsd/amd64 to pthreads 2021-01-19 12:49:13 +00:00
sys_openbsd1.go runtime: convert openbsd/amd64 locking to libc 2021-01-20 09:06:08 +00:00
sys_openbsd_386.s
sys_openbsd_amd64.s runtime: convert openbsd/amd64 locking to libc 2021-01-20 09:06:08 +00:00
sys_openbsd_arm.s runtime, syscall: correct openbsd/arm and openbsd/arm64 syscalls for OpenBSD 6.7 2020-05-26 17:02:46 +00:00
sys_openbsd_arm64.s runtime, syscall: correct openbsd/arm and openbsd/arm64 syscalls for OpenBSD 6.7 2020-05-26 17:02:46 +00:00
sys_openbsd_mips64.s runtime: correct sigfwd on openbsd/mips64 2020-12-08 01:46:45 +00:00
sys_plan9_386.s
sys_plan9_amd64.s
sys_plan9_arm.s
sys_ppc64x.go
sys_riscv64.go runtime: add support for linux/riscv64 2020-01-19 14:04:09 +00:00
sys_s390x.go
sys_solaris_amd64.s
sys_wasm.go
sys_wasm.s runtime: use correct truncated constants for float conversion 2020-05-06 13:55:00 +00:00
sys_windows_386.s runtime: allow for usleep2HighRes to run without TLS setup 2020-11-24 07:07:06 +00:00
sys_windows_amd64.s runtime: allow for usleep2HighRes to run without TLS setup 2020-11-24 07:07:06 +00:00
sys_windows_arm.s runtime: support new callbackasm1 calling convention on windows/arm 2020-11-19 13:34:29 +00:00
sys_x86.go
syscall2_solaris.go
syscall_aix.go
syscall_solaris.go runtime: syscall_forkx on Solaris can return error on success 2019-12-11 01:10:28 +00:00
syscall_windows.go runtime: support new callbackasm1 calling convention on windows/arm 2020-11-19 13:34:29 +00:00
syscall_windows_test.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
textflag.h Revert "cmd/asm: align an instruction or a function's address" 2020-03-31 16:55:59 +00:00
time.go runtime: don't adjust timer pp field in timerWaiting status 2021-01-20 19:55:44 +00:00
time_fake.go
time_nofake.go
time_test.go all: enable more tests on macOS/ARM64 2020-10-09 01:09:06 +00:00
timeasm.go
timestub.go
timestub2.go
tls_arm.s all: remove scattered remnants of darwin/arm 2020-04-08 18:35:49 +00:00
tls_arm64.h all: add GOOS=ios 2020-09-23 18:12:59 +00:00
tls_arm64.s runtime: use indexed load/store in ARM64 assembly 2020-11-02 15:40:28 +00:00
tls_mips64x.s
tls_mipsx.s
tls_ppc64x.s
tls_riscv64.s cmd/dist,cmd/go,runtime: add support for cgo on linux/riscv64 2020-11-03 12:59:51 +00:00
tls_s390x.s
trace.go runtime: manage gcBgMarkWorkers with a global pool 2020-10-30 15:25:49 +00:00
traceback.go runtime: don't take allglock in tracebackothers 2021-01-05 20:00:43 +00:00
type.go Revert "cmd/compile: split exported/non-exported methods for interface type" 2020-10-28 17:10:08 +00:00
typekind.go
utf8.go all: fix typo in RuneSelf, runeSelf comments 2020-01-06 02:46:02 +00:00
vdso_elf32.go
vdso_elf64.go
vdso_freebsd.go
vdso_freebsd_arm.go
vdso_freebsd_arm64.go
vdso_freebsd_x86.go
vdso_in_none.go
vdso_linux.go
vdso_linux_386.go
vdso_linux_amd64.go runtime: don't crash if vsyscall and vdso are disabled on x86_64 2020-09-30 05:39:59 +00:00
vdso_linux_arm.go
vdso_linux_arm64.go
vdso_linux_mips64x.go
vdso_linux_ppc64x.go
vlop_386.s all: fix dead links to inferno-os bitbucket repository 2020-06-04 07:25:06 +00:00
vlop_arm.s all: fix dead links to inferno-os bitbucket repository 2020-06-04 07:25:06 +00:00
vlop_arm_test.go
vlrt.go all: drop 387 support 2020-10-02 00:00:51 +00:00
wincallback.go all: update to use os.ReadFile, os.WriteFile, os.CreateTemp, os.MkdirTemp 2020-12-09 19:12:23 +00:00
write_err.go
write_err_android.go
zcallback_windows.go
zcallback_windows.s
zcallback_windows_arm.s