]> Cypherpunks repositories - gostls13.git/commit
runtime: throw from the systemstack in wirep
authorMichael Anthony Knyszek <mknyszek@google.com>
Wed, 22 Nov 2023 16:36:23 +0000 (16:36 +0000)
committerMichael Knyszek <mknyszek@google.com>
Wed, 22 Nov 2023 19:53:59 +0000 (19:53 +0000)
commit37aed23f51edc81c1c5166c65b7652eca609fad8
treedfaf57e5605a77094e62ee3cce88dbc187609383
parent186c4734247594fe7b27389b0233ece940a1d6f0
runtime: throw from the systemstack in wirep

The exitsyscall path, since the introduction of the new execution
tracer, stores a just little bit more data in the exitsyscall stack
frame, causing a build failure from exceeding the nosplit limit with
'-N -l' set on all packages (like Delve does).

One of the paths through which this fails is "throw" from wirep, called
by a callee of exitsyscall. By switching to the systemstack on this
path, we can avoid hitting the nosplit limit, fixing the build. It's
also not totally unreasonable to switch to the systemstack for the
throws in this function, since the function has to be nosplit anyway. It
gives the throw path a bit more wiggle room to dump information than it
otherwise would have.

Fixes #64113.

Change-Id: I56e94e40614a202b8ac2fdc8b8b731493b74e5d0
Reviewed-on: https://go-review.googlesource.com/c/go/+/544535
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/runtime/proc.go