1
0
mirror of https://github.com/golang/go synced 2024-11-19 12:44:51 -07:00
go/src/runtime
Frank Somers af40cbe83c runtime: use vDSO on linux/386 to improve time.Now performance
This change adds support for accelerating time.Now by using
the __vdso_clock_gettime fast-path via the vDSO on linux/386
if it is available.

When the vDSO path to the clocks is available, it is typically
5x-10x faster than the syscall path (see benchmark extract
below).  Two such calls are made for each time.Now() call
on most platforms as of go 1.9.

- Add vdso_linux_386.go, containing the ELF32 definitions
  for use by vdso_linux.go, the maximum array size, and
  the symbols to be located in the vDSO.

- Modify runtime.walltime and runtime.nanotime to check for
  and use the vDSO fast-path if available, or fall back to
  the existing syscall path.

- Reduce the stack reservations for runtime.walltime and
  runtime.monotime from 32 to 16 bytes. It appears the syscall
  path actually only needed 8 bytes, but 16 is now needed to
  cover the syscall and vDSO paths.

- Remove clearing DX from the syscall paths as clock_gettime
  only takes 2 args (BX, CX in syscall calling convention),
  so there should be no need to clear DX.

The included BenchmarkTimeNow was run with -cpu=1 -count=20
on an "Intel(R) Celeron(R) CPU J1900 @ 1.99GHz", comparing
released go 1.9.1 vs this change. This shows a gain in
performance on linux/386 (6.89x), and that no regression
occurred on linux/amd64 due to this change.

Kernel: linux/i686, GOOS=linux GOARCH=386
   name      old time/op  new time/op  delta
   TimeNow   978ns ± 0%   142ns ± 0%  -85.48%  (p=0.000 n=16+20)

Kernel: linux/x86_64, GOOS=linux GOARCH=amd64
   name      old time/op  new time/op  delta
   TimeNow   125ns ± 0%   125ns ± 0%   ~       (all equal)

Gains are more dramatic in virtualized environments,
presumably due to the overhead of virtualizing the syscall.

Fixes #22190

