1
0
mirror of https://github.com/golang/go synced 2024-10-03 09:21:21 -06:00
go/src/runtime
Austin Clements 4655aadd00 runtime: use reachable heap estimate to set trigger/goal
Currently, we set the heap goal for the next GC cycle using the size
of the marked heap at the end of the current cycle. This can lead to a
bad feedback loop if the mutator is rapidly allocating and releasing
pointers that can significantly bloat heap size.

If the GC were STW, the marked heap size would be exactly the
reachable heap size (call it stwLive). However, in concurrent GC,
marked=stwLive+floatLive, where floatLive is the amount of "floating
garbage": objects that were reachable at some point during the cycle
and were marked, but which are no longer reachable by the end of the
cycle. If the GC cycle is short, then the mutator doesn't have much
time to create floating garbage, so marked≈stwLive. However, if the GC
cycle is long and the mutator is allocating and creating floating
garbage very rapidly, then it's possible that marked≫stwLive. Since
the runtime currently sets the heap goal based on marked, this will
cause it to set a high heap goal. This means that 1) the next GC cycle
will take longer because of the larger heap and 2) the assist ratio
will be low because of the large distance between the trigger and the
goal. The combination of these lets the mutator produce even more
floating garbage in the next cycle, which further exacerbates the
problem.

For example, on the garbage benchmark with GOMAXPROCS=1, this causes
the heap to grow to ~500MB and the garbage collector to retain upwards
of ~300MB of heap, while the true reachable heap size is ~32MB. This,
in turn, causes the GC cycle to take upwards of ~3 seconds.

Fix this bad feedback loop by estimating the true reachable heap size
(stwLive) and using this rather than the marked heap size
(stwLive+floatLive) as the basis for the GC trigger and heap goal.
This breaks the bad feedback loop and causes the mutator to assist
more, which decreases the rate at which it can create floating
garbage. On the same garbage benchmark, this reduces the maximum heap
size to ~73MB, the retained heap to ~40MB, and the duration of the GC
cycle to ~200ms.

