1
0
mirror of https://github.com/golang/go synced 2024-10-05 21:21:21 -06:00
go/src/runtime
Rick Hudson c4fe503119 runtime: reduce thrashing of gs between ps
One important use case is a pipeline computation that pass values
from one Goroutine to the next and then exits or is placed in a
wait state. If GOMAXPROCS > 1 a Goroutine running on P1 will enable
another Goroutine and then immediately make P1 available to execute
it. We need to prevent other Ps from stealing the G that P1 is about
to execute. Otherwise the Gs can thrash between Ps causing unneeded
synchronization and slowing down throughput.

Fix this by changing the stealing logic so that when a P attempts to
steal the only G on some other P's run queue, it will pause
momentarily to allow the victim P to schedule the G.

As part of optimizing stealing we also use a per P victim queue
move stolen gs. This eliminates the zeroing of a stack local victim
queue which turned out to be expensive.

This CL is a necessary but not sufficient prerequisite to changing
the default value of GOMAXPROCS to something > 1 which is another
CL/discussion.

For highly serialized programs, such as GoroutineRing below this can
make a large difference. For larger and more parallel programs such
as the x/benchmarks there is no noticeable detriment.

~/work/code/src/rsc.io/benchstat/benchstat old.txt new.txt
name                old mean              new mean              delta
GoroutineRing       30.2µs × (0.98,1.01)  30.1µs × (0.97,1.04)     ~    (p=0.941)
GoroutineRing-2      113µs × (0.91,1.07)    30µs × (0.98,1.03)  -73.17% (p=0.004)
GoroutineRing-4      144µs × (0.98,1.02)    32µs × (0.98,1.01)  -77.69% (p=0.000)
GoroutineRingBuf    32.7µs × (0.97,1.03)  32.5µs × (0.97,1.02)     ~    (p=0.795)
GoroutineRingBuf-2   120µs × (0.92,1.08)    33µs × (1.00,1.00)  -72.48% (p=0.004)
GoroutineRingBuf-4   138µs × (0.92,1.06)    33µs × (1.00,1.00)  -76.21% (p=0.003)

The bench benchmarks show little impact.
    	  	      old  	 new
garbage	      	      7032879	 7011696
httpold		        25509	   25301
splayold	      1022073	 1019499
jsonold		     28230624   28081433