Change-Id: I2f83ce60cb1b8b310c9ced0706bb463c1b3aedf8
Reviewed-on: https://go-review.googlesource.com/69390
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-10-13 14:41:04 +00:00
..
cgo runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
debug runtime/debug: mark TestSetGCPercent as flaky 2017-04-24 22:11:58 +00:00
internal runtime/internal/sys: use standard generated code header 2017-08-30 17:52:36 +00:00
msan
pprof all: revert "all: prefer strings.IndexByte over strings.Index" 2017-10-05 23:19:10 +00:00
race testing: don't fail all tests after racy test failure 2017-08-15 22:59:26 +00:00
testdata runtime: terminate locked OS thread if its goroutine exits 2017-10-11 17:47:21 +00:00
trace runtime/trace: improve package doc 2017-08-29 20:25:54 +00:00
alg.go runtime: specialize memhash32 and memhash64 2017-08-28 19:55:27 +00:00
append_test.go runtime: simplify memory capacity check in growslice 2017-08-15 04:23:11 +00:00
asm_386.s cmd/compile: add intrinsic for reading caller's pc 2017-09-22 18:37:03 +00:00
asm_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
asm_amd64p32.s cmd/compile: add intrinsic for reading caller's pc 2017-09-22 18:37:03 +00:00
asm_arm64.s runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
asm_arm.s runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
asm_mips64x.s runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
asm_mipsx.s runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
asm_ppc64x.h
asm_ppc64x.s runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
asm_s390x.s runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
asm.s runtime: handle inlined calls in runtime.Callers 2017-03-29 17:22:08 +00:00
atomic_arm64.s
atomic_mips64x.s
atomic_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
atomic_pointer.go runtime: perform write barrier before pointer write 2016-10-28 20:47:52 +00:00
atomic_ppc64x.s
callers_test.go
cgo_mmap.go runtime: intercept munmap as we do mmap 2017-06-06 23:26:55 +00:00
cgo_ppc64x.go
cgo_sigaction.go runtime: don't call libc sigaction function in forked child 2017-07-20 18:02:47 +00:00
cgo.go runtime: access _cgo_yield indirectly 2017-03-24 15:37:56 +00:00
cgocall.go runtime: don't call lockOSThread for every cgo call 2017-09-22 18:17:13 +00:00
cgocallback.go
cgocheck.go runtime: rename _MSpanStack -> _MSpanManual 2017-04-13 18:20:30 +00:00
chan_test.go runtime: skip test that intermittently hangs on ppc64le 2017-10-03 12:26:42 +00:00
chan.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
chanbarrier_test.go
closure_test.go
compiler.go
complex_test.go
complex.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
cpuflags_amd64.go runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
cpuprof.go runtime: in cpuProfile.addExtra, set p.lostExtra to 0 after flush 2017-09-12 16:54:29 +00:00
cputicks.go all: remove some double spaces from comments 2017-08-26 15:09:09 +00:00
crash_cgo_test.go runtime: terminate locked OS thread if its goroutine exits 2017-10-11 17:47:21 +00:00
crash_nonunix_test.go
crash_test.go runtime: terminate locked OS thread if its goroutine exits 2017-10-11 17:47:21 +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 runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_arm.go runtime, cmd/link: fix netbsd/arm EABI support 2016-10-24 15:23:13 +00:00
defs1_solaris_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs2_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs3_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_arm_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_darwin_386.go
defs_darwin_amd64.go
defs_darwin_arm64.go
defs_darwin_arm.go
defs_darwin.go
defs_dragonfly_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_dragonfly.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_freebsd_386.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
defs_freebsd_amd64.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
defs_freebsd_arm.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
defs_freebsd.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
defs_linux_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_arm64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_arm.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_mips64x.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
defs_linux_ppc64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_ppc64le.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_s390x.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux.go
defs_nacl_386.go
defs_nacl_amd64p32.go
defs_nacl_arm.go
defs_netbsd_386.go
defs_netbsd_amd64.go
defs_netbsd_arm.go
defs_netbsd.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_arm.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_plan9_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_plan9_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_plan9_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_solaris_amd64.go
defs_solaris.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_windows_386.go
defs_windows_amd64.go
defs_windows.go
duff_386.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
duff_amd64.s cmd/compile/internal/ssa: use sse to zero on amd64 2017-08-16 15:52:27 +00:00
duff_arm64.s cmd/compile: memory clearing optimization for arm64 2017-08-25 20:09:06 +00:00
duff_arm.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
duff_mips64x.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
duff_ppc64x.s runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
env_plan9.go
env_posix.go runtime: clean redundant call of environ function 2017-05-03 10:02:26 +00:00
env_test.go
error.go runtime: simplify stack walk in panicwrap 2017-09-22 22:17:17 +00:00
example_test.go runtime: improve ExampleFrames 2017-04-20 19:46:01 +00:00
export_arm_test.go
export_futex_test.go
export_linux_test.go
export_mmap_test.go runtime: fetch physical page size from the OS 2016-09-06 21:05:50 +00:00
export_test.go runtime: make LockOSThread/UnlockOSThread nested 2017-10-05 19:50:23 +00:00
export_unix_test.go runtime: use SIGKILL if SIGQUIT is blocked; skip tests that need SIGQUIT 2017-07-20 18:09:18 +00:00
export_windows_test.go
extern.go runtime: fix documentation error about runtime.GC() 2017-06-08 17:47:50 +00:00
fastlog2_test.go
fastlog2.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
fastlog2table.go
float.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
funcdata.h cmd/compile,link: generate PC-value tables with inlining information 2017-03-03 21:29:30 +00:00
futex_test.go
gc_test.go runtime: deflake TestPeriodicGC 2017-10-04 16:57:26 +00:00
gcinfo_test.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
go_tls.h
HACKING.md runtime: make rwmutex work on Ms instead of Gs 2017-06-28 22:08:57 +00:00
hash32.go runtime: specialize memhash32 and memhash64 2017-08-28 19:55:27 +00:00
hash64.go runtime: fix memhash64 on big endian systems 2017-08-29 04:39:41 +00:00
hash_test.go runtime: specialize memhash32 and memhash64 2017-08-28 19:55:27 +00:00
hashmap_fast.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
hashmap.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
heapdump.go runtime: delete unused function dumpbvtypes 2017-09-28 15:40:53 +00:00
iface_test.go cmd/compile, runtime: specialize convT2x, don't alloc for zero vals 2017-02-28 19:23:33 +00:00
iface.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
lfstack_32bit.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
lfstack_64bit.go
lfstack_test.go
lfstack.go runtime: introduce a type for lfstacks 2017-03-19 22:42:24 +00:00
lock_futex.go runtime: fix stack split at bad time when disable inlining 2017-05-29 19:10:39 +00:00
lock_sema.go runtime: make m.nextwaitm an muintptr 2017-10-11 17:47:10 +00:00
Makefile
malloc_test.go runtime: re-add sanity check for GCCPUFraction 2017-09-22 20:05:37 +00:00
malloc.go runtime: improve comments for nextSample 2017-09-26 16:28:35 +00:00
map_test.go cmd/compile: preserve escape information for map literals 2017-09-11 05:54:46 +00:00
mapspeed_test.go runtime: add a map growth benchmark 2017-04-19 13:47:21 +00:00
mbarrier.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
mbitmap.go runtime: remove unused prefetch functions 2017-08-08 06:43:49 +00:00
mcache.go runtime: remove a few unused params and results 2017-10-09 20:14:50 +00:00
mcentral.go runtime: separate spans of noscan objects 2017-04-28 22:50:31 +00:00
mem_bsd.go runtime: mmap(2) on Solaris & Illumos can return EAGAIN. 2017-05-16 21:01:42 +00:00
mem_darwin.go
mem_linux.go runtime: don't hard-code physical page size 2016-09-06 21:05:53 +00:00
mem_plan9.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
mem_windows.go runtime: improve out-of-memory message when VirtualAlloc fails 2017-07-21 01:00:33 +00:00
memclr_386.s runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
memclr_amd64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_amd64p32.s runtime: cleanup amd64p32 memmove and memclr file organization 2017-09-05 20:00:05 +00:00
memclr_arm64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_arm.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_mips64x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
memclr_plan9_386.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_plan9_amd64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_ppc64x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_s390x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memmove_386.s runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
memmove_amd64.s runtime: refactor cpu feature detection for 386 & amd64 2017-05-01 20:46:03 +00:00
memmove_amd64p32.s runtime: cleanup amd64p32 memmove and memclr file organization 2017-09-05 20:00:05 +00:00
memmove_arm64.s
memmove_arm.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_linux_amd64_test.go all: sprinkle t.Parallel on some slow tests 2016-11-04 16:56:57 +00:00
memmove_mips64x.s
memmove_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
memmove_plan9_386.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_plan9_amd64.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_ppc64x.s
memmove_s390x.s
memmove_test.go runtime: amd64, use 4-byte ops for memmove of 4 bytes 2017-01-23 19:39:22 +00:00
mfinal_test.go runtime: add a use of runtime.KeepAlive's argument 2017-08-14 20:11:21 +00:00
mfinal.go runtime: add a use of runtime.KeepAlive's argument 2017-08-14 20:11:21 +00:00
mfixalloc.go runtime: redo insert/remove of large spans 2017-03-29 14:18:24 +00:00
mgc.go runtime: clean up loops over allp 2017-09-27 16:29:15 +00:00
mgclarge.go runtime: remove a few unused params and results 2017-10-09 20:14:50 +00:00
mgcmark.go runtime: clean up loops over allp 2017-09-27 16:29:15 +00:00
mgcsweep.go runtime: separate spans of noscan objects 2017-04-28 22:50:31 +00:00
mgcsweepbuf.go runtime: make markrootSpans time proportional to in-use spans 2016-10-25 22:32:59 +00:00
mgcwork.go runtime: free workbufs during sweeping 2017-04-13 18:20:47 +00:00
mheap.go runtime: force the type of specialfinalizer into DWARF 2017-10-05 20:03:42 +00:00
mkduff.go cmd/compile: memory clearing optimization for arm64 2017-08-25 20:09:06 +00:00
mkfastlog2table.go
mknacl.sh runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
mksizeclasses.go runtime: add "max waste" column to size class table comment 2017-08-10 21:45:01 +00:00
mmap.go runtime: intercept munmap as we do mmap 2017-06-06 23:26:55 +00:00
mprof.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
msan0.go
msan_amd64.s runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
msan.go runtime: check for nil g and m in msanread 2017-01-19 23:06:54 +00:00
msize.go runtime: remove sizeToClass 2017-03-13 01:55:44 +00:00
mstats.go runtime: clean up loops over allp 2017-09-27 16:29:15 +00:00
net_plan9.go net: refactor poller into new internal/poll package 2017-02-13 18:36:28 +00:00
netpoll_epoll.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
netpoll_kqueue.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
netpoll_nacl.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_solaris.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
netpoll_stub.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_windows.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
netpoll.go runtime: adjust netpoll panic messages 2017-04-25 21:39:18 +00:00
noasm.go all: fix assembly vet issues 2016-08-25 18:52:31 +00:00
norace_linux_test.go
norace_test.go
numcpu_freebsd_test.go runtime: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD 2017-03-10 22:06:24 +00:00
os2_freebsd.go
os2_nacl.go
os2_openbsd.go
os2_plan9.go
os2_solaris.go
os3_plan9.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
os3_solaris.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
os_android.go
os_darwin_arm64.go hash/crc32: optimize arm64 crc32 implementation 2017-04-13 12:44:10 +00:00
os_darwin_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_darwin.go runtime: don't restore the alternate signal stack on ios 2017-10-12 16:59:32 +00:00
os_dragonfly.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
os_freebsd_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_freebsd.go runtime: allow more CPUs on FreeBSD 2017-09-27 16:29:18 +00:00
os_linux_arm64.go runtime: gofmt -w -s 2017-04-24 17:01:29 +00:00
os_linux_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_linux_be64.go runtime: fix sigset type for ppc64 big-endian GNU/Linux 2016-10-06 22:24:40 +00:00
os_linux_generic.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_mips64x.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_noauxv.go runtime: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +00:00
os_linux_ppc64x.go runtime, internal/cpu: CPU capabilities detection for ppc64x 2017-08-14 12:16:42 +00:00
os_linux_s390x.go runtime: get s390x vector facility availability from AT_HWCAP 2016-10-19 21:50:13 +00:00
os_linux.go all: unindent some big chunks of code 2017-08-18 06:59:48 +00:00
os_nacl_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_nacl.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
os_netbsd_386.go
os_netbsd_amd64.go
os_netbsd_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_netbsd.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
os_openbsd_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_openbsd.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
os_plan9_arm.go runtime: use hardware divider to improve performance 2017-04-11 12:25:55 +00:00
os_plan9.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
os_solaris.go
os_windows.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
panic.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
plugin.go runtime, plugin: error not throw on duplicate open 2017-09-09 16:26:33 +00:00
print.go cmd/compile: insert ' ' and \n at beginning of walkprint 2017-08-15 21:54:30 +00:00
proc_runtime_test.go
proc_test.go runtime: terminate locked OS thread if its goroutine exits 2017-10-11 17:47:21 +00:00
proc.go runtime: fix crash on Plan 9 2017-10-12 00:11:33 +00:00
profbuf_test.go runtime: new profile buffer implementation supporting label pointers 2017-02-23 19:47:23 +00:00
profbuf.go runtime: fix false positive race in profile label reading 2017-08-18 21:40:37 +00:00
proflabel.go runtime: fix false positive race in profile label reading 2017-08-18 21:40:37 +00:00
race0.go
race_amd64.s
race.go runtime: fix typo in the word "preceding" 2017-09-22 12:51:56 +00:00
rand_test.go runtime: speed up fastrand() % n 2017-02-14 00:01:22 +00:00
rdebug.go
relax_stub.go runtime: use next timer to decide whether to relax 2017-07-07 21:22:31 +00:00
rt0_android_386.s
rt0_android_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_android_arm64.s runtime: fall back to /proc/self/auxv in Android libs 2016-11-29 15:27:53 +00:00
rt0_android_arm.s runtime: fall back to /proc/self/auxv in Android libs 2016-11-29 15:27:53 +00:00
rt0_darwin_386.s
rt0_darwin_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_darwin_arm64.s
rt0_darwin_arm.s
rt0_dragonfly_amd64.s runtime: fix dragonfly/amd64 2017-10-12 04:03:50 +00:00
rt0_freebsd_386.s
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
rt0_linux_386.s
rt0_linux_amd64.s runtime: unify amd64 -buildmode=c-archive/c-shared entry point code 2017-10-11 21:12:51 +00:00
rt0_linux_arm64.s
rt0_linux_arm.s
rt0_linux_mips64x.s all: fix minor misspellings 2017-04-03 23:19:07 +00:00
rt0_linux_mipsx.s runtime: add cgo support for GOARCH=mips{,le} 2016-12-14 23:52:33 +00:00
rt0_linux_ppc64.s
rt0_linux_ppc64le.s runtime: make sure R0 is zero before _main on ppc64le 2017-08-11 17:46:24 +00:00
rt0_linux_s390x.s
rt0_nacl_386.s
rt0_nacl_amd64p32.s
rt0_nacl_arm.s
rt0_netbsd_386.s
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
rt0_openbsd_386.s
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
rt0_plan9_386.s
rt0_plan9_amd64.s
rt0_plan9_arm.s
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
rt0_windows_amd64.s runtime: unify amd64 -buildmode=exe entry point code 2017-10-11 20:07:31 +00:00
runtime1.go runtime: remove unused prefetch functions 2017-08-08 06:43:49 +00:00
runtime2.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
runtime_linux_test.go
runtime_mmap_test.go runtime: fetch physical page size from the OS 2016-09-06 21:05:50 +00:00
runtime_test.go cmd/compile: add TestIntendedInlining from runtime 2017-09-13 18:10:31 +00:00
runtime_unix_test.go
runtime-gdb_test.go cmd/compile: add ideal int constants to dwarf 2017-10-09 21:30:03 +00:00
runtime-gdb.py runtime: fix tab/space inconsistency in runtime-gdb.py 2017-06-08 16:14:52 +00:00
runtime-lldb_test.go cmd/link: eliminate .debug_aranges 2017-10-12 18:56:18 +00:00
runtime.go syscall: make Exit call runtime.exit 2017-09-27 01:10:05 +00:00
rwmutex_test.go runtime: prevent descheduling while holding rwmutex read lock 2017-07-06 17:04:25 +00:00
rwmutex.go runtime: prevent descheduling while holding rwmutex read lock 2017-07-06 17:04:25 +00:00
select.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
sema.go runtime: fix using fastrand in sema.go 2017-10-04 18:41:11 +00:00
sigaction_linux.go runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
signal_386.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_amd64x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_arm64.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_arm.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_darwin_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_arm64.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_darwin_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_darwin.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_dragonfly_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_dragonfly.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_freebsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_freebsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_freebsd_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_freebsd.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_linux_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_arm64.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_linux_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_linux_mips64x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
signal_linux_ppc64x.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_linux_s390x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_mips64x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_mipsx.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_nacl_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_nacl_amd64p32.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_nacl_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_nacl.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_netbsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_netbsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_netbsd_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_netbsd.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_openbsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_openbsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_openbsd_arm.go runtime: normalize (*sigctxt).fault() type 2017-10-05 02:31:25 +00:00
signal_openbsd.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_plan9.go
signal_ppc64x.go runtime: avoid repeated findmoduledatap calls 2017-03-06 19:17:24 +00:00
signal_sighandler.go runtime: replace sched.mcount int32 with sched.mnext int64 2017-10-11 17:47:16 +00:00
signal_solaris_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_solaris.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
signal_unix.go runtime: don't try to free OS-created signal stacks 2017-10-11 22:17:30 +00:00
signal_windows.go runtime: change lockedg/lockedm to guintptr/muintptr 2017-09-15 17:29:51 +00:00
sigqueue_plan9.go os/signal: avoid race between Stop and receiving on channel 2017-06-24 00:54:01 +00:00
sigqueue.go os/signal: avoid race between Stop and receiving on channel 2017-06-24 00:54:01 +00:00
sigtab_linux_generic.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
sigtab_linux_mipsx.go runtime: forward crashing signals to late handlers 2017-08-29 07:40:19 +00:00
sizeclasses.go runtime: add "max waste" column to size class table comment 2017-08-10 21:45:01 +00:00
slice.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
softfloat64_test.go
softfloat64.go
softfloat_arm.go runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
sqrt_test.go
sqrt.go
stack_test.go runtime: hide <autogenerated> methods from call stack 2017-09-22 22:17:20 +00:00
stack.go all: unindent some big chunks of code 2017-08-18 06:59:48 +00:00
string_test.go runtime: add slicebytetostring benchmark 2017-03-05 05:14:08 +00:00
string.go runtime: remove getcallerpc argument 2017-09-22 22:17:15 +00:00
stubs2.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
stubs32.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
stubs_android.go
stubs_asm.go all: fix assembly vet issues 2016-08-25 18:52:31 +00:00
stubs_linux.go runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
stubs_nonlinux.go runtime: inform arena placement using sbrk(0) 2017-04-21 14:34:10 +00:00
stubs.go runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
symtab_test.go runtime: allow calling Func.Name on nil pointer 2017-06-30 23:42:03 +00:00
symtab.go cmd/link, runtime: put hasmain bit in moduledata 2017-10-13 01:13:33 +00:00
sys_arm64.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_arm.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_darwin_386.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_darwin_amd64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_darwin_arm64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_darwin_arm.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_dragonfly_amd64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_freebsd_386.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_freebsd_amd64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_freebsd_arm.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_linux_386.s runtime: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +00:00
sys_linux_amd64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_linux_arm64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_linux_arm.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_linux_mips64x.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_linux_mipsx.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_linux_ppc64x.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_linux_s390x.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_mips64x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
sys_nacl_386.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_nacl_amd64p32.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_nacl_arm.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_netbsd_386.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_netbsd_amd64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_netbsd_arm.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_nonppc64x.go
sys_openbsd_386.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_openbsd_amd64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_openbsd_arm.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_plan9_386.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_plan9_amd64.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_plan9_arm.s runtime: make it possible to exit Go-created threads 2017-10-11 17:47:18 +00:00
sys_ppc64x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_s390x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_solaris_amd64.s runtime: call sigtrampgo on solaris 2017-08-29 19:57:32 +00:00
sys_windows_386.s runtime: make time correctly update on Wine 2017-04-25 04:30:06 +00:00
sys_windows_amd64.s runtime: make time correctly update on Wine 2017-04-25 04:30:06 +00:00
sys_x86.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
syscall2_solaris.go
syscall_nacl.h runtime, unicode: use consistent banner for generated code 2017-06-13 05:33:40 +00:00
syscall_solaris.go
syscall_windows_test.go all: correct location of go tool 2017-09-20 03:54:16 +00:00
syscall_windows.go syscall: make Exit call runtime.exit 2017-09-27 01:10:05 +00:00
textflag.h
time.go runtime: return deltimer early if timer.timersBucket is unset 2017-09-15 19:55:10 +00:00
timeasm.go time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
timestub.go time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
tls_arm64.h
tls_arm64.s
tls_arm.s runtime: prevent TLS fetching instructions from being assembled on NaCl/ARM 2017-04-08 22:51:18 +00:00
tls_mips64x.s
tls_mipsx.s runtime: add cgo support for GOARCH=mips{,le} 2016-12-14 23:52:33 +00:00
tls_ppc64x.s
tls_s390x.s
trace.go runtime: clean up loops over allp 2017-09-27 16:29:15 +00:00
traceback.go runtime: hide <autogenerated> methods from call stack 2017-09-22 22:17:20 +00:00
type.go cmd/compile: fix and improve struct field reflect information 2017-09-05 18:09:41 +00:00
typekind.go
unaligned1.go
unaligned2.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
utf8.go runtime: speed up non-ASCII rune decoding 2016-10-17 11:25:22 +00:00
vdso_linux_386.go runtime: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +00:00
vdso_linux_amd64.go runtime: factor amd64 specifics from vdso_linux.go 2017-10-13 02:04:20 +00:00
vdso_linux_test.go runtime: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +00:00
vdso_linux.go runtime: use vDSO on linux/386 to improve time.Now performance 2017-10-13 14:41:04 +00:00
vdso_none.go runtime: os.Executable runtime support for Darwin 2016-11-07 20:18:36 +00:00
vlop_386.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
vlop_arm_test.go
vlop_arm.s runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
vlrt.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
wincallback.go
write_err_android.go runtime: update android time_now call 2017-02-08 02:56:25 +00:00
write_err.go
zcallback_windows.go
zcallback_windows.s