Commit e629cd0f authored by Dave Cheney's avatar Dave Cheney

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/8939Reviewed-by: default avatarAram Hăvărneanu <aram@mgk.ro>
parent 9402e494
...@@ -64,6 +64,7 @@ func sysargs(argc int32, argv **byte) { ...@@ -64,6 +64,7 @@ func sysargs(argc int32, argv **byte) {
} }
} }
//go:nosplit
func cputicks() int64 { func cputicks() int64 {
// Currently cputicks() is used in blocking profiler and to seed fastrand1(). // 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. // nanotime() is a poor approximation of CPU ticks that is enough for the profiler.
......
...@@ -11,6 +11,7 @@ const ( ...@@ -11,6 +11,7 @@ const (
var randomNumber uint32 var randomNumber uint32
//go:nosplit
func cputicks() int64 { func cputicks() int64 {
// Currently cputicks() is used in blocking profiler and to seed fastrand1(). // 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. // nanotime() is a poor approximation of CPU ticks that is enough for the profiler.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment