1
0
mirror of https://github.com/golang/go synced 2024-10-02 02:18:33 -06:00
go/src/runtime
Austin Clements 292558be02 runtime: restore the Go-allocated signal stack in unminit
Currently, when we minit on a thread that already has an alternate
signal stack (e.g., because the M was an extram being used for a cgo
callback, or to handle a signal on a C thread, or because the
platform's libc always allocates a signal stack like on Android), we
simply drop the Go-allocated gsignal stack on the floor.

This is a problem for Ms on the extram list because those Ms may later
be reused for a different thread that may not have its own alternate
signal stack. On tip, this manifests as a crash in sigaltstack because
we clear the gsignal stack bounds in unminit and later try to use
those cleared bounds when we re-minit that M. On 1.9 and earlier, we
didn't clear the bounds, so this manifests as running more than one
signal handler on the same signal stack, which could lead to arbitrary
memory corruption.

This CL fixes this problem by saving the Go-allocated gsignal stack in
a new field in the m struct when overwriting it with a system-provided
signal stack, and then restoring the original gsignal stack in
unminit.

This CL is designed to be easy to back-port to 1.9. It won't quite
cherry-pick cleanly, but it should be sufficient to simply ignore the
change in mexit (which didn't exist in 1.9).

Now that we always have a place to stash the original signal stack in
the m struct, there are some simplifications we can make to the signal
stack handling. We'll do those in a later CL.

Fixes #22930.

Change-Id: I55c5a6dd9d97532f131146afdef0b216e1433054
Reviewed-on: https://go-review.googlesource.com/81476
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-12-01 20:20:45 +00:00
..
cgo runtime/cgo, math: don't use FP instructions for soft-float mips{,le} 2017-11-30 17:12:32 +00:00
debug runtime/debug: mark TestSetGCPercent as flaky 2017-04-24 22:11:58 +00:00
internal runtime/internal/sys: use boolean constants for sys.BigEndian 2017-10-25 14:22:53 +00:00
msan
pprof runtime/pprof: read memstats earlier in profile handler 2017-12-01 00:23:05 +00:00
race cmd/go: implement per-package asmflags, gcflags, ldflags, gccgoflags 2017-11-09 15:04:04 +00:00
testdata runtime: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +00:00
trace runtime/trace: fix a typo in doc 2017-11-15 15:13:50 +00:00
alg.go runtime: specialize memhash32 and memhash64 2017-08-28 19:55:27 +00:00
append_test.go runtime: simplify memory capacity check in growslice 2017-08-15 04:23:11 +00:00
asm_386.s runtime: make systemstack tail call if already switched 2017-10-30 16:33:55 +00:00
asm_amd64.s runtime: remove another TODO 2017-11-17 01:00:05 +00:00
asm_amd64p32.s runtime: make systemstack tail call if already switched 2017-10-30 16:33:55 +00:00
asm_arm64.s runtime: IndexByte and memclr perf improvements on arm64 2017-11-15 02:58:03 +00:00
asm_arm.s runtime: make systemstack tail call if already switched 2017-10-30 16:33:55 +00:00
asm_mips64x.s runtime: make systemstack tail call if already switched 2017-10-30 16:33:55 +00:00
asm_mipsx.s runtime: make systemstack tail call if already switched 2017-10-30 16:33:55 +00:00
asm_ppc64x.h
asm_ppc64x.s runtime: improve IndexByte for ppc64x 2017-11-06 21:56:18 +00:00
asm_s390x.s cmd/link: enable c-shared and c-archive mode on s390x 2017-11-17 15:54:54 +00:00
asm.s runtime: handle inlined calls in runtime.Callers 2017-03-29 17:22:08 +00:00
atomic_arm64.s
atomic_mips64x.s
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
cgo_mmap.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
cgo_ppc64x.go
cgo_sigaction.go runtime: don't call libc sigaction function in forked child 2017-07-20 18:02:47 +00:00
cgo.go runtime: access _cgo_yield indirectly 2017-03-24 15:37:56 +00:00
cgocall.go runtime: don't call lockOSThread for every cgo call 2017-09-22 18:17:13 +00:00
cgocallback.go
cgocheck.go runtime: buffered write barrier implementation 2017-10-30 18:12:44 +00:00
chan_test.go runtime: skip test that intermittently hangs on ppc64le 2017-10-03 12:26:42 +00:00
chan.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
chanbarrier_test.go
closure_test.go
compiler.go
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: in cpuProfile.addExtra, set p.lostExtra to 0 after flush 2017-09-12 16:54:29 +00:00
cputicks.go all: remove some double spaces from comments 2017-08-26 15:09:09 +00:00
crash_cgo_test.go runtime: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +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 cmd/go: implement per-package asmflags, gcflags, ldflags, gccgoflags 2017-11-09 15:04:04 +00:00
crash_unix_test.go cmd/compile: add TestIntendedInlining from runtime 2017-09-13 18:10:31 +00:00
debug.go runtime: eliminate GOMAXPROCS limit 2017-09-27 16:29:12 +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: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs1_netbsd_amd64.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs1_netbsd_arm.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +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: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_darwin_amd64.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_darwin_arm64.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_darwin_arm.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_darwin.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_dragonfly_amd64.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_dragonfly.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_freebsd_386.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_freebsd_amd64.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_freebsd_arm.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_freebsd.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +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: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_openbsd_386.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_openbsd_amd64.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_openbsd_arm.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +00:00
defs_openbsd.go runtime: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +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 cmd/compile/internal/ssa: use sse to zero on amd64 2017-08-16 15:52:27 +00:00
duff_arm64.s cmd/compile: memory clearing optimization for arm64 2017-08-25 20:09:06 +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
env_posix.go runtime: clean redundant call of environ function 2017-05-03 10:02:26 +00:00
env_test.go
error.go runtime: simplify stack walk in panicwrap 2017-09-22 22:17:17 +00:00
example_test.go runtime: improve ExampleFrames 2017-04-20 19:46:01 +00:00
export_arm_test.go
export_futex_test.go
export_linux_test.go
export_mmap_test.go runtime: fetch physical page size from the OS 2016-09-06 21:05:50 +00:00
export_test.go cmd/compile: specialize map creation for small hint sizes 2017-11-02 17:03:45 +00:00
export_unix_test.go runtime: use SIGKILL if SIGQUIT is blocked; skip tests that need SIGQUIT 2017-07-20 18:09:18 +00:00
export_windows_test.go
extern.go runtime: don't elide wrapper functions that call panic or at TOS 2017-11-13 21:43:44 +00:00
fastlog2_test.go
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
gc_test.go runtime: benchmark for bulk write barriers 2017-10-30 18:12:49 +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
HACKING.md runtime: make rwmutex work on Ms instead of Gs 2017-06-28 22:08:57 +00:00
hash32.go runtime: specialize memhash32 and memhash64 2017-08-28 19:55:27 +00:00
hash64.go runtime: fix memhash64 on big endian systems 2017-08-29 04:39:41 +00:00
hash_test.go runtime: specialize memhash32 and memhash64 2017-08-28 19:55:27 +00:00
hashmap_fast.go cmd/compile: fix mapassign_fast* routines for pointer keys 2017-11-22 04:30:27 +00:00
hashmap.go cmd/compile: specialize map creation for small hint sizes 2017-11-02 17:03:45 +00:00
heapdump.go runtime: delete unused function dumpbvtypes 2017-09-28 15:40:53 +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 runtime: remove getcallerpc argument 2017-09-22 22:17:15 +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: make m.nextwaitm an muintptr 2017-10-11 17:47:10 +00:00
Makefile
malloc_test.go runtime: re-add sanity check for GCCPUFraction 2017-09-22 20:05:37 +00:00
malloc.go runtime: eliminate write barriers from persistentalloc 2017-10-29 17:56:18 +00:00
map_test.go cmd/compile: specialize map creation for small hint sizes 2017-11-02 17:03:45 +00:00
mapspeed_test.go runtime: add a map growth benchmark 2017-04-19 13:47:21 +00:00
mbarrier.go cmd/compile,runtime: update instrumentation comments 2017-10-31 14:03:10 +00:00
mbitmap.go runtime: use buffered write barrier for bulkBarrierPreWrite 2017-10-30 18:12:54 +00:00
mcache.go runtime: remove a few unused params and results 2017-10-09 20:14:50 +00:00
mcentral.go runtime: separate spans of noscan objects 2017-04-28 22:50:31 +00:00
mem_bsd.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
mem_darwin.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
mem_linux.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
mem_plan9.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
mem_windows.go runtime: improve out-of-memory message when VirtualAlloc fails 2017-07-21 01:00: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_amd64p32.s runtime: cleanup amd64p32 memmove and memclr file organization 2017-09-05 20:00:05 +00:00
memclr_arm64.s runtime: IndexByte and memclr perf improvements on arm64 2017-11-15 02:58:03 +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_amd64p32.s runtime: cleanup amd64p32 memmove and memclr file organization 2017-09-05 20:00:05 +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
memmove_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +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
memmove_test.go runtime: shorten tests in all.bash 2017-10-31 13:20:27 +00:00
mfinal_test.go runtime: shorten tests in all.bash 2017-10-31 13:20:27 +00:00
mfinal.go runtime: add a use of runtime.KeepAlive's argument 2017-08-14 20:11:21 +00:00
mfixalloc.go runtime: redo insert/remove of large spans 2017-03-29 14:18:24 +00:00
mgc.go runtime/debug: make SetGCPercent(-1) wait for concurrent GC 2017-11-22 14:47:12 +00:00
mgclarge.go runtime: remove a few unused params and results 2017-10-09 20:14:50 +00:00
mgcmark.go runtime: buffered write barrier implementation 2017-10-30 18:12:44 +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: buffered write barrier implementation 2017-10-30 18:12:44 +00:00
mheap.go runtime: eliminate remaining recordspan write barriers 2017-10-29 20:22:00 +00:00
mkduff.go cmd/compile: memory clearing optimization for arm64 2017-08-25 20:09:06 +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: add "max waste" column to size class table comment 2017-08-10 21:45:01 +00:00
mmap.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
mprof.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
msan0.go
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/internal/sys: use boolean constants for sys.BigEndian 2017-10-25 14:22:53 +00:00
mwbbuf.go runtime: use buffered write barrier for bulkBarrierPreWrite 2017-10-30 18:12:54 +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: for kqueue treat EVFILT_READ with EV_EOF as permitting a write 2017-10-20 22:26:30 +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: make errno positive in netpollopen 2017-10-24 03:19:09 +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
norace_test.go
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
os2_openbsd.go
os2_plan9.go
os2_solaris.go
os3_plan9.go runtime: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +00:00
os3_solaris.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
os_android.go
os_darwin_arm64.go internal/cpu: detect cpu features in internal/cpu package 2017-11-14 19:07:15 +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: don't restore the alternate signal stack on ios 2017-10-12 16:59:32 +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: allow more CPUs on FreeBSD 2017-09-27 16:29:18 +00:00
os_linux_arm64.go internal/cpu: detect cpu features in internal/cpu package 2017-11-14 19:07:15 +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: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +00:00
os_linux_ppc64x.go runtime, internal/cpu: CPU capabilities detection for ppc64x 2017-08-14 12:16:42 +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: fix GNU/Linux getproccount if sched_getaffinity does not return a multiple of 8 2017-11-03 01:55:16 +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: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +00:00
os_netbsd_386.go
os_netbsd_amd64.go
os_netbsd_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_netbsd.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +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: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
os_solaris.go
os_windows.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
panic.go runtime: tweak doc for Goexit 2017-11-24 01:13:53 +00:00
plugin.go runtime, plugin: error not throw on duplicate open 2017-09-09 16:26:33 +00:00
print.go cmd/compile: insert ' ' and \n at beginning of walkprint 2017-08-15 21:54:30 +00:00
proc_runtime_test.go
proc_test.go runtime: fix build on non-Linux platforms 2017-11-21 21:52:58 +00:00
proc.go runtime: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +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 false positive race in profile label reading 2017-08-18 21:40:37 +00:00
proflabel.go runtime: fix false positive race in profile label reading 2017-08-18 21:40:37 +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: fix typo in the word "preceding" 2017-09-22 12:51:56 +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: use next timer to decide whether to relax 2017-07-07 21:22:31 +00:00
rt0_android_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_android_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +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: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_darwin_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_darwin_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_darwin_arm64.s
rt0_darwin_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_dragonfly_amd64.s runtime: fix dragonfly/amd64 2017-10-12 04:03:50 +00:00
rt0_freebsd_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_freebsd_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_freebsd_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_linux_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_linux_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_linux_arm64.s
rt0_linux_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +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: make sure R0 is zero before _main on ppc64le 2017-08-11 17:46:24 +00:00
rt0_linux_s390x.s cmd/link: enable c-shared and c-archive mode on s390x 2017-11-17 15:54:54 +00:00
rt0_nacl_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_nacl_amd64p32.s
rt0_nacl_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_netbsd_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_netbsd_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_netbsd_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_openbsd_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_openbsd_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_openbsd_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_plan9_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_plan9_amd64.s
rt0_plan9_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_solaris_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_windows_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_windows_amd64.s runtime: unify amd64 -buildmode=exe entry point code 2017-10-11 20:07:31 +00:00
runtime1.go runtime: buffered write barrier implementation 2017-10-30 18:12:44 +00:00
runtime2.go runtime: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +00:00
runtime_linux_test.go runtime: fix build on non-Linux platforms 2017-11-21 21:52:58 +00:00
runtime_mmap_test.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
runtime_test.go runtime: shorten tests in all.bash 2017-10-31 13:20:27 +00:00
runtime_unix_test.go
runtime-gdb_test.go runtime: more specific reason for skipping GDB tests on NetBSD 2017-11-30 20:57:03 +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/go: implement per-package asmflags, gcflags, ldflags, gccgoflags 2017-11-09 15:04:04 +00:00
runtime.go syscall: make Exit call runtime.exit 2017-09-27 01:10:05 +00:00
rwmutex_test.go runtime: "fix" non-preemptible loop in TestParallelRWMutexReaders 2017-10-26 20:38:48 +00:00
rwmutex.go runtime: prevent descheduling while holding rwmutex read lock 2017-07-06 17:04:25 +00:00
select.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
sema.go runtime: fix using fastrand in sema.go 2017-10-04 18:41:11 +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: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_darwin_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_darwin.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +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: forward crashing signals to late handlers 2017-08-29 07:40:19 +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: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_freebsd.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +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: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_linux_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +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: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +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: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_nacl.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +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: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_netbsd.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +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: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_openbsd.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_plan9.go
signal_ppc64x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_sighandler.go runtime: replace sched.mcount int32 with sched.mnext int64 2017-10-11 17:47:16 +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: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_unix.go runtime: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +00:00
signal_windows.go runtime: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +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 runtime: don't block signals that will kill the program 2017-11-30 23:29:30 +00:00
sigtab_linux_generic.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
sigtab_linux_mipsx.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
sizeclasses.go runtime: add "max waste" column to size class table comment 2017-08-10 21:45:01 +00:00
slice.go runtime: protect growslice against newcap*et.size overflow 2017-11-01 12:38:02 +00:00
softfloat64_test.go
softfloat64.go runtime: implement some soft-float routines (used by GOMIPS=softfloat) 2017-11-30 17:12:05 +00:00
softfloat_arm.go runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
sqrt_test.go
sqrt.go
stack_test.go runtime: don't elide wrapper functions that call panic or at TOS 2017-11-13 21:43:44 +00:00
stack.go runtime: print runtime frames in throwsplit trace 2017-11-22 21:44:38 +00:00
string_test.go runtime: add slicebytetostring benchmark 2017-03-05 05:14:08 +00:00
string.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
stubs2.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +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: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
symtab_test.go runtime: allow calling Func.Name on nil pointer 2017-06-30 23:42:03 +00:00
symtab.go Revert "go/printer: forbid empty line before first comment in block" 2017-12-01 01:12:26 +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 runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_darwin_amd64.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_darwin_arm64.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_darwin_arm.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_dragonfly_amd64.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_freebsd_386.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_freebsd_amd64.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_freebsd_arm.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_linux_386.s runtime: call amd64 VDSO entry points on large stack 2017-11-14 23:51:19 +00:00
sys_linux_amd64.s runtime: call amd64 VDSO entry points on large stack 2017-11-14 23:51:19 +00:00
sys_linux_arm64.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_linux_arm.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_linux_mips64x.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_linux_mipsx.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_linux_ppc64x.s runtime: support cgo traceback on PPC64LE 2017-10-21 00:31:27 +00:00
sys_linux_s390x.s runtime: separate error result for mmap 2017-10-18 19:22:08 +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: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_nacl_amd64p32.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_nacl_arm.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_netbsd_386.s runtime: use monotonic time on NetBSD 2017-12-01 00:42:03 +00:00
sys_netbsd_amd64.s runtime: use monotonic time on NetBSD 2017-12-01 00:42:03 +00:00
sys_netbsd_arm.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_nonppc64x.go
sys_openbsd_386.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_openbsd_amd64.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_openbsd_arm.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_plan9_386.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_plan9_amd64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_plan9_arm.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +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 runtime: call sigtrampgo on solaris 2017-08-29 19:57:32 +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: fix documentation typo for gostartcall 2017-11-29 18:42:49 +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
syscall_windows_test.go runtime: make TestWindowsStackMemory build even with CGO_ENABLED=0 set 2017-11-14 03:53:15 +00:00
syscall_windows.go syscall: make Exit call runtime.exit 2017-09-27 01:10:05 +00:00
textflag.h
time.go runtime: avoid monotonic time zero on systems with low-res timers 2017-10-25 17:10:20 +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
tls_arm64.s
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
tls_s390x.s
trace.go runtime/trace: fix corrupted trace during StartTrace 2017-10-31 22:03:30 +00:00
traceback.go runtime: don't elide wrapper functions that call panic or at TOS 2017-11-13 21:43:44 +00:00
type.go cmd/compile: fix and improve struct field reflect information 2017-09-05 18:09:41 +00:00
typekind.go
unaligned1.go
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_386.go runtime: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +00:00
vdso_linux_amd64.go runtime: factor amd64 specifics from vdso_linux.go 2017-10-13 02:04:20 +00:00
vdso_linux_test.go runtime: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +00:00
vdso_linux.go runtime: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +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
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