1
0
mirror of https://github.com/golang/go synced 2024-11-20 01:14:40 -07:00
go/src/runtime
Austin Clements fc9ca85f4c runtime: make sweep proportional to spans bytes allocated
Proportional concurrent sweep is currently based on a ratio of spans
to be swept per bytes of object allocation. However, proportional
sweeping is performed during span allocation, not object allocation,
in order to minimize contention and overhead. Since objects are
allocated from spans after those spans are allocated, the system tends
to operate in debt, which means when the next GC cycle starts, there
is often sweep debt remaining, so GC has to finish the sweep, which
delays the start of the cycle and delays enabling mutator assists.

For example, it's quite likely that many Ps will simultaneously refill
their span caches immediately after a GC cycle (because GC flushes the
span caches), but at this point, there has been very little object
allocation since the end of GC, so very little sweeping is done. The
Ps then allocate objects from these cached spans, which drives up the
bytes of object allocation, but since these allocations are coming
from cached spans, nothing considers whether more sweeping has to
happen. If the sweep ratio is high enough (which can happen if the
next GC trigger is very close to the retained heap size), this can
easily represent a sweep debt of thousands of pages.

Fix this by making proportional sweep proportional to the number of
bytes of spans allocated, rather than the number of bytes of objects
allocated. Prior to allocating a span, both the small object path and
the large object path ensure credit for allocating that span, so the
system operates in the black, rather than in the red.

Combined with the previous commit, this should eliminate all sweeping
from GC start up. On the stress test in issue #11911, this reduces the
time spent sweeping during GC (and delaying start up) by several
orders of magnitude:

                mean    99%ile     max
    pre fix      1 ms    11 ms   144 ms
    post fix   270 ns   735 ns   916 ns

Updates #11911.

