diff options
| author | Michael Anthony Knyszek <mknyszek@google.com> | 2025-11-14 17:41:58 +0000 |
|---|---|---|
| committer | Michael Knyszek <mknyszek@google.com> | 2025-11-14 15:13:00 -0800 |
| commit | d55ecea9e5a5a4cfba30c6f35d4841ae66e05ccd (patch) | |
| tree | b4c0d3dba5c11671d8d0958901871e523885fde9 /api | |
| parent | 410ef44f0054a9ab20a901895edb7db5a4d0aad7 (diff) | |
| download | go-d55ecea9e5a5a4cfba30c6f35d4841ae66e05ccd.tar.xz | |
runtime: usleep before stealing runnext only if not in syscall
In the scheduler's steal path, we usleep(3) before stealing a _Prunning
P's runnext slot. Before CL 646198, we would not call usleep(3) if the P
was in _Psyscall. After CL 646198, Ps with Gs in syscalls stay in
_Prunning until stolen, meaning we might unnecessarily usleep(3) where
we didn't before. This probably isn't a huge deal in most cases, but can
cause some apparent slowdowns in microbenchmarks that frequently take
the steal path while there are syscalling goroutines.
Change-Id: I5bf3df10fe61cf8d7f0e9fe9522102de66faf344
Reviewed-on: https://go-review.googlesource.com/c/go/+/720441
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'api')
0 files changed, 0 insertions, 0 deletions
