Permalink
Browse files

runtime: mark all runtime.cputicks implementations NOSPLIT

Fixes #10450

runtime.cputicks is called from runtime.exitsyscall and must not
split the stack. cputicks is implemented in several ways and the
NOSPLIT annotation was missing from a few of these.

Change-Id: I5cbbb4e5888c5d298fe2fef240782d0e49f59af8
Reviewed-on: https://go-review.googlesource.com/8939
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
  • Loading branch information...
1 parent 9402e49 commit e629cd0f88d86867f9fc898c6a75fb17060b83ea @davecheney davecheney committed Apr 15, 2015
Showing with 2 additions and 0 deletions.
  1. +1 −0 src/runtime/os_linux_arm.go
  2. +1 −0 src/runtime/os_linux_arm64.go
@@ -64,6 +64,7 @@ func sysargs(argc int32, argv **byte) {
}
}
+//go:nosplit
func cputicks() int64 {
// Currently cputicks() is used in blocking profiler and to seed fastrand1().
// nanotime() is a poor approximation of CPU ticks that is enough for the profiler.
@@ -11,6 +11,7 @@ const (
var randomNumber uint32
+//go:nosplit
func cputicks() int64 {
// Currently cputicks() is used in blocking profiler and to seed fastrand1().
// nanotime() is a poor approximation of CPU ticks that is enough for the profiler.

0 comments on commit e629cd0

Please sign in to comment.