Change-Id: I7712244c94240743b266f9eb720c03802799cdd1
Reviewed-on: https://go-review.googlesource.com/9177
Reviewed-by: Rick Hudson <rlh@golang.org>
2015-04-22 19:28:42 +00:00
..
cgo runtime: delete cgo_allocate 2015-04-17 01:30:47 +00:00
debug runtime/debug: disable arm64 test for issue 9993 2015-04-13 11:57:12 +00:00
pprof runtime/pprof: disable flaky TestTraceFutileWakeup on linux/ppc64le 2015-04-21 10:01:53 +00:00
race os: give race detector chance to override Exit(0) 2015-03-28 12:42:37 +00:00
alg.go reflect: implement ArrayOf 2015-04-21 15:21:09 +00:00
append_test.go
arch1_386.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
arch1_amd64.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
arch1_amd64p32.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
arch1_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
arch1_arm.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
arch1_ppc64.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
arch1_ppc64le.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
arch_386.go
arch_amd64.go
arch_amd64p32.go
arch_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
arch_arm.go
arch_ppc64.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
arch_ppc64le.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
asm_386.s cmd/internal/gc: inline runtime.getg 2015-04-07 14:26:47 +00:00
asm_amd64.s cmd/6l: call runtime.addmoduledata from .init_array 2015-04-15 23:54:20 +00:00
asm_amd64p32.s cmd/internal/gc: inline runtime.getg 2015-04-07 14:26:47 +00:00
asm_arm64.s runtime: fix arm64 asm vet issues 2015-04-22 02:30:11 +00:00
asm_arm.s cmd/internal/gc: inline runtime.getg 2015-04-07 14:26:47 +00:00
asm_ppc64x.s runtime: fix more vet reported issues 2015-04-22 02:50:48 +00:00
asm.s [dev.cc] runtime: convert assembly files for C to Go transition 2014-11-11 17:06:22 -05:00
atomic_386.go runtime: implement atomicand8 atomically 2015-03-20 04:45:29 +00:00
atomic_amd64x.go runtime: implement atomicand8 atomically 2015-03-20 04:45:29 +00:00
atomic_arm64.go runtime: implement atomicand8 atomically 2015-03-20 04:45:29 +00:00
atomic_arm64.s runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
atomic_arm.go runtime: fix arm build 2015-03-20 05:00:46 +00:00
atomic_pointer.go runtime, sync/atomic: add write barrier for atomic write of pointer 2015-01-06 00:27:06 +00:00
atomic_ppc64x.go runtime: implement atomicand8 atomically 2015-03-20 04:45:29 +00:00
atomic_ppc64x.s [dev.cc] runtime: fix FP reference in atomic_ppc64x.s 2015-02-19 04:05:41 +00:00
cgo.go runtime: initialize shared library at library-load time 2015-04-03 01:24:51 +00:00
cgocall.go runtime: delete cgo_allocate 2015-04-17 01:30:47 +00:00
cgocallback.go runtime: delete cgo_allocate 2015-04-17 01:30:47 +00:00
chan_test.go runtime: add a select test 2015-03-18 08:57:30 +00:00
chan.go runtime: remove futile wakeups from trace 2015-03-17 14:14:55 +00:00
closure_test.go
compiler.go all: don't refer to code.google.com/p/go{,-wiki}/ 2015-02-06 14:41:47 +00:00
complex_test.go
complex.go [dev.cc] runtime: convert basic library routines from C to Go 2014-11-11 17:07:06 -05:00
cpuprof.go runtime: merge slice and sliceStruct 2015-04-15 16:59:49 +00:00
cputicks.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
crash_cgo_test.go runtime: skip fork test on darwin/arm64 2015-04-13 11:52:05 +00:00
crash_test.go runtime: skip fork test on darwin/arm64 2015-04-13 11:52:05 +00:00
debug.go runtime: rename m.gcing to m.preemptoff and make it a string 2015-02-02 19:34:51 +00:00
defs1_linux.go
defs1_netbsd_386.go [dev.cc] runtime: convert netbsd/386 port to Go 2014-11-22 22:09:11 +11:00
defs1_netbsd_amd64.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
defs1_netbsd_arm.go runtime: convert netbsd/arm to Go 2014-12-05 16:17:09 -05:00
defs1_solaris_amd64.go [dev.cc] runtime: convert Solaris port to Go 2014-11-13 16:07:10 +01:00
defs2_linux.go
defs3_linux.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
defs_arm_linux.go
defs_darwin_386.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
defs_darwin_amd64.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
defs_darwin_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
defs_darwin_arm.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
defs_darwin.go
defs_dragonfly_amd64.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_dragonfly.go all: remove dragonfly/386 port 2015-03-14 10:47:19 +00:00
defs_freebsd_386.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_freebsd_amd64.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_freebsd_arm.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_freebsd.go
defs_linux_386.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux_amd64.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
defs_linux_arm.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux_ppc64.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux_ppc64le.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux.go
defs_nacl_386.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
defs_nacl_amd64p32.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
defs_nacl_arm.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
defs_netbsd_386.go
defs_netbsd_amd64.go
defs_netbsd_arm.go
defs_netbsd.go
defs_openbsd_386.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_openbsd_amd64.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_openbsd_arm.go runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
defs_openbsd.go
defs_plan9_386.go runtime: consolidate arch-specific signal handlers on Plan 9 2014-12-30 14:36:15 +00:00
defs_plan9_amd64.go runtime: consolidate arch-specific signal handlers on Plan 9 2014-12-30 14:36:15 +00:00
defs_solaris_amd64.go
defs_solaris.go
defs_windows_386.go runtime: use (*context) ip, setip, sp and setsp everywhere on windows 2015-04-09 00:57:28 +00:00
defs_windows_amd64.go runtime: use (*context) ip, setip, sp and setsp everywhere on windows 2015-04-09 00:57:28 +00:00
defs_windows.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
duff_386.s runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
duff_amd64.s cmd/6g, runtime: improve duffzero throughput 2015-04-15 19:17:07 +00:00
duff_arm64.s runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
duff_arm.s runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
duff_ppc64x.s runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
env_plan9.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
env_posix.go runtime: remove unused getenv function 2015-03-02 19:19:25 +00:00
env_test.go runtime: do not share underlying envs/argv array 2015-03-09 17:25:23 +00:00
error.go cmd/internal/gc: inline x := y.(*T) and x, ok := y.(*T) 2015-03-20 20:05:37 +00:00
export_futex_test.go
export_linux_test.go runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
export_test.go runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
export_windows_test.go runtime: do not display Windows Error Reporting dialogue 2015-01-06 05:31:40 +00:00
extern.go runtime: simplify CPU profiling code 2015-02-26 08:59:24 +00:00
funcdata.h [dev.cc] runtime: convert header files to Go 2014-11-11 17:05:19 -05:00
futex_test.go [dev.cc] runtime: convert scheduler from C to Go 2014-11-11 17:08:33 -05:00
gc_test.go
gcinfo_test.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
gengoos.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
go_tls.h [dev.cc] cmd/dist: adjust for build process without cmd/cc 2014-11-11 01:29:05 -05:00
hash32.go runtime: remove size argument from hash and equal algorithms 2015-01-07 21:57:01 +00:00
hash64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
hash_test.go runtime: a better fallback hash 2014-12-22 22:41:01 +00:00
hashmap_fast.go runtime: remove size argument from hash and equal algorithms 2015-01-07 21:57:01 +00:00
hashmap.go runtime: remove checkgc code from hashmap 2015-04-02 15:28:56 +00:00
heapdump.go runtime, cmd/internal/ld: rename themoduledata to firstmoduledata 2015-04-10 05:11:49 +00:00
iface_test.go cmd/gc: allocate backing storage for non-escaping interfaces on stack 2015-03-30 16:11:22 +00:00
iface.go reflect, runtime: check equality, not identity, for method names 2015-04-11 17:35:44 +00:00
lfstack_32bit.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
lfstack_amd64.go [dev.cc] runtime: fix lfstack for amd64 addresses in top half of addr space 2014-11-14 12:55:23 -05:00
lfstack_darwin_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
lfstack_linux_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
lfstack_linux_ppc64x.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
lfstack_test.go [dev.garbage] runtime: fix TestLFStack on 386 2014-10-27 15:57:07 -04:00
lfstack.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
lock_futex.go runtime: rename m.gcing to m.preemptoff and make it a string 2015-02-02 19:34:51 +00:00
lock_sema.go runtime: fix writebarrier throw in lock_sema 2015-03-17 19:20:11 +00:00
Makefile
malloc_test.go cmd/gc: don't copy []byte during string concatenation 2015-01-27 18:15:42 +00:00
malloc.go runtime: make mcache.local_cachealloc a uintptr 2015-04-21 15:35:41 +00:00
map_test.go cmd/gc: fix noscan maps 2015-02-15 08:52:14 +00:00
mapspeed_test.go cmd/gc: don't call memequal twice in generated type.eq routines 2015-02-26 00:34:29 +00:00
mbarrier.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
mbitmap.go runtime: Speed up heapBitsForObject 2015-04-20 21:39:06 +00:00
mcache.go runtime: make mcache.local_cachealloc a uintptr 2015-04-21 15:35:41 +00:00
mcentral.go runtime: finish sweeping before concurrent GC starts 2015-04-21 15:35:46 +00:00
mem_bsd.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
mem_darwin.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
mem_linux.go runtime: fix build, divide by constant 0 is a compile-time error 2015-02-25 21:39:54 +00:00
mem_plan9.go runtime, cmd/internal/ld: rename themoduledata to firstmoduledata 2015-04-10 05:11:49 +00:00
mem_windows.go runtime: move all stdFunctions into os1_windows.go (no code changes) 2015-02-12 04:04:59 +00:00
memclr_386.s [dev.power64] cmd/5a, cmd/6a, cmd/8a, cmd/9a: make labels function-scoped 2014-10-28 21:50:16 -04:00
memclr_amd64.s [dev.power64] cmd/5a, cmd/6a, cmd/8a, cmd/9a: make labels function-scoped 2014-10-28 21:50:16 -04:00
memclr_arm64.s runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
memclr_arm.s [dev.cc] all: edit assembly source for ARM to be more regular 2015-02-13 23:08:51 +00:00
memclr_plan9_386.s [dev.power64] cmd/5a, cmd/6a, cmd/8a, cmd/9a: make labels function-scoped 2014-10-28 21:50:16 -04:00
memclr_plan9_amd64.s
memclr_ppc64x.s all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
memmove_386.s
memmove_amd64.s
memmove_arm64.s runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
memmove_arm.s [dev.cc] all: edit assembly source for ARM to be more regular 2015-02-13 23:08:51 +00:00
memmove_linux_amd64_test.go
memmove_nacl_amd64p32.s
memmove_plan9_386.s
memmove_plan9_amd64.s
memmove_ppc64x.s all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
memmove_test.go cmd/6g, runtime: improve duffzero throughput 2015-04-15 19:17:07 +00:00
mfinal_test.go
mfinal.go runtime, cmd/internal/ld: rename themoduledata to firstmoduledata 2015-04-10 05:11:49 +00:00
mfixalloc.go runtime,reflect,cmd/internal/gc: Fix comments referring to .c/.h files 2015-03-11 20:19:43 +00:00
mgc.go runtime: use reachable heap estimate to set trigger/goal 2015-04-22 19:28:42 +00:00
mgcmark.go runtime: multi-threaded, utilization-scheduled background mark 2015-04-21 15:35:32 +00:00
mgcsweep.go runtime: finish sweeping before concurrent GC starts 2015-04-21 15:35:46 +00:00
mgcwork.go runtime: track scan work performed during concurrent mark 2015-04-21 15:35:00 +00:00
mheap.go runtime: finish sweeping before concurrent GC starts 2015-04-21 15:35:46 +00:00
mkduff.go cmd/6g, runtime: improve duffzero throughput 2015-04-15 19:17:07 +00:00
mknacl.sh
mprof.go runtime: simplify CPU profiling code 2015-02-26 08:59:24 +00:00
msize.go runtime: Speed up heapBitsForObject 2015-04-20 21:39:06 +00:00
mstats.go runtime: use reachable heap estimate to set trigger/goal 2015-04-22 19:28:42 +00:00
netpoll_epoll.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
netpoll_kqueue.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
netpoll_nacl.go
netpoll_solaris.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
netpoll_stub.go runtime: define netpollinited on Plan 9 2015-01-14 22:04:56 +00:00
netpoll_windows.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
netpoll.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
noasm.go runtime: add arm64 runtime.cmpstring and bytes.Compare 2015-04-09 14:49:31 +00:00
norace_linux_test.go runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
norace_test.go [dev.cc] runtime: convert race implementation from C to Go 2014-11-11 17:08:14 -05:00
os1_darwin.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os1_dragonfly.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os1_freebsd.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os1_linux.go runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
os1_nacl.go runtime: make "write barriers are not allowed" comments more precise 2015-03-30 15:13:53 +00:00
os1_netbsd_386.go [dev.cc] runtime: convert netbsd/386 port to Go 2014-11-22 22:09:11 +11:00
os1_netbsd_amd64.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
os1_netbsd.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os1_openbsd.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os1_plan9.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os1_windows.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
os2_darwin.go [dev.cc] runtime: convert operating system support code from C to Go 2014-11-11 17:08:54 -05:00
os2_dragonfly.go [dev.cc] runtime: convert dragonfly/amd64 port to Go 2014-11-15 04:47:20 +11:00
os2_freebsd.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
os2_linux.go [dev.cc] runtime: convert operating system support code from C to Go 2014-11-11 17:08:54 -05:00
os2_nacl.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
os2_netbsd.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
os2_openbsd.go [dev.cc] runtime: convert openbsd/amd64 port to Go 2014-11-14 13:01:12 +11: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 [dev.cc] runtime: convert Solaris port to Go 2014-11-13 16:07:10 +01:00
os2_windows.go runtime: do not calculate asmstdcall address every time we make syscall 2015-04-09 04:26:44 +00:00
os3_plan9.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
os3_solaris.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os_android_arm.go runtime: export main.main for android 2015-04-17 12:11:04 +00:00
os_darwin_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
os_darwin_arm.go runtime: darwin/arm support 2015-02-06 05:48:56 +00:00
os_darwin.go runtime: fix arm64 asm vet issues 2015-04-22 02:30:11 +00:00
os_dragonfly.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
os_freebsd_arm.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
os_freebsd.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
os_linux_386.go runtime: clean up & go-ify the hash function seeder 2014-12-10 21:15:35 +00:00
os_linux_arm64.go runtime: mark all runtime.cputicks implementations NOSPLIT 2015-04-15 09:22:15 +00:00
os_linux_arm.go runtime: mark all runtime.cputicks implementations NOSPLIT 2015-04-15 09:22:15 +00:00
os_linux.go runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
os_nacl_arm.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
os_nacl.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os_netbsd_arm.go runtime: convert netbsd/arm to Go 2014-12-05 16:17:09 -05:00
os_netbsd.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
os_openbsd_arm.go runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
os_openbsd.go runtime: simplify OpenBSD semaphores 2015-02-25 02:30:11 +00:00
os_plan9.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os_solaris.go [dev.cc] runtime: convert Solaris port to Go 2014-11-13 16:07:10 +01:00
os_windows.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
panic1.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
panic.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
parfor_test.go runtime: eliminate parfor ctx field 2015-01-29 17:38:16 +00:00
parfor.go runtime: use func value for parfor body 2015-01-29 17:38:32 +00:00
print1_write_android.go [dev.cc] runtime: print to stderr as well as android logd 2015-02-20 18:30:09 +00:00
print1_write.go runtime: add missing copyright notices 2015-01-09 20:06:33 +00:00
print1.go runtime: merge slice and sliceStruct 2015-04-15 16:59:49 +00:00
proc1.go runtime: fix background marking at 25% utilization 2015-04-21 15:35:50 +00:00
proc_test.go cmd/gc: transform closure calls to function calls 2015-02-13 12:12:18 +00:00
proc.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
race0.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
race1.go runtime, cmd/internal/ld: rename themoduledata to firstmoduledata 2015-04-10 05:11:49 +00:00
race_amd64.s runtime: adjust program counters in race detector 2015-02-20 18:04:16 +00:00
race.go runtime: adjust program counters in race detector 2015-02-20 18:04:16 +00:00
rdebug.go [dev.cc] runtime: convert scheduler from C to Go 2014-11-11 17:08:33 -05:00
rt0_android_arm.s runtime: shared library init support for android/arm. 2015-04-13 21:53:15 +00:00
rt0_darwin_386.s
rt0_darwin_amd64.s runtime: darwin/amd64 library entry point 2015-04-08 21:53:52 +00:00
rt0_darwin_arm64.s runtime: darwin/arm64 c-archive entry point 2015-04-16 18:56:54 +00:00
rt0_darwin_arm.s runtime: library entry point for darwin/arm 2015-04-12 12:49:49 +00:00
rt0_dragonfly_amd64.s
rt0_freebsd_386.s
rt0_freebsd_amd64.s
rt0_freebsd_arm.s runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
rt0_linux_386.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
rt0_linux_amd64.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
rt0_linux_arm64.s runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
rt0_linux_arm.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
rt0_linux_ppc64.s cmd/cgo, runtime/cgo: support ppc64 2015-01-07 20:36:27 +00:00
rt0_linux_ppc64le.s cmd/cgo, runtime/cgo: support ppc64 2015-01-07 20:36:27 +00:00
rt0_nacl_386.s
rt0_nacl_amd64p32.s runtime: disable fake time on nacl 2014-10-27 20:47:15 -04:00
rt0_nacl_arm.s
rt0_netbsd_386.s
rt0_netbsd_amd64.s
rt0_netbsd_arm.s runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
rt0_openbsd_386.s
rt0_openbsd_amd64.s
rt0_openbsd_arm.s runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
rt0_plan9_386.s
rt0_plan9_amd64.s
rt0_solaris_amd64.s
rt0_windows_386.s runtime: use _main instead of main on windows/386 2015-03-24 03:23:03 +00:00
rt0_windows_amd64.s [dev.cc] runtime: convert assembly files for C to Go transition 2014-11-11 17:06:22 -05:00
rune.go runtime,reflect,cmd/internal/gc: Fix comments referring to .c/.h files 2015-03-11 20:19:43 +00:00
runtime1.go runtime: leave gccheckmark testing off by default 2015-04-17 19:29:04 +00:00
runtime2.go runtime: fix background marking at 25% utilization 2015-04-21 15:35:50 +00:00
runtime_linux_test.go
runtime_test.go runtime: skip fork test on darwin/arm64 2015-04-13 11:52:05 +00:00
runtime_unix_test.go runtime: multi-threaded, utilization-scheduled background mark 2015-04-21 15:35:32 +00:00
runtime-gdb_test.go runtime: Fix GDB integration with Python 2 2015-04-10 22:17:59 +00:00
runtime-gdb.py runtime: Fix GDB integration with Python 2 2015-04-10 22:17:59 +00:00
runtime.go runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
select.go runtime: merge slice and sliceStruct 2015-04-15 16:59:49 +00:00
sema.go runtime: remove runtime frames from stacks in traces 2015-03-10 14:46:15 +00:00
signal1_unix.go os/signal: add ability to ignore signals and restore initial signal handlers 2015-02-16 14:23:09 +00:00
signal_386.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
signal_amd64x.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
signal_arm64.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
signal_arm.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
signal_darwin_386.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
signal_darwin_amd64.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
signal_darwin_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
signal_darwin_arm.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
signal_darwin.go [dev.cc] runtime: convert signal handlers from C to Go 2014-11-11 17:05:55 -05:00
signal_dragonfly_amd64.go [dev.cc] runtime: convert dragonfly/amd64 port to Go 2014-11-15 04:47:20 +11:00
signal_dragonfly.go [dev.cc] runtime: convert dragonfly/amd64 port to Go 2014-11-15 04:47:20 +11:00
signal_freebsd_386.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
signal_freebsd_amd64.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
signal_freebsd_arm.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
signal_freebsd.go [dev.cc] runtime: make SIGSYS notifiable on freebsd (again) 2014-11-14 04:29:03 +11:00
signal_linux_386.go [dev.cc] runtime: add explicit siginfo.si_addr field 2014-11-19 14:56:49 -05:00
signal_linux_amd64.go [dev.cc] runtime: add explicit siginfo.si_addr field 2014-11-19 14:56:49 -05:00
signal_linux_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
signal_linux_arm.go [dev.cc] runtime: add explicit siginfo.si_addr field 2014-11-19 14:56:49 -05:00
signal_linux_ppc64x.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
signal_linux.go runtime: run libc SIGSETXID and SIGCANCEL handlers on signal stack 2014-12-23 01:33:36 +00:00
signal_nacl_386.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
signal_nacl_amd64p32.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
signal_nacl_arm.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
signal_nacl.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
signal_netbsd_386.go [dev.cc] runtime: convert netbsd/386 port to Go 2014-11-22 22:09:11 +11:00
signal_netbsd_amd64.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
signal_netbsd_arm.go runtime: convert netbsd/arm to Go 2014-12-05 16:17:09 -05:00
signal_netbsd.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
signal_openbsd_386.go [dev.cc] runtime: convert openbsd/386 port to Go 2014-11-15 03:55:14 +11:00
signal_openbsd_amd64.go [dev.cc] runtime: convert openbsd/amd64 port to Go 2014-11-14 13:01:12 +11:00
signal_openbsd_arm.go runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
signal_openbsd.go [dev.cc] runtime: convert openbsd/amd64 port to Go 2014-11-14 13:01:12 +11:00
signal_plan9.go runtime: remove C-style strcmp and strncmp helpers 2015-02-16 04:07:19 +00:00
signal_ppc64x.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
signal_solaris_amd64.go [dev.cc] runtime: fix nil pointer crash handler bug on Solaris 2014-11-14 14:25:49 +01:00
signal_solaris.go [dev.cc] runtime: convert Solaris port to Go 2014-11-13 16:07:10 +01:00
signal_unix.go runtime: remove thunk.s 2014-12-23 03:17:22 +00:00
signal_windows.go runtime: move all exception related code into signal_windows.go 2015-04-13 07:04:21 +00:00
sigpanic_unix.go runtime/cgo: catch EXC_BAD_ACCESS on darwin/arm 2015-03-17 12:12:48 +00:00
sigqueue_plan9.go os/signal: add ability to ignore signals and restore initial signal handlers 2015-02-16 14:23:09 +00:00
sigqueue.go runtime: initialize extra M for cgo during mstart 2015-03-24 19:39:46 +00:00
slice.go runtime: merge slice and sliceStruct 2015-04-15 16:59:49 +00:00
softfloat64_test.go [dev.cc] runtime: convert softfloat_arm.c to Go + build fixes 2014-11-11 22:30:02 -05:00
softfloat64.go [dev.cc] runtime: convert softfloat_arm.c to Go + build fixes 2014-11-11 22:30:02 -05:00
softfloat_arm.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
sqrt.go runtime: rename float64 constants to avoid name space pollution 2015-01-19 15:26:45 +00:00
stack1.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
stack2.go runtime: darwin/arm support 2015-02-06 05:48:56 +00:00
stack_test.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
string1.go runtime: remove C-style strcmp and strncmp helpers 2015-02-16 04:07:19 +00:00
string_test.go cmd/gc: don't copy string in range []byte(str) 2015-02-04 04:37:21 +00:00
string.go runtime: merge slice and sliceStruct 2015-04-15 16:59:49 +00:00
stubs2.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
stubs_android.go runtime: support panic/print logging in android-L. 2015-02-04 21:02:41 +00:00
stubs.go runtime: atomic ops for int64 2015-04-21 15:34:54 +00:00
symtab_test.go
symtab.go cmd/6l: call runtime.addmoduledata from .init_array 2015-04-15 23:54:20 +00:00
sys_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
sys_arm.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
sys_darwin_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_darwin_amd64.s runtime: fix more vet reported issues 2015-04-22 02:50:48 +00:00
sys_darwin_arm64.s runtime: fix arm64 asm vet issues 2015-04-22 02:30:11 +00:00
sys_darwin_arm.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_dragonfly_amd64.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_freebsd_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_freebsd_amd64.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_freebsd_arm.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_linux_386.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
sys_linux_amd64.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
sys_linux_arm64.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
sys_linux_arm.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
sys_linux_ppc64x.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
sys_nacl_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_nacl_amd64p32.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_nacl_arm.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_netbsd_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_netbsd_amd64.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_netbsd_arm.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_openbsd_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_openbsd_amd64.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_openbsd_arm.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_plan9_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_plan9_amd64.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_ppc64x.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
sys_solaris_amd64.s Revert "liblink, cmd/ld, runtime: remove stackguard1" 2015-01-05 16:29:56 +00:00
sys_windows_386.s runtime: really pass return value to Windows in externalthreadhandler 2015-04-15 05:03:42 +00:00
sys_windows_amd64.s runtime: really pass return value to Windows in externalthreadhandler 2015-04-15 05:03:42 +00:00
sys_x86.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
syscall2_solaris.go runtime, syscall: fix Solaris exec tests 2015-03-24 19:51:21 +00:00
syscall_nacl.h runtime, syscall: use the new get_random_bytes syscall for NaCl 2015-03-25 02:07:09 +00:00
syscall_solaris.go syscall: Add Foreground and Pgid to SysProcAttr 2015-03-23 15:35:53 +00:00
syscall_windows_test.go runtime: skip TestStdcallAndCDeclCallbacks when gcc is missing 2015-03-15 00:37:05 +00:00
syscall_windows.go runtime: do not calculate asmstdcall address every time we make syscall 2015-04-09 04:26:44 +00:00
textflag.h cmd/5l etc: replace C code with Go code 2015-03-01 00:40:11 +00:00
time.go runtime: remove runtime frames from stacks in traces 2015-03-10 14:46:15 +00:00
tls_arm64.h runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
tls_arm64.s runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
tls_arm.s liblink, runtime: move all references to runtime.tlsg to tls_arm.s 2015-02-09 22:14:06 +00:00
tls_ppc64x.s cmd/cgo, runtime/cgo: support ppc64 2015-01-07 20:36:27 +00:00
trace.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
traceback.go runtime: multi-threaded, utilization-scheduled background mark 2015-04-21 15:35:32 +00:00
type.go runtime,reflect,cmd/internal/gc: Fix comments referring to .c/.h files 2015-03-11 20:19:43 +00:00
typekind1.go [dev.cc] runtime: convert header files to Go 2014-11-11 17:05:19 -05:00
typekind.go
unaligned1.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
unaligned2.go runtime: a better fallback hash 2014-12-22 22:41:01 +00:00
vdso_linux_amd64.go runtime: clean up & go-ify the hash function seeder 2014-12-10 21:15:35 +00:00
vdso_none.go runtime: use runtime.sysargs to parse auxv on linux/arm 2015-01-14 05:08:06 +00:00
vlop_386.s
vlop_arm_test.go
vlop_arm.s [dev.cc] cmd/asm: make 4(SP) illegal except on 386 2015-02-18 03:41:29 +00:00
vlrt.go
wbfat_gen.go [dev.garbage] cmd/gc, runtime: implement write barriers in terms of writebarrierptr 2014-10-30 10:16:03 -04:00
wbfat.go [dev.garbage] cmd/gc, runtime: implement write barriers in terms of writebarrierptr 2014-10-30 10:16:03 -04:00
wincallback.go runtime: use go generate for zcallback_windows.go 2014-12-19 02:45:40 +00:00
zcallback_windows.go runtime: use go generate for zcallback_windows.go 2014-12-19 02:45:40 +00:00
zcallback_windows.s runtime: generate windows callback list with go generate 2014-12-05 16:24:20 -05:00
zgoarch_386.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_amd64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_amd64p32.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_arm.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_ppc64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_ppc64le.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoos_android.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_darwin.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_dragonfly.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_freebsd.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_linux.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_nacl.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_netbsd.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_openbsd.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_plan9.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_solaris.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_windows.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00