runtime: allow preemption in fast syscall return

Let a fast syscall return be a preemption point.  This helps with
    tight loops that make system calls, as in BenchmarkSyscallExcessWork.
    
    Reviewed-on: https://go-review.googlesource.com/94895

From-SVN: r257848
This commit is contained in:
Ian Lance Taylor 2018-02-20 15:30:31 +00:00
parent 9bd958c5f3
commit 911cef2e3b
2 changed files with 8 additions and 1 deletions

View File

@ -1,4 +1,4 @@
459a8a94e04a19bde7173ef7cf2db369c2e62e2d
c6e0970f75508e209a10a7db5164d6ea3f9b28bf
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -2794,6 +2794,13 @@ func exitsyscall(dummy int32) {
exitsyscallclear(_g_)
_g_.m.locks--
_g_.throwsplit = false
// Check preemption, since unlike gc we don't check on
// every call.
if getg().preempt {
checkPreempt()
}
return
}