go/src/runtime
Austin Clements c0392d2e7f runtime: make the heap bitmap sparse
This splits the heap bitmap into separate chunks for every 64MB of the
heap and introduces an index mapping from virtual address to metadata.
It modifies the heapBits abstraction to use this two-level structure.
Finally, it modifies heapBitsSetType to unroll the bitmap into the
object itself and then copy it out if the bitmap would span
discontiguous bitmap chunks.

This is a step toward supporting general sparse heaps, which will
eliminate address space conflict failures as well as the limit on the
heap size.

It's also advantageous for 32-bit. 32-bit already supports
discontiguous heaps by always starting the arena at address 0.
However, as a result, with a contiguous bitmap, if the kernel chooses
a high address (near 2GB) for a heap mapping, the runtime is forced to
map up to 128MB of heap bitmap. Now the runtime can map sections of
the bitmap for just the parts of the address space used by the heap.

Updates #10460.

This slightly slows down the x/garbage and compilebench benchmarks.
However, I think the slowdown is acceptably small.

name        old time/op     new time/op     delta
Template        178ms ± 1%      180ms ± 1%  +0.78%    (p=0.029 n=10+10)
Unicode        85.7ms ± 2%     86.5ms ± 2%    ~       (p=0.089 n=10+10)
GoTypes         594ms ± 0%      599ms ± 1%  +0.70%    (p=0.000 n=9+9)
Compiler        2.86s ± 0%      2.87s ± 0%  +0.40%    (p=0.001 n=9+9)
SSA             7.23s ± 2%      7.29s ± 2%  +0.94%    (p=0.029 n=10+10)
Flate           116ms ± 1%      117ms ± 1%  +0.99%    (p=0.000 n=9+9)
GoParser        146ms ± 1%      146ms ± 0%    ~       (p=0.193 n=10+7)
Reflect         399ms ± 0%      403ms ± 1%  +0.89%    (p=0.001 n=10+10)
Tar             173ms ± 1%      174ms ± 1%  +0.91%    (p=0.013 n=10+9)
XML             208ms ± 1%      210ms ± 1%  +0.93%    (p=0.000 n=10+10)
[Geo mean]      368ms           371ms       +0.79%

name                       old time/op  new time/op  delta
Garbage/benchmem-MB=64-12  2.17ms ± 1%  2.21ms ± 1%  +2.15%  (p=0.000 n=20+20)

