[go] runtime: lock M for the entire fast path

0 views
Skip to first unread message

Gopher Robot (Gerrit)

unread,
Jun 25, 2026, 3:45:28 PM (2 days ago) Jun 25
to Michael Pratt, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Michael Matloob, Michael Matloob, golang...@luci-project-accounts.iam.gserviceaccount.com, t hepudds, golang-co...@googlegroups.com

Gopher Robot submitted the change

Change information

Commit message:
runtime: lock M for the entire fast path

In size-specialized malloc, the fast path assumes that GC marking is not
occurring. Thus once we decide to take the fast path, we must guarantee
that the GC cannot start.

No such guarantee exists today because the forceSlowPath check occurs
outside of any locking.

This may not have any impact on normal builds because we don't async
preempt the runtime, and I'm not sure there are any preemptible calls
before acquirem. But when inlining is disabled, there are preemptible
calls which could thus allow a GC cycle to start.

Fix this by calling acquirem prior to the forceSlowPath check and
holding it through inlinedStub.

Note that the slow path takes acquirem a bit later because we must not
acquirem before deductAssistCredit, as that function won't run any
assists when locked.

For #79667.
For #79699.
Change-Id: Ief7220435b6a5fd70d721f58cbeac86e6a6a6964
Auto-Submit: Michael Pratt <mpr...@google.com>
Reviewed-by: Michael Matloob <mat...@google.com>
Reviewed-by: Michael Matloob <mat...@golang.org>
Files:
  • M src/runtime/malloc_generated.go
  • M src/runtime/malloc_stubs.go
Change size: M
Delta: 2 files changed, 105 insertions(+), 24 deletions(-)
Branch: refs/heads/master
Submit Requirements:
Open in Gerrit
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: merged
Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: Ief7220435b6a5fd70d721f58cbeac86e6a6a6964
Gerrit-Change-Number: 794121
Gerrit-PatchSet: 2
Gerrit-Owner: Michael Pratt <mpr...@google.com>
Gerrit-Reviewer: Gopher Robot <go...@golang.org>
Gerrit-Reviewer: Michael Matloob <mat...@golang.org>
Gerrit-Reviewer: Michael Matloob <mat...@google.com>
Gerrit-Reviewer: Michael Pratt <mpr...@google.com>
Gerrit-CC: t hepudds <thepud...@gmail.com>
open
diffy
satisfied_requirement
Reply all
Reply to author
Forward
0 new messages