From 3968a5bca4fc0cdb4e2bb9fd6169deafdafc420d Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 4 Mar 2025 10:31:02 -0500 Subject: runtime: handle m0 padding better The SpinbitMutex experiment requires m structs other than m0 to be allocated in 2048-byte size class, by adding padding. Do the calculation more explicitly, to avoid future CLs like CL 653335. Change-Id: I83ae1e86ef3711ab65441f4e487f94b9e1429029 Reviewed-on: https://go-review.googlesource.com/c/go/+/654595 Reviewed-by: Rhys Hiltner Reviewed-by: Michael Knyszek LUCI-TryBot-Result: Go LUCI Auto-Submit: Michael Knyszek --- src/runtime/lock_spinbit.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/runtime/lock_spinbit.go') diff --git a/src/runtime/lock_spinbit.go b/src/runtime/lock_spinbit.go index 7e84f3e1c2..ba5268abdd 100644 --- a/src/runtime/lock_spinbit.go +++ b/src/runtime/lock_spinbit.go @@ -90,7 +90,7 @@ type mWaitList struct { // lockVerifyMSize confirms that we can recreate the low bits of the M pointer. func lockVerifyMSize() { - size := roundupsize(unsafe.Sizeof(m{}), false) + mallocHeaderSize + size := roundupsize(unsafe.Sizeof(mPadded{}), false) + mallocHeaderSize if size&mutexMMask != 0 { print("M structure uses sizeclass ", size, "/", hex(size), " bytes; ", "incompatible with mutex flag mask ", hex(mutexMMask), "\n") -- cgit v1.3