1
0
mirror of https://github.com/golang/go synced 2024-10-02 04:18:33 -06:00
go/src/runtime
Austin Clements f3b5a2bc19 runtime: prevent descheduling while holding rwmutex read lock
Currently only the rwmutex write lock prevents descheduling. The read
lock does not. This leads to the following situation:

1. A reader acquires the lock and gets descheduled.

2. GOMAXPROCS writers attempt to acquire the lock (or at least one
writer does, followed by readers). This blocks all of the Ps.

3. There is no 3. The descheduled reader never gets to run again
because there are no Ps, so it never releases the lock and the system
deadlocks.

Fix this by preventing descheduling while holding the read lock. This
requires also rewriting TestParallelRWMutexReaders to always create
enough GOMAXPROCS and to use non-blocking operations for
synchronization.

Fixes #20903.

Change-Id: Ibd460663a7e5a555be5490e13b2eaaa295fac39f
Reviewed-on: https://go-review.googlesource.com/47632
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-07-06 17:04:25 +00:00
..
cgo runtime/cgo: fix typos 2017-06-21 15:54:38 +00:00
debug runtime/debug: mark TestSetGCPercent as flaky 2017-04-24 22:11:58 +00:00
internal cmd/internal/obj/mips: add support of LLV, SCV, NOOP instructions 2017-05-16 17:15:11 +00:00
msan
pprof runtime/pprof: Fix type name in function comment 2017-07-05 18:26:47 +00:00
race testing: consider a test failed after race errors 2017-04-10 14:36:02 +00:00
testdata runtime: get more info for TestCgoSignalDeadlock failures 2017-06-27 00:34:53 +00:00
trace runtime/trace: better output when test fails 2017-04-14 12:21:02 +00:00
alg.go runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
append_test.go runtime: make append only clear uncopied memory 2016-10-04 22:40:20 +00:00
asm_386.s runtime: remove unused cpuid_X variables 2017-05-10 19:28:42 +00:00
asm_amd64.s runtime: remove unused cpuid_X variables 2017-05-10 19:28:42 +00:00
asm_amd64p32.s runtime: remove unused cpuid_X variables 2017-05-10 19:28:42 +00:00
asm_arm64.s cmd/compile, runtime: simplify multiway select implementation 2017-03-07 20:14:17 +00:00
asm_arm.s runtime: YIELD in procyield on ARM 2017-06-09 20:33:29 +00:00
asm_mips64x.s cmd/compile, runtime: simplify multiway select implementation 2017-03-07 20:14:17 +00:00
asm_mipsx.s cmd/compile, runtime: simplify multiway select implementation 2017-03-07 20:14:17 +00:00
asm_ppc64x.h all: single space after period. 2016-03-02 00:13:47 +00:00
asm_ppc64x.s cmd/asm: detect invalid DS form offsets for ppc64x 2017-04-17 21:24:35 +00:00
asm_s390x.s cmd/compile, runtime: simplify multiway select implementation 2017-03-07 20:14:17 +00:00
asm.s runtime: handle inlined calls in runtime.Callers 2017-03-29 17:22:08 +00:00
atomic_arm64.s runtime: break atomics out into package runtime/internal/atomic 2015-11-10 17:38:04 +00:00
atomic_mips64x.s runtime: added assembly part of linux/mips64{,le} support 2015-11-12 04:46:17 +00:00
atomic_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
atomic_pointer.go runtime: perform write barrier before pointer write 2016-10-28 20:47:52 +00:00
atomic_ppc64x.s sync/atomic, runtime/internal/atomic: improve ppc64x atomics 2016-05-05 18:52:28 +00:00
callers_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_mmap.go runtime: intercept munmap as we do mmap 2017-06-06 23:26:55 +00:00
cgo_ppc64x.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_sigaction.go runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
cgo.go runtime: access _cgo_yield indirectly 2017-03-24 15:37:56 +00:00
cgocall.go runtime: handle SIGPIPE in c-archive and c-shared programs 2017-02-03 20:07:36 +00:00
cgocallback.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgocheck.go runtime: rename _MSpanStack -> _MSpanManual 2017-04-13 18:20:30 +00:00
chan_test.go all: don't call t.Fatal from a goroutine 2016-11-15 15:13:48 +00:00
chan.go runtime: remove unused *chantype parameters 2017-03-21 17:10:16 +00:00
chanbarrier_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
closure_test.go
compiler.go all: single space after period. 2016-03-02 00:13:47 +00:00
complex_test.go
complex.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
cpuflags_amd64.go runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
cpuprof.go runtime/pprof: use new profile buffers for CPU profiling 2017-02-24 17:01:47 +00:00
cputicks.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
crash_cgo_test.go runtime: don't run TestCgoNumGoroutine on Windows or Plan 9 2017-06-14 17:28:02 +00:00
crash_nonunix_test.go runtime: if the test program hangs, try to get a stack trace 2016-06-15 15:03:48 +00:00
crash_test.go runtime: deflake TestPanicRace 2017-06-07 00:55:56 +00:00
crash_unix_test.go runtime, syscall: reset signal handlers to default in child 2017-06-14 14:00:56 +00:00
debug.go all: single space after period. 2016-03-02 00:13:47 +00:00
defs1_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_arm.go runtime, cmd/link: fix netbsd/arm EABI support 2016-10-24 15:23:13 +00:00
defs1_solaris_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs2_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs3_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_arm_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_darwin_386.go runtime: write sigsetstack for Darwin, fix sigaction arg 2015-12-18 20:56:10 +00:00
defs_darwin_amd64.go runtime: write sigsetstack for Darwin, fix sigaction arg 2015-12-18 20:56:10 +00:00
defs_darwin_arm64.go runtime: write sigsetstack for Darwin, fix sigaction arg 2015-12-18 20:56:10 +00:00
defs_darwin_arm.go runtime: write sigsetstack for Darwin, fix sigaction arg 2015-12-18 20:56:10 +00:00
defs_darwin.go runtime: write sigsetstack for Darwin, fix sigaction arg 2015-12-18 20:56:10 +00:00
defs_dragonfly_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_dragonfly.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_freebsd_386.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
defs_freebsd_amd64.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
defs_freebsd_arm.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
defs_freebsd.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
defs_linux_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_arm64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_arm.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_mips64x.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
defs_linux_ppc64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_ppc64le.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_s390x.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux.go
defs_nacl_386.go
defs_nacl_amd64p32.go
defs_nacl_arm.go
defs_netbsd_386.go
defs_netbsd_amd64.go
defs_netbsd_arm.go
defs_netbsd.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_arm.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_plan9_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_plan9_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_plan9_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_solaris_amd64.go
defs_solaris.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_windows_386.go
defs_windows_amd64.go
defs_windows.go
duff_386.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
duff_amd64.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
duff_arm64.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
duff_arm.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
duff_mips64x.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
duff_ppc64x.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
env_plan9.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
env_posix.go runtime: clean redundant call of environ function 2017-05-03 10:02:26 +00:00
env_test.go
error.go runtime: improve output of panic(x) where x is numeric 2017-04-09 22:40:33 +00:00
example_test.go runtime: improve ExampleFrames 2017-04-20 19:46:01 +00:00
export_arm_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
export_futex_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
export_linux_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
export_mmap_test.go runtime: fetch physical page size from the OS 2016-09-06 21:05:50 +00:00
export_test.go runtime: make rwmutex work on Ms instead of Gs 2017-06-28 22:08:57 +00:00
export_windows_test.go runtime: revert "do not call timeBeginPeriod on windows" 2016-04-09 16:11:41 +00:00
extern.go runtime: fix documentation error about runtime.GC() 2017-06-08 17:47:50 +00:00
fastlog2_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
fastlog2.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
fastlog2table.go
float.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
funcdata.h cmd/compile,link: generate PC-value tables with inlining information 2017-03-03 21:29:30 +00:00
futex_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
gc_test.go runtime: make ReadMemStats STW for < 25µs 2017-03-04 02:56:37 +00:00
gcinfo_test.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
go_tls.h all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
HACKING.md runtime: make rwmutex work on Ms instead of Gs 2017-06-28 22:08:57 +00:00
hash32.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
hash64.go runtime: add s390x support (modified files only) 2016-04-06 04:25:06 +00:00
hash_test.go runtime: remove TestCollisions from -short 2016-09-24 03:10:13 +00:00
hashmap_fast.go cmd/compile/internal/gc: speed-up small array comparison 2017-06-01 15:46:16 +00:00
hashmap.go runtime: don't panic for bad size hint in hashmap 2017-05-02 20:51:39 +00:00
heapdump.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
iface_test.go cmd/compile, runtime: specialize convT2x, don't alloc for zero vals 2017-02-28 19:23:33 +00:00
iface.go cmd/compile, runtime: specialize convT2x, don't alloc for zero vals 2017-02-28 19:23:33 +00:00
lfstack_32bit.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
lfstack_64bit.go runtime: merge lfstack_amd64.go into lfstack_64bit.go 2016-04-11 06:18:52 +00:00
lfstack_test.go
lfstack.go runtime: introduce a type for lfstacks 2017-03-19 22:42:24 +00:00
lock_futex.go runtime: fix stack split at bad time when disable inlining 2017-05-29 19:10:39 +00:00
lock_sema.go runtime: access _cgo_yield indirectly 2017-03-24 15:37:56 +00:00
Makefile
malloc_test.go runtime: improve TestMemStats checks 2017-03-31 00:46:16 +00:00
malloc.go runtime: accept non-monotonic arena allocation on 32-bit 2017-05-25 14:26:19 +00:00
map_test.go runtime: don't panic for bad size hint in hashmap 2017-05-02 20:51:39 +00:00
mapspeed_test.go runtime: add a map growth benchmark 2017-04-19 13:47:21 +00:00
mbarrier.go cmd/compile: experiment which clobbers all dead pointer fields 2017-04-21 20:19:50 +00:00
mbitmap.go runtime: avoid division in gc 2017-06-05 16:32:02 +00:00
mcache.go runtime: separate spans of noscan objects 2017-04-28 22:50:31 +00:00
mcentral.go runtime: separate spans of noscan objects 2017-04-28 22:50:31 +00:00
mem_bsd.go runtime: mmap(2) on Solaris & Illumos can return EAGAIN. 2017-05-16 21:01:42 +00:00
mem_darwin.go runtime: eliminate unnecessary type conversions 2016-03-07 20:53:27 +00:00
mem_linux.go runtime: don't hard-code physical page size 2016-09-06 21:05:53 +00:00
mem_plan9.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
mem_windows.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
memclr_386.s runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
memclr_amd64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_arm64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_arm.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_mips64x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
memclr_plan9_386.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_plan9_amd64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_ppc64x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_s390x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memmove_386.s runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
memmove_amd64.s runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
memmove_arm64.s
memmove_arm.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_linux_amd64_test.go all: sprinkle t.Parallel on some slow tests 2016-11-04 16:56:57 +00:00
memmove_mips64x.s runtime: added assembly part of linux/mips64{,le} support 2015-11-12 04:46:17 +00:00
memmove_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
memmove_nacl_amd64p32.s all: single space after period. 2016-03-02 00:13:47 +00:00
memmove_plan9_386.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_plan9_amd64.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_ppc64x.s runtime: improve memmove performance ppc64,ppc64le 2016-04-13 15:27:59 +00:00
memmove_s390x.s runtime: add s390x support (new files and lfstack_64bit.go modifications) 2016-04-07 18:56:54 +00:00
memmove_test.go runtime: amd64, use 4-byte ops for memmove of 4 bytes 2017-01-23 19:39:22 +00:00
mfinal_test.go
mfinal.go runtime: separate spans of noscan objects 2017-04-28 22:50:31 +00:00
mfixalloc.go runtime: redo insert/remove of large spans 2017-03-29 14:18:24 +00:00
mgc.go runtime: drain local runq when dedicated mark worker runs 2017-06-26 19:25:26 +00:00
mgclarge.go all: remove redundant returns 2017-04-19 20:03:51 +00:00
mgcmark.go runtime: eliminate heapBits.hasPointers 2017-04-28 22:50:34 +00:00
mgcsweep.go runtime: separate spans of noscan objects 2017-04-28 22:50:31 +00:00
mgcsweepbuf.go runtime: make markrootSpans time proportional to in-use spans 2016-10-25 22:32:59 +00:00
mgcwork.go runtime: free workbufs during sweeping 2017-04-13 18:20:47 +00:00
mheap.go runtime: clean up mheap.allocLarge 2017-07-03 14:08:01 +00:00
mkduff.go runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
mkfastlog2table.go
mknacl.sh runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
mksizeclasses.go runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
mmap.go runtime: intercept munmap as we do mmap 2017-06-06 23:26:55 +00:00
mprof.go runtime: make runtime.GC() trigger a concurrent GC 2017-03-31 01:15:21 +00:00
msan0.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
msan_amd64.s runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
msan.go runtime: check for nil g and m in msanread 2017-01-19 23:06:54 +00:00
msize.go runtime: remove sizeToClass 2017-03-13 01:55:44 +00:00
mstats.go runtime: clean up some silly allp loops 2017-06-13 18:57:48 +00:00
net_plan9.go net: refactor poller into new internal/poll package 2017-02-13 18:36:28 +00:00
netpoll_epoll.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
netpoll_kqueue.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
netpoll_nacl.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_solaris.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
netpoll_stub.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_windows.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
netpoll.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
noasm.go all: fix assembly vet issues 2016-08-25 18:52:31 +00:00
norace_linux_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
norace_test.go all: use cannot instead of can not 2016-02-21 15:35:50 +00:00
numcpu_freebsd_test.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
os2_freebsd.go
os2_nacl.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
os2_openbsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
os2_plan9.go
os2_solaris.go
os3_plan9.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
os3_solaris.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
os_android.go runtime: android/arm64 support 2015-11-17 16:28:18 +00:00
os_darwin_arm64.go hash/crc32: optimize arm64 crc32 implementation 2017-04-13 12:44:10 +00:00
os_darwin_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_darwin.go runtime: os.Executable runtime support for Darwin 2016-11-07 20:18:36 +00:00
os_dragonfly.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
os_freebsd_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_freebsd.go runtime: clear signal stack on main thread 2017-03-20 22:59:26 +00:00
os_linux_arm64.go runtime: gofmt -w -s 2017-04-24 17:01:29 +00:00
os_linux_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_linux_be64.go runtime: fix sigset type for ppc64 big-endian GNU/Linux 2016-10-06 22:24:40 +00:00
os_linux_generic.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_mips64x.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_noauxv.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_ppc64x.go runtime: get ppc64x ISA level and hardware capabilities from HWCAP/HWCAP2 2016-11-01 13:41:04 +00:00
os_linux_s390x.go runtime: get s390x vector facility availability from AT_HWCAP 2016-10-19 21:50:13 +00:00
os_linux.go runtime: check sched_getaffinity return value 2017-01-03 22:35:42 +00:00
os_nacl_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_nacl.go runtime, syscall: reset signal handlers to default in child 2017-06-14 14:00:56 +00:00
os_netbsd_386.go os: consolidate os{1,2}_*.go files 2016-04-06 05:04:47 +00:00
os_netbsd_amd64.go os: consolidate os{1,2}_*.go files 2016-04-06 05:04:47 +00:00
os_netbsd_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_netbsd.go runtime: work around NetBSD bug in thread creation 2017-05-31 00:50:43 +00:00
os_openbsd_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_openbsd.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
os_plan9_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_plan9.go runtime, syscall: reset signal handlers to default in child 2017-06-14 14:00:56 +00:00
os_solaris.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
os_windows.go runtime, syscall: reset signal handlers to default in child 2017-06-14 14:00:56 +00:00
panic.go runtime: delay exiting while panic is running deferred functions 2017-06-05 22:42:48 +00:00
plugin.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
print.go runtime: include pre-panic/throw logs in core dumps 2016-11-11 21:29:53 +00:00
proc_runtime_test.go runtime: improve randomized stealing logic 2016-03-25 11:00:48 +00:00
proc_test.go runtime: expand acceptable PingPongHog factor from 2 to 5 2017-06-05 15:51:49 +00:00
proc.go runtime: use rwmutex for execLock 2017-06-28 22:08:59 +00:00
profbuf_test.go runtime: new profile buffer implementation supporting label pointers 2017-02-23 19:47:23 +00:00
profbuf.go runtime: fix profile handling of labels for race detector 2017-04-28 17:37:46 +00:00
proflabel.go runtime: fix profile handling of labels for race detector 2017-04-28 17:37:46 +00:00
race0.go runtime: per-P contexts for race detector 2016-05-03 11:00:43 +00:00
race_amd64.s runtime: fix race atomic operations on external memory 2016-06-29 15:30:54 +00:00
race.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
rand_test.go runtime: speed up fastrand() % n 2017-02-14 00:01:22 +00:00
rdebug.go runtime: simplify setPanicOnFault slightly 2016-04-13 06:14:06 +00:00
relax_stub.go runtime: reduce Windows timer resolution when idle 2017-04-29 04:15:49 +00:00
rt0_android_386.s cmd,runtime: TLS setup for android/386 2015-11-11 21:59:24 +00:00
rt0_android_amd64.s runtime: fall back to /proc/self/auxv in Android libs 2016-11-29 15:27:53 +00:00
rt0_android_arm64.s runtime: fall back to /proc/self/auxv in Android libs 2016-11-29 15:27:53 +00:00
rt0_android_arm.s runtime: fall back to /proc/self/auxv in Android libs 2016-11-29 15:27:53 +00:00
rt0_darwin_386.s runtime: for c-archive/c-shared, install signal handlers synchronously 2016-01-09 00:58:38 +00:00
rt0_darwin_amd64.s runtime: align C library startup calls on amd64 2016-05-25 23:16:46 +00:00
rt0_darwin_arm64.s runtime, runtime/cgo: save callee-saved FP registers on arm64 2016-03-25 23:04:44 +00:00
rt0_darwin_arm.s runtime,runtime/cgo: save callee-saved FP register on arm 2016-05-25 06:54:28 +00:00
rt0_dragonfly_amd64.s
rt0_freebsd_386.s
rt0_freebsd_amd64.s
rt0_freebsd_arm.s
rt0_linux_386.s runtime, syscall: switch linux/386 to use int 0x80 2016-02-24 02:07:17 +00:00
rt0_linux_amd64.s runtime: make stack 16-byte aligned for external code in _rt0_amd64_linux_lib 2016-08-05 23:56:07 +00:00
rt0_linux_arm64.s runtime, runtime/cgo: save callee-saved FP registers on arm64 2016-03-25 23:04:44 +00:00
rt0_linux_arm.s runtime,runtime/cgo: save callee-saved FP register on arm 2016-05-25 06:54:28 +00:00
rt0_linux_mips64x.s all: fix minor misspellings 2017-04-03 23:19:07 +00:00
rt0_linux_mipsx.s runtime: add cgo support for GOARCH=mips{,le} 2016-12-14 23:52:33 +00:00
rt0_linux_ppc64.s
rt0_linux_ppc64le.s runtime: save and restore CR for ppc64le 2017-06-05 19:59:49 +00:00
rt0_linux_s390x.s runtime: add s390x support (new files and lfstack_64bit.go modifications) 2016-04-07 18:56:54 +00:00
rt0_nacl_386.s
rt0_nacl_amd64p32.s
rt0_nacl_arm.s
rt0_netbsd_386.s
rt0_netbsd_amd64.s
rt0_netbsd_arm.s
rt0_openbsd_386.s
rt0_openbsd_amd64.s
rt0_openbsd_arm.s
rt0_plan9_386.s runtime: replace is{plan9,solaris,windows} with GOOS tests 2015-10-23 18:11:17 +00:00
rt0_plan9_amd64.s runtime: replace is{plan9,solaris,windows} with GOOS tests 2015-10-23 18:11:17 +00:00
rt0_plan9_arm.s runtime: new files for plan9_arm support 2016-03-07 16:25:48 +00:00
rt0_solaris_amd64.s runtime: replace is{plan9,solaris,windows} with GOOS tests 2015-10-23 18:11:17 +00:00
rt0_windows_386.s cmd/go: fix -buildmode=c-archive should work on windows 2016-04-04 03:38:25 +00:00
rt0_windows_amd64.s cmd/go: fix -buildmode=c-archive should work on windows 2016-04-04 03:38:25 +00:00
runtime1.go cmd/compile,runtime: fix atomic And8 for mipsle 2017-03-21 16:03:12 +00:00
runtime2.go runtime: move pdesc into p 2017-06-14 00:43:30 +00:00
runtime_linux_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
runtime_mmap_test.go runtime: fetch physical page size from the OS 2016-09-06 21:05:50 +00:00
runtime_test.go all: remove redundant returns 2017-04-19 20:03:51 +00:00
runtime_unix_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
runtime-gdb_test.go runtime: temporarily skip gdb python-related tests on solaris 2017-06-28 05:01:20 +00:00
runtime-gdb.py runtime: fix tab/space inconsistency in runtime-gdb.py 2017-06-08 16:14:52 +00:00
runtime-lldb_test.go cmd/link: put text at address 0x1000000 on darwin/amd64 2016-10-28 20:17:53 +00:00
runtime.go syscall: make Getpagesize return page size from runtime 2016-09-06 21:05:55 +00:00
rwmutex_test.go runtime: prevent descheduling while holding rwmutex read lock 2017-07-06 17:04:25 +00:00
rwmutex.go runtime: prevent descheduling while holding rwmutex read lock 2017-07-06 17:04:25 +00:00
select.go runtime: join selectgo and selectgoImpl 2017-03-07 21:19:38 +00:00
sema.go runtime: record mutex event before readying 2017-06-14 16:07:58 +00:00
sigaction_linux.go runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
signal_386.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_amd64x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_arm64.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_arm.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_darwin_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_arm64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin.go runtime: unify sigtrampgo 2016-09-26 17:22:42 +00:00
signal_dragonfly_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_dragonfly.go runtime: don't always unblock all signals on dragonfly, freebsd and openbsd 2016-04-15 21:20:45 +00:00
signal_freebsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_freebsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_freebsd_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_freebsd.go runtime: unify sigtrampgo 2016-09-26 17:22:42 +00:00
signal_linux_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_arm64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_mips64x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
signal_linux_ppc64x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_s390x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_mips64x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_mipsx.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_nacl_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_nacl_amd64p32.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_nacl_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_nacl.go runtime: set SIGCONT to _SigNotify + _SigDefault 2016-01-05 17:44:46 +00:00
signal_netbsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_netbsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_netbsd_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_netbsd.go runtime: set SIGCONT to _SigNotify + _SigDefault 2016-01-05 17:44:46 +00:00
signal_openbsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_openbsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_openbsd_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_openbsd.go runtime: unify sigtrampgo 2016-09-26 17:22:42 +00:00
signal_plan9.go runtime: signal handling support for plan9_arm 2016-03-07 16:25:17 +00:00
signal_ppc64x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_sighandler.go runtime: print user stack on other threads during GOTRACBEACK=crash 2017-03-15 22:16:12 +00:00
signal_solaris_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_solaris.go runtime: treat SIGSTOP on Solaris as we do on other systems 2016-11-01 20:02:40 +00:00
signal_unix.go runtime, syscall: reset signal handlers to default in child 2017-06-14 14:00:56 +00:00
signal_windows.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
sigqueue_plan9.go os/signal: avoid race between Stop and receiving on channel 2017-06-24 00:54:01 +00:00
sigqueue.go os/signal: avoid race between Stop and receiving on channel 2017-06-24 00:54:01 +00:00
sigtab_linux_generic.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
sigtab_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
sizeclasses.go runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
slice.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
softfloat64_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
softfloat64.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
softfloat_arm.go runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
sqrt_test.go runtime: copy sqrt normalization bugfix from math 2015-10-23 23:43:47 +00:00
sqrt.go all: single space after period. 2016-03-02 00:13:47 +00:00
stack_test.go runtime: speed up stack copying 2017-06-14 05:28:24 +00:00
stack.go runtime: remove unused copies of special stack guards 2017-05-23 20:11:38 +00:00
string_test.go runtime: add slicebytetostring benchmark 2017-03-05 05:14:08 +00:00
string.go runtime: optimize slicebytestostring 2017-03-08 22:05:52 +00:00
stubs2.go runtime: intercept munmap as we do mmap 2017-06-06 23:26:55 +00:00
stubs32.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
stubs_android.go
stubs_asm.go all: fix assembly vet issues 2016-08-25 18:52:31 +00:00
stubs_linux.go runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
stubs_nonlinux.go runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
stubs.go runtime: separate spans of noscan objects 2017-04-28 22:50:31 +00:00
symtab_test.go runtime: allow calling Func.Name on nil pointer 2017-06-30 23:42:03 +00:00
symtab.go runtime: allow calling Func.Name on nil pointer 2017-06-30 23:42:03 +00:00
sys_arm64.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_arm.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_darwin_386.s time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
sys_darwin_amd64.s time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
sys_darwin_arm64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_darwin_arm.s runtime: update assembly var names after monotonic time changes 2017-02-21 18:42:05 +00:00
sys_dragonfly_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_freebsd_386.s runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
sys_freebsd_amd64.s runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
sys_freebsd_arm.s runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
sys_linux_386.s runtime: use pselect6 for usleep on linux/386 2017-05-23 22:47:31 +00:00
sys_linux_amd64.s runtime: intercept munmap as we do mmap 2017-06-06 23:26:55 +00:00
sys_linux_arm64.s runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
sys_linux_arm.s runtime: use pselect6 for usleep on linux/amd64 and linux/arm 2017-05-19 16:05:39 +00:00
sys_linux_mips64x.s runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
sys_linux_mipsx.s runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
sys_linux_ppc64x.s runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
sys_linux_s390x.s runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
sys_mips64x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
sys_nacl_386.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_nacl_amd64p32.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_nacl_arm.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_netbsd_386.s runtime: update assembly var names after monotonic time changes 2017-02-21 18:42:05 +00:00
sys_netbsd_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_netbsd_arm.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_nonppc64x.go cmd/compile, cmd/link, runtime: on ppc64x, maintain the TOC pointer in R2 when compiling PIC 2015-11-12 23:18:58 +00:00
sys_openbsd_386.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_openbsd_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_openbsd_arm.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_plan9_386.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_plan9_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_plan9_arm.s runtime, syscall: in Plan 9 ARM asm, replace "SWI 0" with "SWI $0" 2017-05-16 20:01:07 +00:00
sys_ppc64x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_s390x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_solaris_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_windows_386.s runtime: make time correctly update on Wine 2017-04-25 04:30:06 +00:00
sys_windows_amd64.s runtime: make time correctly update on Wine 2017-04-25 04:30:06 +00:00
sys_x86.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
syscall2_solaris.go
syscall_nacl.h runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
syscall_solaris.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
syscall_windows_test.go all: fix minor misspellings 2017-04-03 23:19:07 +00:00
syscall_windows.go syscall: make windows Exit call runtime.exit 2017-06-08 23:28:28 +00:00
textflag.h cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
time.go runtime: do not allocate on every time.Sleep 2017-02-24 15:34:01 +00:00
timeasm.go time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
timestub.go time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
tls_arm64.h runtime: set TLSG_IS_VARIABLE for android/arm64. 2015-12-02 22:00:04 +00:00
tls_arm64.s cmd/internal/obj, cmd/link, runtime: native-ish support for tls on arm64 2015-10-28 19:51:05 +00:00
tls_arm.s runtime: prevent TLS fetching instructions from being assembled on NaCl/ARM 2017-04-08 22:51:18 +00:00
tls_mips64x.s runtime: add linux/mips64x cgo support 2016-05-04 16:41:10 +00:00
tls_mipsx.s runtime: add cgo support for GOARCH=mips{,le} 2016-12-14 23:52:33 +00:00
tls_ppc64x.s all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tls_s390x.s runtime: add s390x support (new files and lfstack_64bit.go modifications) 2016-04-07 18:56:54 +00:00
trace.go runtime: record swept and reclaimed bytes in sweep trace 2017-04-19 18:31:14 +00:00
traceback.go runtime: print pc with fp/sp in traceback 2017-06-09 17:26:56 +00:00
type.go runtime: fix file reference in comments 2017-05-29 18:35:35 +00:00
typekind.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
unaligned1.go runtime: add s390x support (modified files only) 2016-04-06 04:25:06 +00:00
unaligned2.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
utf8.go runtime: speed up non-ASCII rune decoding 2016-10-17 11:25:22 +00:00
vdso_linux_amd64.go runtime: common handling of _AT_RANDOM auxv 2016-04-16 21:42:31 +00:00
vdso_none.go runtime: os.Executable runtime support for Darwin 2016-11-07 20:18:36 +00:00
vlop_386.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
vlop_arm_test.go runtime: arm5, fix large-offset floating-point stores 2016-04-25 22:33:33 +00:00
vlop_arm.s runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
vlrt.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
wincallback.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
write_err_android.go runtime: update android time_now call 2017-02-08 02:56:25 +00:00
write_err.go
zcallback_windows.go
zcallback_windows.s