1
0
mirror of https://github.com/golang/go synced 2024-11-19 12:34:47 -07:00
go/src/runtime
Hana (Hyang-Ah) Kim d58f4e9b7b runtime/trace: fix corrupted trace during StartTrace
Since Go1.8, different types of GC mark workers were annotated and the
annotation strings were recorded during StartTrace. This change fixes
two issues around the use of traceString from StartTrace here.

1) "failed to parse trace: no consistent ordering of events possible"

This issue is a result of a missing 'batch' event entry. For efficient
tracing, tracer maintains system allocated buffers and once a buffer
is full, it is Flushed out for writing. Moreover, tracing assumes all
the records in the same buffer (batch) are already ordered and implements
more optimization in encoding and defers the completing order
reconstruction till the trace parsing time. Thus, when a Flush happens
and a new buffer is used, the new buffer should contain an event to
indicate the start of a new batch. Before this CL, the batch entry was
written only by traceEvent only when the buffer position is 0 and
wasn't written when flush occurs during traceString.

This CL fixes it by moving the batch entry write to the traceFlush.

2) crash during tracing due to invalid memory access, or during parsing
due to duplicate string entries

This issue is a result of memory allocation during traceString calls.
Execution tracer traces some memory allocation activities. Before this
CL, traceString took the buffer address (*traceBuf) and mutated the buffer.
If memory tracing occurs in the meantime from the same P, the allocation
tracing (traceEvent) will take the same buffer address through the pointer
to the buffer address (**traceBuf), and mutate the buffer.

As a result, one of the followings can happen:
 - the allocation record is overwritten by the following trace string
   record (data loss)
 - if buffer flush occurs during the allocation tracing, traceString
   will attempt to write the string record to the old buffer and
   eventually causes invalid memory access crash.
 - or flush on the same buffer can occur twice (once from the memory
   allocation, and once from the string record write), and in this case
   the trace can contain the same data twice and the parse will complain
   about duplicate string record entries.

This CL fixes the second issue by making the traceString take
**traceBuf (*traceBufPtr).

Change-Id: I24f629758625b38e1916fbfc7d7be6ea210586af
Reviewed-on: https://go-review.googlesource.com/50873
Run-TryBot: Austin Clements <austin@google.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
2017-10-31 22:03:30 +00:00
..
cgo runtime: separate error result for mmap 2017-10-18 19:22:08 +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 all: revert "all: prefer strings.IndexByte over strings.Index" 2017-10-05 23:19:10 +00:00
race runtime/race: install alternate packages to temp dir 2017-10-31 13:20:41 +00:00
testdata runtime: shorten tests in all.bash 2017-10-31 13:20:27 +00:00
trace runtime/trace: fix corrupted trace during StartTrace 2017-10-31 22:03:30 +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: buffered write barrier implementation 2017-10-30 18:12:44 +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: make systemstack tail call if already switched 2017-10-30 16:33:55 +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: make systemstack tail call if already switched 2017-10-30 16:33:55 +00:00
asm_s390x.s runtime: remove unnecessary sync from publicationBarrier on s390x 2017-10-30 23:42:27 +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 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
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 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: 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: use -buildmode=pie in testCgoPprofPIE instead of -extldflags=-pie 2017-10-30 12:59:31 +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: shorten tests in all.bash 2017-10-31 13:20:27 +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
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
defs2_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs3_linux.go
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
defs_linux_amd64.go
defs_linux_arm64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_arm.go
defs_linux_mips64x.go
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
defs_linux_s390x.go
defs_linux.go
defs_nacl_386.go
defs_nacl_amd64p32.go
defs_nacl_arm.go
defs_netbsd_386.go
defs_netbsd_amd64.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
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 build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
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 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 runtime: fix TestFixedGOROOT to properly restore the GOROOT env var after test 2015-06-03 23:33:48 +00:00
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 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 systemstack tail call if already switched 2017-10-30 16:33:55 +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: fix documentation error about runtime.GC() 2017-06-08 17:47:50 +00:00
fastlog2_test.go
fastlog2.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
fastlog2table.go pprof: improve sampling for heap profiling 2015-10-05 08:15:09 +00:00
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: 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 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: 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 runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
hashmap.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +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
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 runtime: shorten tests in all.bash 2017-10-31 13:20:27 +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, 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_amd64p32.s runtime: cleanup amd64p32 memmove and memclr file organization 2017-09-05 20:00:05 +00:00
memmove_arm64.s runtime: adjust the arm64 memmove and memclr to operate by word as much as they can 2015-10-08 07:49:35 +00:00
memmove_arm.s
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
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: allow 5% mutator assist over 25% background mark 2017-10-31 21:59:11 +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
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 runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
os2_solaris.go
os3_plan9.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +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 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: 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 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: 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: separate error result for mmap 2017-10-18 19:22:08 +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: separate error result for mmap 2017-10-18 19:22:08 +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_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
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: allow write barriers in startpanic_m 2017-10-29 17:56:14 +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: terminate locked OS thread if its goroutine exits 2017-10-11 17:47:21 +00:00
proc.go runtime: buffered write barrier implementation 2017-10-30 18:12:44 +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
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
rt0_nacl_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_nacl_amd64p32.s runtime: disable fake time on nacl 2014-10-27 20:47:15 -04:00
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 runtime: replace is{plan9,solaris,windows} with GOOS tests 2015-10-23 18:11:17 +00:00
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: buffered write barrier implementation 2017-10-30 18:12:44 +00:00
runtime_linux_test.go
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 all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
runtime-gdb_test.go cmd/compile: add ideal int constants to dwarf 2017-10-09 21:30: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/link: eliminate .debug_aranges 2017-10-12 18:56:18 +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 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: 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: don't try to free OS-created signal stacks 2017-10-11 22:17:30 +00:00
signal_windows.go runtime: change lockedg/lockedm to guintptr/muintptr 2017-09-15 17:29:51 +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: 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: eliminate remaining recordspan write barriers 2017-10-29 20:22:00 +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
softfloat_arm.go runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
sqrt_test.go
sqrt.go all: single space after period. 2016-03-02 00:13:47 +00:00
stack_test.go runtime: make systemstack tail call if already switched 2017-10-30 16:33:55 +00:00
stack.go runtime: remove write barriers from newstack, gogo 2017-10-29 17:56:08 +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 cmd/link, runtime: put hasmain bit in moduledata 2017-10-13 01:13:33 +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: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_linux_amd64.s runtime: separate error result for mmap 2017-10-18 19:22:08 +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: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_netbsd_amd64.s runtime: separate error result for mmap 2017-10-18 19:22:08 +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, 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: correct location of go tool 2017-09-20 03:54:16 +00:00
syscall_windows.go syscall: make Exit call runtime.exit 2017-09-27 01:10:05 +00:00
textflag.h cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
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
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: hide <autogenerated> methods from call stack 2017-09-22 22:17:20 +00:00
type.go cmd/compile: fix and improve struct field reflect information 2017-09-05 18:09:41 +00:00
typekind.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
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 runtime: use go generate for zcallback_windows.go 2014-12-19 02:45:40 +00:00
zcallback_windows.s