aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/runtime2.go
diff options
context:
space:
mode:
authorAndy Pan <panjf2000@gmail.com>2020-11-10 21:02:18 +0800
committerKeith Randall <khr@golang.org>2021-02-23 16:02:56 +0000
commit55d7dcc3cd4b3ee6bca0ab7101866d785776ff51 (patch)
tree6fea51642a39340177a807e87324a3b5e6603c04 /src/runtime/runtime2.go
parentab331c0254d4462dde6640ec9b00fecc828f4162 (diff)
downloadgo-55d7dcc3cd4b3ee6bca0ab7101866d785776ff51.tar.gz
go-55d7dcc3cd4b3ee6bca0ab7101866d785776ff51.zip
runtime: optimize the memory padding in p struct
Since allocation for p struct will be rounded up to the next size class, the two relevant adjacent classes for this case are 9728 bytes and 10240 bytes. A p is currently 10072 bytes, so it gets rounded up to 10240 bytes when we allocate one, So the pad in p struct is unnecessary, eliminate it and add comments for warning the false sharing. Change-Id: Iae8b32931d1beddbfff1f58044d8401703da6407 Reviewed-on: https://go-review.googlesource.com/c/go/+/268759 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Trust: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/runtime2.go')
-rw-r--r--src/runtime/runtime2.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/runtime/runtime2.go b/src/runtime/runtime2.go
index 5bd283d12f..f5318e6f11 100644
--- a/src/runtime/runtime2.go
+++ b/src/runtime/runtime2.go
@@ -5,7 +5,6 @@
package runtime
import (
- "internal/cpu"
"runtime/internal/atomic"
"runtime/internal/sys"
"unsafe"
@@ -713,7 +712,8 @@ type p struct {
// scheduler ASAP (regardless of what G is running on it).
preempt bool
- pad cpu.CacheLinePad
+ // Padding is no longer needed. False sharing is now not a worry because p is large enough
+ // that its size class is an integer multiple of the cache line size (for any of our architectures).
}
type schedt struct {