Change-Id: I037fd283221976f4f61249119d6b97b100bcbc66
Reviewed-on: https://go-review.googlesource.com/85883
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
2018-02-15 21:12:18 +00:00
..
cgo runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
debug
internal runtime/internal/atomic: add early nil check on ARM 2018-02-14 17:09:05 +00:00
msan
pprof runtime/pprof: scale mutex profile with sampling rate 2018-01-24 14:06:59 +00:00
race cmd/go: implement per-package asmflags, gcflags, ldflags, gccgoflags 2017-11-09 15:04:04 +00:00
testdata runtime: fail silently if we unwind over sigpanic into C code 2018-01-31 02:13:21 +00:00
trace internal/trace: link user span start and end events 2018-02-15 19:33:20 +00:00
HACKING.md
Makefile
alg.go runtime: specialize memhash32 and memhash64 2017-08-28 19:55:27 +00:00
asm.s
asm_386.s runtime: buffered write barrier for 386 2018-02-13 16:34:15 +00:00
asm_amd64.s runtime: remove legacy eager write barrier 2018-02-13 16:34:46 +00:00
asm_amd64p32.s runtime: buffered write barrier for amd64p32 2018-02-13 16:34:16 +00:00
asm_arm.s runtime: buffered write barrier for arm 2018-02-13 16:34:17 +00:00
asm_arm64.s runtime: buffered write barrier for arm64 2018-02-13 16:34:19 +00:00
asm_mips64x.s runtime: buffered write barrier for mips64 2018-02-13 16:34:20 +00:00
asm_mipsx.s runtime: buffered write barrier for mips 2018-02-13 16:34:21 +00:00
asm_ppc64x.h
asm_ppc64x.s runtime: buffered write barrier for ppc64 2018-02-13 16:34:23 +00:00
asm_s390x.s runtime: buffered write barrier for s390x 2018-02-13 16:34:24 +00:00
atomic_arm64.s runtime: use NOFRAME on arm64 2018-02-12 21:41:31 +00:00
atomic_mips64x.s runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
atomic_mipsx.s
atomic_pointer.go runtime: eliminate all writebarrierptr* calls 2018-02-13 16:34:45 +00:00
atomic_ppc64x.s
callers_test.go
cgo.go
cgo_mmap.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
cgo_ppc64x.go
cgo_sigaction.go
cgocall.go runtime: split object finding out of heapBitsForObject 2018-02-15 21:12:13 +00:00
cgocallback.go
cgocheck.go runtime: use spanOf* more widely 2018-02-15 21:12:15 +00:00
chan.go runtime: eliminate all writebarrierptr* calls 2018-02-13 16:34:45 +00:00
chan_test.go runtime: skip test that intermittently hangs on ppc64le 2017-10-03 12:26:42 +00:00
chanbarrier_test.go
closure_test.go
compiler.go
complex.go
complex_test.go
cpuflags_amd64.go
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: fail silently if we unwind over sigpanic into C code 2018-01-31 02:13:21 +00:00
crash_nonunix_test.go
crash_test.go runtime: print hexdump on traceback failure 2018-01-22 21:51:29 +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
defs3_linux.go
defs_arm_linux.go
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_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_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_arm64.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_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_freebsd.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_linux.go
defs_linux_386.go
defs_linux_amd64.go
defs_linux_arm.go
defs_linux_arm64.go
defs_linux_mips64x.go
defs_linux_mipsx.go
defs_linux_ppc64.go
defs_linux_ppc64le.go
defs_linux_s390x.go
defs_nacl_386.go
defs_nacl_amd64p32.go
defs_nacl_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_netbsd_386.go
defs_netbsd_amd64.go
defs_netbsd_arm.go
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_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_plan9_386.go
defs_plan9_amd64.go
defs_plan9_arm.go
defs_solaris.go
defs_solaris_amd64.go
defs_windows.go
defs_windows_386.go
defs_windows_amd64.go
duff_386.s
duff_amd64.s cmd/compile/internal/ssa: use sse to zero on amd64 2017-08-16 15:52:27 +00:00
duff_arm.s
duff_arm64.s runtime: use NOFRAME on arm64 2018-02-12 21:41:31 +00:00
duff_mips64x.s runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
duff_ppc64x.s
env_plan9.go
env_posix.go
env_test.go
error.go runtime: never allocate during an unrecoverable panic 2018-01-23 20:08:46 +00:00
example_test.go
export_arm_test.go
export_futex_test.go
export_linux_test.go
export_mmap_test.go
export_test.go cmd/compile: specialize map creation for small hint sizes 2017-11-02 17:03:45 +00:00
export_unix_test.go
export_windows_test.go
extern.go runtime: don't elide wrapper functions that call panic or at TOS 2017-11-13 21:43:44 +00:00
fastlog2.go
fastlog2_test.go
fastlog2table.go
float.go
funcdata.h
futex_test.go
gc_test.go runtime: benchmark for bulk write barriers 2017-10-30 18:12:49 +00:00
gcinfo_test.go
go_tls.h
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.go runtime: use new instead of newobject to create hmap in makemap 2018-02-15 08:57:26 +00:00
hashmap_fast.go runtime: eliminate all writebarrierptr* calls 2018-02-13 16:34:45 +00:00
heapdump.go runtime: delete unused function dumpbvtypes 2017-09-28 15:40:53 +00:00
iface.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
iface_test.go
lfstack.go runtime: validate lfnode addresses 2018-02-15 21:12:11 +00:00
lfstack_32bit.go
lfstack_64bit.go runtime: expand/update lfstack address space assumptions 2018-02-15 21:12:09 +00:00
lfstack_test.go
lock_futex.go
lock_sema.go runtime: make m.nextwaitm an muintptr 2017-10-11 17:47:10 +00:00
malloc.go runtime: make the heap bitmap sparse 2018-02-15 21:12:18 +00:00
malloc_test.go runtime: replace mlookup and findObject with heapBitsForObject 2018-02-15 21:12:12 +00:00
map_test.go cmd/compile: specialize map creation for small hint sizes 2017-11-02 17:03:45 +00:00
mapspeed_test.go
mbarrier.go runtime: short-circuit typedslicecopy when dstp == srcp 2018-02-15 15:05:15 +00:00
mbitmap.go runtime: make the heap bitmap sparse 2018-02-15 21:12:18 +00:00
mcache.go runtime: replace mlookup and findObject with heapBitsForObject 2018-02-15 21:12:12 +00:00
mcentral.go
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
mem_windows.go
memclr_386.s
memclr_amd64.s
memclr_amd64p32.s runtime: cleanup amd64p32 memmove and memclr file organization 2017-09-05 20:00:05 +00:00
memclr_arm.s
memclr_arm64.s runtime: IndexByte and memclr perf improvements on arm64 2017-11-15 02:58:03 +00:00
memclr_mips64x.s
memclr_mipsx.s
memclr_plan9_386.s
memclr_plan9_amd64.s
memclr_ppc64x.s
memclr_s390x.s
memmove_386.s
memmove_amd64.s runtime: simplify amd64 memmove of 3/4 bytes 2018-02-15 15:05:53 +00:00
memmove_amd64p32.s runtime: cleanup amd64p32 memmove and memclr file organization 2017-09-05 20:00:05 +00:00
memmove_arm.s
memmove_arm64.s runtime: use NOFRAME on arm64 2018-02-12 21:41:31 +00:00
memmove_linux_amd64_test.go
memmove_mips64x.s runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
memmove_mipsx.s
memmove_plan9_386.s
memmove_plan9_amd64.s
memmove_ppc64x.s
memmove_s390x.s
memmove_test.go runtime: shorten tests in all.bash 2017-10-31 13:20:27 +00:00
mfinal.go runtime: split object finding out of heapBitsForObject 2018-02-15 21:12:13 +00:00
mfinal_test.go runtime: shorten tests in all.bash 2017-10-31 13:20:27 +00:00
mfixalloc.go
mgc.go runtime/debug: make SetGCPercent(-1) wait for concurrent GC 2017-11-22 14:47:12 +00:00
mgclarge.go runtime: remove a few unused params and results 2017-10-09 20:14:50 +00:00
mgcmark.go runtime: use spanOf* more widely 2018-02-15 21:12:15 +00:00
mgcsweep.go
mgcsweepbuf.go
mgcwork.go runtime: validate lfnode addresses 2018-02-15 21:12:11 +00:00
mheap.go runtime: make the heap bitmap sparse 2018-02-15 21:12:18 +00:00
mkduff.go runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
mkfastlog2table.go
mknacl.sh
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
msan.go
msan0.go
msan_amd64.s
msize.go
mstats.go runtime: replace mlookup and findObject with heapBitsForObject 2018-02-15 21:12:12 +00:00
mwbbuf.go runtime: split object finding out of heapBitsForObject 2018-02-15 21:12:13 +00:00
net_plan9.go
netpoll.go
netpoll_epoll.go
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
netpoll_solaris.go
netpoll_stub.go
netpoll_windows.go runtime: make errno positive in netpollopen 2017-10-24 03:19:09 +00:00
noasm.go
norace_linux_test.go
norace_test.go
numcpu_freebsd_test.go
os2_freebsd.go
os2_nacl.go
os2_openbsd.go
os2_plan9.go
os2_solaris.go
os3_plan9.go runtime: don't grow the stack on sigpanic if throwsplit 2018-01-23 19:50:18 +00:00
os3_solaris.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
os_android.go
os_darwin.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
os_darwin_arm.go
os_darwin_arm64.go internal/cpu: detect cpu features in internal/cpu package 2017-11-14 19:07:15 +00:00
os_dragonfly.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
os_freebsd.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
os_freebsd_arm.go
os_linux.go runtime: use private futexes on Linux 2018-02-14 17:37:26 +00:00
os_linux_arm.go
os_linux_arm64.go internal/cpu: detect cpu features in internal/cpu package 2017-11-14 19:07:15 +00:00
os_linux_be64.go
os_linux_generic.go
os_linux_mips64x.go
os_linux_mipsx.go
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
os_nacl.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
os_nacl_arm.go
os_netbsd.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
os_netbsd_386.go
os_netbsd_amd64.go
os_netbsd_arm.go
os_openbsd.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
os_openbsd_arm.go
os_plan9.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
os_plan9_arm.go
os_solaris.go
os_windows.go runtime: remove unused memlimit function 2018-02-13 22:35:47 +00:00
panic.go runtime: avoid bad unwinding from sigpanic in C code 2018-02-13 21:01:26 +00:00
plugin.go runtime, plugin: error not throw on duplicate open 2017-09-09 16:26:33 +00:00
print.go runtime: print hexdump on traceback failure 2018-01-22 21:51:29 +00:00
proc.go runtime: remove extraneous stackPreempt setting 2018-02-14 15:27:11 +00:00
proc_runtime_test.go
proc_test.go runtime: fix build on non-Linux platforms 2017-11-21 21:52:58 +00:00
profbuf.go runtime: fix false positive race in profile label reading 2017-08-18 21:40:37 +00:00
profbuf_test.go
proflabel.go runtime: fix false positive race in profile label reading 2017-08-18 21:40:37 +00:00
race.go runtime: split object finding out of heapBitsForObject 2018-02-15 21:12:13 +00:00
race0.go
race_amd64.s
rand_test.go
rdebug.go
relax_stub.go
rt0_android_386.s runtime: pass dummy argc/argv correctly in r0_386_android_lib 2018-01-21 04:56:36 +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_arm.s runtime, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
rt0_android_arm64.s runtime: use NOFRAME on arm64 2018-02-12 21:41:31 +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_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_darwin_arm64.s runtime: use NOFRAME on arm64 2018-02-12 21:41:31 +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_arm.s runtime, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
rt0_linux_arm64.s runtime: use NOFRAME on arm64 2018-02-12 21:41:31 +00:00
rt0_linux_mips64x.s runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
rt0_linux_mipsx.s runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
rt0_linux_ppc64.s
rt0_linux_ppc64le.s runtime: make sure R0 is zero before _main on ppc64le 2017-08-11 17:46:24 +00:00
rt0_linux_s390x.s cmd/link: enable c-shared and c-archive mode on s390x 2017-11-17 15:54:54 +00:00
rt0_nacl_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_nacl_amd64p32.s
rt0_nacl_arm.s runtime, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
rt0_netbsd_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_netbsd_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_netbsd_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_openbsd_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_openbsd_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_openbsd_arm.s runtime: unify arm entry point code 2017-10-25 00:40:40 +00:00
rt0_plan9_386.s runtime: unify 386 entry point code 2017-10-17 04:03:16 +00:00
rt0_plan9_amd64.s
rt0_plan9_arm.s runtime, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +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
runtime-gdb.py runtime/gdb: use goroutine atomicstatus to determine the state 2018-02-13 19:23:37 +00:00
runtime-gdb_test.go runtime/gdb: use goroutine atomicstatus to determine the state 2018-02-13 19:23:37 +00:00
runtime-lldb_test.go cmd/go: implement per-package asmflags, gcflags, ldflags, gccgoflags 2017-11-09 15:04:04 +00:00
runtime.go syscall: make Exit call runtime.exit 2017-09-27 01:10:05 +00:00
runtime1.go runtime: buffered write barrier implementation 2017-10-30 18:12:44 +00:00
runtime2.go runtime: restore the Go-allocated signal stack in unminit 2017-12-01 20:20:45 +00:00
runtime_linux_test.go runtime: fix build on non-Linux platforms 2017-11-21 21:52:58 +00:00
runtime_mmap_test.go runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
runtime_test.go runtime: shorten tests in all.bash 2017-10-31 13:20:27 +00:00
runtime_unix_test.go
rwmutex.go sync: consistently use article "a" for RWMutex 2018-01-16 23:09:57 +00:00
rwmutex_test.go runtime: "fix" non-preemptible loop in TestParallelRWMutexReaders 2017-10-26 20:38:48 +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
signal_386.go runtime: refactor test for pushing sigpanic frame 2018-02-13 21:01:25 +00:00
signal_amd64x.go runtime: refactor test for pushing sigpanic frame 2018-02-13 21:01:25 +00:00
signal_arm.go runtime: refactor test for pushing sigpanic frame 2018-02-13 21:01:25 +00:00
signal_arm64.go runtime: refactor test for pushing sigpanic frame 2018-02-13 21:01:25 +00:00
signal_darwin.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_darwin_386.go
signal_darwin_amd64.go
signal_darwin_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_darwin_arm64.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_dragonfly.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_dragonfly_amd64.go
signal_freebsd.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_freebsd_386.go
signal_freebsd_amd64.go
signal_freebsd_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_linux_386.go
signal_linux_amd64.go
signal_linux_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_linux_arm64.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_linux_mips64x.go runtime: restore RSB for sigpanic call on mips64x 2018-01-31 20:57:53 +00:00
signal_linux_mipsx.go
signal_linux_ppc64x.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_linux_s390x.go runtime: refactor test for pushing sigpanic frame 2018-02-13 21:01:25 +00:00
signal_mips64x.go runtime: refactor test for pushing sigpanic frame 2018-02-13 21:01:25 +00:00
signal_mipsx.go runtime: refactor test for pushing sigpanic frame 2018-02-13 21:01:25 +00:00
signal_nacl.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_nacl_386.go
signal_nacl_amd64p32.go
signal_nacl_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_netbsd_386.go
signal_netbsd_amd64.go
signal_netbsd_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_openbsd_386.go
signal_openbsd_amd64.go
signal_openbsd_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_plan9.go
signal_ppc64x.go runtime: refactor test for pushing sigpanic frame 2018-02-13 21:01:25 +00:00
signal_sighandler.go runtime: don't grow the stack on sigpanic if throwsplit 2018-01-23 19:50:18 +00:00
signal_solaris.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_solaris_amd64.go
signal_unix.go runtime: don't grow the stack on sigpanic if throwsplit 2018-01-23 19:50:18 +00:00
signal_windows.go runtime: don't grow the stack on sigpanic if throwsplit 2018-01-23 19:50:18 +00:00
sigqueue.go runtime: improve sigsend documentation 2017-12-01 20:34:13 +00:00
sigqueue_plan9.go
sigtab_linux_generic.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
sigtab_linux_mipsx.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
sizeclasses.go runtime: add "max waste" column to size class table comment 2017-08-10 21:45:01 +00:00
slice.go runtime: protect growslice against newcap*et.size overflow 2017-11-01 12:38:02 +00:00
slice_test.go runtime: improve test file naming 2018-02-15 08:56:58 +00:00
softfloat64.go runtime: implement some soft-float routines (used by GOMIPS=softfloat) 2017-11-30 17:12:05 +00:00
softfloat64_test.go
softfloat_arm.go
sqrt.go
sqrt_test.go
stack.go runtime: consolidate mheap.lookup* and spanOf* 2018-02-15 21:12:14 +00:00
stack_test.go runtime: even more TestStackGrowth timeout debugging 2017-12-01 20:46:46 +00:00
string.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
string_test.go
stubs.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
stubs2.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
stubs32.go
stubs_android.go
stubs_asm.go
stubs_linux.go
stubs_nonlinux.go
symtab.go runtime: speed up stack copying a little 2018-02-15 15:06:34 +00:00
symtab_test.go
sys_arm.go
sys_arm64.go
sys_darwin_386.s runtime: separate error result for mmap 2017-10-18 19:22:08 +00:00
sys_darwin_amd64.s runtime: fix time.Now on Sierra and older 2018-01-16 16:49:41 +00:00
sys_darwin_arm.s runtime, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
sys_darwin_arm64.s runtime: use NOFRAME on arm64 2018-02-12 21:41:31 +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, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
sys_linux_386.s runtime: call amd64 VDSO entry points on large stack 2017-11-14 23:51:19 +00:00
sys_linux_amd64.s runtime: add symbol for AT_FDCWD on Linux amd64 and mips64x 2018-02-14 08:48:44 +00:00
sys_linux_arm.s runtime, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
sys_linux_arm64.s runtime: use NOFRAME on arm64 2018-02-12 21:41:31 +00:00
sys_linux_mips64x.s runtime: add symbol for AT_FDCWD on Linux amd64 and mips64x 2018-02-14 08:48:44 +00:00
sys_linux_mipsx.s runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +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
sys_mipsx.go
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, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
sys_netbsd_386.s runtime: make NetBSD lwp_park use monotonic time 2017-12-04 03:29:56 +00:00
sys_netbsd_amd64.s runtime: make NetBSD lwp_park use monotonic time 2017-12-04 03:29:56 +00:00
sys_netbsd_arm.s runtime, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +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, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +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, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
sys_ppc64x.go
sys_s390x.go
sys_solaris_amd64.s runtime: call sigtrampgo on solaris 2017-08-29 19:57:32 +00:00
sys_windows_386.s
sys_windows_amd64.s
sys_x86.go runtime: fix documentation typo for gostartcall 2017-11-29 18:42:49 +00:00
syscall2_solaris.go
syscall_nacl.h
syscall_solaris.go runtime: make RawSyscall panic on Solaris 2017-12-08 00:11:19 +00:00
syscall_windows.go syscall: make Exit call runtime.exit 2017-09-27 01:10:05 +00:00
syscall_windows_test.go runtime: make TestWindowsStackMemory build even with CGO_ENABLED=0 set 2017-11-14 03:53:15 +00:00
textflag.h
time.go runtime: don't issue cgocheck error for timer bucket source pointer 2018-01-15 22:18:55 +00:00
timeasm.go
timestub.go
tls_arm.s runtime, sync/atomic: use NOFRAME on arm 2018-02-12 21:41:30 +00:00
tls_arm64.h
tls_arm64.s
tls_mips64x.s runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
tls_mipsx.s runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
tls_ppc64x.s
tls_s390x.s
trace.go runtime/trace: implement annotation API 2018-02-15 18:54:14 +00:00
traceback.go runtime: avoid bad unwinding from sigpanic in C code 2018-02-13 21:01:26 +00:00
type.go cmd/compile: fix and improve struct field reflect information 2017-09-05 18:09:41 +00:00
typekind.go
unaligned1.go
unaligned2.go
utf8.go
vdso_elf32.go runtime: move ELF structure definitions into own files 2018-02-15 16:15:19 +00:00
vdso_elf64.go runtime: move ELF structure definitions into own files 2018-02-15 16:15:19 +00:00
vdso_linux.go runtime: update URL of the Linux vDSO parser tool 2018-01-16 15:11:05 +00:00
vdso_linux_386.go runtime: move ELF structure definitions into own files 2018-02-15 16:15:19 +00:00
vdso_linux_amd64.go runtime: move ELF structure definitions into own files 2018-02-15 16:15:19 +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_none.go
vlop_386.s
vlop_arm.s cmd/compile: CALLudiv on nacl/arm doesn't clobber R12 2018-02-14 17:09:15 +00:00
vlop_arm_test.go
vlrt.go
wincallback.go
write_err.go
write_err_android.go
zcallback_windows.go
zcallback_windows.s