Change-Id: I228c48fed8d85c9bbef16a7edc53ab7898506f50
Reviewed-on: https://go-review.googlesource.com/9872
Reviewed-by: Austin Clements <austin@google.com>
2015-05-13 12:55:24 +00:00
..
cgo runtime/cgo: add cgo support for solaris/amd64 2015-05-06 11:37:28 +00:00
debug runtime/debug: disable arm64 test for issue 9993 2015-04-13 11:57:12 +00:00
pprof Revert "runtime/pprof: write heap statistics to heap profile always" 2015-05-01 15:56:20 +00:00
race runtime/race: fix failing tests 2015-04-27 23:12:00 +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: enable profiling on g0 2015-05-11 08:44:30 +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: tail call into memeq/cmp body implementations 2015-04-29 04:46:25 +00:00
asm_amd64.s runtime: fix addmoduledata to follow the platform ABI 2015-05-12 00:50:32 +00:00
asm_amd64p32.s runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
asm_arm64.s runtime: tail call into memeq/cmp body implementations 2015-04-29 04:46:25 +00:00
asm_arm.s runtime: tail call into memeq/cmp body implementations 2015-04-29 04:46:25 +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 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: add support for linux/arm64 2015-03-16 18:45:54 +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 [dev.cc] runtime: fix FP reference in atomic_ppc64x.s 2015-02-19 04:05:41 +00:00
atomic_test.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +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: fix stackDebug comment 2015-05-02 02:39:50 +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: don't run runq tests on the system stack 2015-05-12 19:58:08 +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: remove wbshadow mode 2015-05-11 14:55:11 +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 runtime: add benchmark of heapBitsSetType 2015-05-11 14:40:27 +00:00
gcinfo_test.go runtime: reintroduce ``dead'' space during GC scan 2015-05-11 14:51:40 +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: use 2-bit heap bitmap (in place of 4-bit) 2015-05-11 14:43:45 +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 runtime: fix TestLFStack on 386 2015-05-11 15:21:54 +00: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: remove wbshadow mode 2015-05-11 14:55:11 +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: use heap bitmap for typedmemmove 2015-05-11 16:38:21 +00:00
mbitmap.go runtime: use heap bitmap for typedmemmove 2015-05-11 16:38:21 +00:00
mcache.go runtime: track "scannable" bytes of heap 2015-05-06 19:40:33 +00:00
mcentral.go runtime: finish sweeping before concurrent GC starts 2015-04-21 15:35:46 +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: 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 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: remove wbshadow mode 2015-05-11 14:55:11 +00:00
mgcmark.go runtime: remove wbshadow mode 2015-05-11 14:55:11 +00:00
mgcsweep.go runtime: finish sweeping before concurrent GC starts 2015-04-21 15:35:46 +00:00
mgcwork.go runtime: eliminate one heapBitsForObject from scanobject 2015-04-28 15:22:20 +00:00
mheap.go runtime: move a few atomic fields up 2015-05-11 16:08:57 +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: 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: track "scannable" bytes of heap 2015-05-06 19:40:33 +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: always load address of libcFunc on Solaris 2015-05-06 11:36: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 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: 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: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +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: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +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: terminate exit status buffer on Plan 9 2015-05-12 16:35:58 +00:00
os1_windows.go cmd/internal/ld, runtime: unify stack reservation in PE header and runtime 2015-04-29 03:27:10 +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: always load address of libcFunc on Solaris 2015-05-06 11:36:57 +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: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +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: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +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: signal forwarding 2015-04-24 05:19:39 +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: always load address of libcFunc on Solaris 2015-05-06 11:36:57 +00: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: remove wbshadow mode 2015-05-11 14:55:11 +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: reduce thrashing of gs between ps 2015-05-13 12:55:24 +00:00
proc_test.go runtime: fix race in BenchmarkPingPongHog 2015-04-27 20:10:11 +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: 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: turn off checkmark by default 2015-05-07 21:08:42 +00:00
runtime2.go runtime: reduce thrashing of gs between ps 2015-05-13 12:55:24 +00:00
runtime_linux_test.go
runtime_test.go runtime: enable profiling on g0 2015-05-11 08:44:30 +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 cmd/internal/ld: generate correct .debug_frames on RISC architectures 2015-05-08 00:34:27 +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: remove a modulus calculation from pollorder 2015-04-27 19:36:37 +00:00
sema.go runtime: remove runtime frames from stacks in traces 2015-03-10 14:46:15 +00:00
signal1_unix.go runtime: signal forwarding 2015-04-24 05:19:39 +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 runtime: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +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: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +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: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +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 runtime: fix signal handling on Plan 9 2015-05-12 16:35:46 +00:00
sigqueue.go runtime: initialize extra M for cgo during mstart 2015-03-24 19:39:46 +00:00
slice.go runtime: replace needwb() with writeBarrierEnabled 2015-04-28 01:37:53 +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: fix software FP regs corruption when emulating SQRT on ARM 2015-05-05 07:32:58 +00:00
sqrt_test.go runtime: fix software FP regs corruption when emulating SQRT on ARM 2015-05-05 07:32:58 +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: use 2-bit heap bitmap (in place of 4-bit) 2015-05-11 14:43:45 +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 runtime: rename gothrow to throw 2014-12-28 06:16:16 +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
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/internal/ld, runtime: abort on shared library ABI mismatch 2015-05-12 01:30:40 +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: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +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: signal forwarding 2015-04-24 05:19:39 +00:00
sys_linux_amd64.s runtime: signal forwarding 2015-04-24 05:19:39 +00:00
sys_linux_arm64.s runtime: signal forwarding 2015-04-24 05:19:39 +00:00
sys_linux_arm.s runtime: re-enable TestNewProc0 on android/arm and fix heap corruption 2015-04-29 19:18:07 +00:00
sys_linux_ppc64x.s runtime: signal forwarding 2015-04-24 05:19:39 +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 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 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 runtime, syscall: link Solaris binaries directly instead of using dlopen/dlsym 2015-05-06 11:38:50 +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: adjust traceTickDiv for non-x86 architectures 2015-05-01 07:25:49 +00:00
traceback.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
type.go runtime: rename ptrsize to ptrdata 2015-05-05 19:27:47 +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 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