Change-Id: I89223712883954c9d6ec2a7a51ecb97172097df3
Reviewed-on: https://go-review.googlesource.com/13044
Reviewed-by: Rick Hudson <rlh@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
2015-08-04 18:54:44 +00:00
..
cgo runtime/cgo: fix darwin/amd64 signal handling setup 2015-07-30 19:18:45 +00:00
debug runtime: use 64k page rounding on arm64 2015-07-28 19:59:00 +00:00
pprof runtime/pprof: document content of heap profile 2015-07-27 16:30:27 +00:00
race all: link to https instead of http 2015-07-11 14:36:33 +00:00
trace runtime/trace: test requires 'go tool addr2line' 2015-07-30 05:57:37 +00:00
alg.go reflect: implement ArrayOf 2015-04-21 15:21:09 +00:00
append_test.go
arch1_386.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_amd64.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_amd64p32.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_arm64.go runtime: use 64k page rounding on arm64 2015-07-28 19:59:00 +00:00
arch1_arm.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_ppc64.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_ppc64le.go runtime: enable profiling on g0 2015-05-11 08:44:30 +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 runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
asm_amd64.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
asm_amd64p32.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
asm_arm64.s runtime, reflect: use correctly aligned stack frame sizes on arm64 2015-07-29 21:35:35 +00:00
asm_arm.s runtime: fix systemstack tracebacks on nacl/arm 2015-07-31 04:35:38 +00:00
asm_ppc64x.s runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall 2015-06-19 01:47:11 +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 xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_amd64x.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_arm64.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_arm64.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
atomic_arm.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_pointer.go runtime: remove wbshadow mode 2015-05-11 14:55:11 +00:00
atomic_ppc64x.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_ppc64x.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
atomic_test.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
cgo.go cmd/cgo: make sure pointers passed to C escape to heap 2015-06-15 17:39:53 +00:00
cgocall.go runtime: store syscall parameters in m not on stack 2015-06-29 02:45:45 +00:00
cgocallback.go runtime: delete cgo_allocate 2015-04-17 01:30:47 +00:00
chan_test.go runtime: fix data race in BenchmarkChanPopular 2015-06-02 11:16:01 +00:00
chan.go runtime: add memory barrier for sync send in select 2015-07-13 19:10:22 +00:00
chanbarrier_test.go runtime: fix race in TestChanSendBarrier 2015-07-13 19:42:20 +00:00
closure_test.go
compiler.go Fix several out of date references to 4g/5g/6g/8g/9g. 2015-06-26 03:38:21 +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 TestCgoCallbackGC on dragonfly 2015-08-03 04:41:48 +00:00
crash_test.go all: extract "can I exec?" check from tests into internal/testenv 2015-06-16 18:07:36 +00:00
crash_unix_test.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
debug.go runtime: clarify that NumCPU returns only available CPUs 2015-07-10 21:28:49 +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 all: use RET instead of RETURN on ppc64 2015-06-06 00:07:23 +00:00
env_plan9.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
env_posix.go runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall 2015-06-19 01:47:11 +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 cmd/internal/gc: inline x := y.(*T) and x, ok := y.(*T) 2015-03-20 20:05:37 +00:00
export_arm_test.go runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +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 cmd/compile: fix uninitialized memory during type switch assertE2I2 2015-07-30 05:21:56 +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: document gctrace format 2015-07-27 17:45:34 +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 cmd/compile: fix uninitialized memory during type switch assertE2I2 2015-07-30 05:21:56 +00:00
gcinfo_test.go runtime: test and fix heap bitmap for 1-pointer allocation on 32-bit system 2015-05-15 18:47:00 +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 cmd/compile, runtime: fix placement of map bucket overflow pointer on nacl 2015-07-31 18:49:32 +00:00
heapdump.go all: link to https instead of http 2015-07-11 14:36:33 +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 cmd/compile: fix uninitialized memory during type switch assertE2I2 2015-07-30 05:21:56 +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 all: fix misprints in comments 2015-06-11 14:18:57 +00:00
lfstack.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
lock_futex.go runtime: make notetsleep_internal nowritebarrier 2015-07-27 19:58:58 +00:00
lock_sema.go runtime: fix writebarrier throw in lock_sema 2015-03-17 19:20:11 +00:00
Makefile
malloc_test.go runtime: fix MemStats.{PauseNS,PauseEnd,PauseTotalNS,LastGC} 2015-07-13 23:32:59 +00:00
malloc.go runtime: make sweep proportional to spans bytes allocated 2015-08-04 18:54:44 +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: fix go:nowritebarrier annotation on gcmarkwb_m 2015-07-15 21:06:13 +00:00
mbitmap.go runtime: set invalidptr=1 by default, as documented 2015-07-29 23:50:20 +00:00
mcache.go runtime: track "scannable" bytes of heap 2015-05-06 19:40:33 +00:00
mcentral.go runtime: make sweep proportional to spans bytes allocated 2015-08-04 18:54:44 +00:00
mem_bsd.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
mem_darwin.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
mem_linux.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
mem_plan9.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
mem_windows.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +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: use RET instead of RETURN on ppc64 2015-06-06 00:07:23 +00: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: use RET instead of RETURN on ppc64 2015-06-06 00:07:23 +00:00
memmove_test.go cmd/6g, runtime: improve duffzero throughput 2015-04-15 19:17:07 +00:00
mfinal_test.go runtime: enable TestEmptySlice 2015-07-30 04:47:16 +00:00
mfinal.go cmd/internal/gc, runtime: use 1-bit bitmap for stack frames, data, bss 2015-05-01 18:44:36 +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: make sweep proportional to spans bytes allocated 2015-08-04 18:54:44 +00:00
mgcmark.go runtime: enable GC assists ASAP 2015-07-27 19:59:05 +00:00
mgcsweep.go runtime: make sweep proportional to spans bytes allocated 2015-08-04 18:54:44 +00:00
mgcwork.go runtime: force mutator to give work buffer to GC 2015-07-29 18:56:11 +00:00
mheap.go runtime: make sweep proportional to spans bytes allocated 2015-08-04 18:54:44 +00:00
mkduff.go cmd/internal/gc, cmd/[56789]g: rename stackcopy to blockcopy 2015-04-29 00:28:01 +00:00
mknacl.sh
mprof.go runtime: factor stoptheworld/starttheworld pattern 2015-05-18 14:55:25 +00:00
msize.go runtime: Speed up heapBitsForObject 2015-04-20 21:39:06 +00:00
mstats.go runtime: report GC CPU utilization in MemStats 2015-07-29 20:23:34 +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 all: fix misprints in comments 2015-06-11 14:18:57 +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 all: fix misprints in comments 2015-06-11 14:18:57 +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: re-enable TestNewProc0 on android/arm and fix heap corruption 2015-04-29 19:18:07 +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: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_dragonfly.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_freebsd.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_linux.go runtime: pass a smaller buffer to sched_getaffinity on ARM 2015-07-27 01:04:10 +00:00
os1_nacl.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +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: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_openbsd.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_plan9.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_windows.go runtime: use AddVectoredContinueHandler on Windows XP amd64 2015-07-11 07:02:57 +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 runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os2_freebsd.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os2_linux.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00: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 runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00: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: fix x86 stack trace for call to heap memory on Plan 9 2015-07-28 19:01:41 +00:00
os3_solaris.go runtime: don't define libc_getpid in os3_solaris.go 2015-07-28 14:07:17 +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: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os_dragonfly.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +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: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +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: fix typos in os_linux_arm.go 2015-06-17 08:51:59 +00:00
os_linux.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +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: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +00:00
os_netbsd_arm.go runtime: convert netbsd/arm to Go 2014-12-05 16:17:09 -05:00
os_netbsd.go runtime: remove unnecessary noescape to fix netbsd 2015-04-27 23:04: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: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +00:00
os_plan9.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os_solaris.go runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall 2015-06-19 01:47:11 +00:00
os_windows.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
panic1.go runtime: unwind stack barriers when writing above the current frame 2015-06-07 17:57:47 +00:00
panic.go all: fix misprints in comments 2015-06-11 14:18:57 +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/trace: record event sequence numbers explicitly 2015-07-29 22:32:14 +00:00
proc_test.go runtime: disable TestGoroutineParallelism on uniprocessor 2015-07-22 18:53:12 +00:00
proc.go runtime: make sysmon-triggered GC concurrent 2015-07-09 05:53:21 +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: deflake TestNewOSProc0, fix _rt0_amd64_linux_lib stack alignment 2015-04-23 23:09:03 +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: set invalidptr=1 by default, as documented 2015-07-29 23:50:20 +00:00
runtime2.go runtime: change arm software div/mod call sequence not to modify stack 2015-07-30 16:14:05 +00:00
runtime_linux_test.go
runtime_test.go runtime: reduce slice growth during append to 2x 2015-06-26 17:49:33 +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: require gdb version 7.9 for gdb test 2015-07-24 17:15:44 +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: add memory barrier for sync send in select 2015-07-13 19:10:22 +00:00
sema.go runtime: remove runtime frames from stacks in traces 2015-03-10 14:46:15 +00:00
signal1_unix.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
signal_386.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
signal_amd64x.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
signal_arm64.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
signal_arm.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +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 runtime: don't always unblock all signals 2015-05-22 20:24:08 +00: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: don't always unblock all signals 2015-05-22 20:24:08 +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 runtime: don't always unblock all signals 2015-05-22 20:24:08 +00: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: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +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 runtime: don't always unblock all signals 2015-05-22 20:24:08 +00:00
signal_unix.go runtime: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +00:00
signal_windows.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +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 runtime: fix signal handling on Plan 9 2015-05-12 16:35:46 +00:00
sigqueue.go runtime/cgo: make compatible with race detector 2015-07-22 20:28:47 +00:00
slice.go runtime: reduce slice growth during append to 2x 2015-06-26 17:49:33 +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 runtime: slightly clean up softfloat code 2015-06-26 17:51:22 +00:00
softfloat_arm.go runtime: slightly clean up softfloat code 2015-06-26 17:51:22 +00:00
sqrt_test.go all: fix misprints in comments 2015-06-11 14:18:57 +00:00
sqrt.go runtime: fix software FP regs corruption when emulating SQRT on ARM 2015-05-05 07:32:58 +00:00
stack1.go runtime: fix out-of-bounds in stack debugging 2015-07-28 20:11:19 +00:00
stack2.go cmd/dist, runtime: Make stack guard larger for non-optimized builds 2015-05-01 15:41:55 +00:00
stack_test.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
string1.go cmd/internal/gc: improve flow of input params to output params 2015-05-01 13:47:20 +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
stubs32.go cmd/compile: define func value symbols at declaration 2015-07-20 00:50:46 +00:00
stubs_android.go runtime: support panic/print logging in android-L. 2015-02-04 21:02:41 +00:00
stubs.go runtime: ignore arguments in cgocallback_gofunc frame 2015-07-29 22:30:46 +00:00
symtab_test.go cmd/compile: initialize line number properly for temporaries 2015-07-07 21:30:59 +00:00
symtab.go runtime: make pcln table check not trigger next to foreign code 2015-07-23 14:14:22 +00:00
sys_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
sys_arm.go runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_darwin_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_darwin_amd64.s runtime: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +00:00
sys_darwin_arm64.s runtime: fix darwin/amd64 assembly frame sizes 2015-07-29 22:26:02 +00:00
sys_darwin_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_dragonfly_amd64.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_freebsd_386.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_freebsd_amd64.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_freebsd_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_linux_386.s runtime: set m.procid always on Linux 2015-06-24 21:50:39 +00:00
sys_linux_amd64.s runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
sys_linux_arm64.s runtime, reflect: use correctly aligned stack frame sizes on arm64 2015-07-29 21:35:35 +00:00
sys_linux_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_linux_ppc64x.s runtime: set m.procid always on Linux 2015-06-24 21:50:39 +00:00
sys_nacl_386.s all: fix misprints in comments 2015-06-11 14:18:57 +00:00
sys_nacl_amd64p32.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_nacl_arm.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
sys_netbsd_386.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_netbsd_amd64.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_netbsd_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_openbsd_386.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_openbsd_amd64.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_openbsd_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48: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 runtime: always load address of libcFunc on Solaris 2015-05-06 11:36:57 +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 all: link to https instead of http 2015-07-11 14:36:33 +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 runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall 2015-06-19 01:47:11 +00:00
syscall_windows_test.go runtime: skip TestReturnAfterStackGrowInCallback if gcc is not found 2015-07-18 01:29:09 +00:00
syscall_windows.go runtime: store syscall parameters in m not on stack 2015-06-29 02:45:45 +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/trace: record event sequence numbers explicitly 2015-07-29 22:32:14 +00:00
traceback.go runtime: implement GC stack barriers 2015-06-02 20:00:57 +00:00
type.go runtime: replace GC programs with simpler encoding, faster decoder 2015-05-16 00:38:17 +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 runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
vlop_arm.s runtime: change arm software div/mod call sequence not to modify stack 2015-07-30 16:14:05 +00:00
vlrt.go
wbfat_gen.go runtime: change unused argument in fat write barriers from pointer to scalar 2015-04-28 01:37:45 +00:00
wbfat.go runtime: change unused argument in fat write barriers from pointer to scalar 2015-04-28 01:37:45 +00: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