mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: remove mcache field from m
Having an mcache field in both m and p is confusing, so remove it from m. Always use mcache field from p. Use new variable mcache0 during bootstrap. Change-Id: If2cba9f8bb131d911d512b61fd883a86cf62cc98 Reviewed-on: https://go-review.googlesource.com/c/go/+/205239 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
parent
7802b55176
commit
3093959ee1
7 changed files with 54 additions and 43 deletions
|
|
@ -357,16 +357,16 @@ func stackalloc(n uint32) stack {
|
|||
n2 >>= 1
|
||||
}
|
||||
var x gclinkptr
|
||||
c := thisg.m.mcache
|
||||
if stackNoCache != 0 || c == nil || thisg.m.preemptoff != "" {
|
||||
// c == nil can happen in the guts of exitsyscall or
|
||||
// procresize. Just get a stack from the global pool.
|
||||
if stackNoCache != 0 || thisg.m.p == 0 || thisg.m.preemptoff != "" {
|
||||
// thisg.m.p == 0 can happen in the guts of exitsyscall
|
||||
// or procresize. Just get a stack from the global pool.
|
||||
// Also don't touch stackcache during gc
|
||||
// as it's flushed concurrently.
|
||||
lock(&stackpool[order].item.mu)
|
||||
x = stackpoolalloc(order)
|
||||
unlock(&stackpool[order].item.mu)
|
||||
} else {
|
||||
c := thisg.m.p.ptr().mcache
|
||||
x = c.stackcache[order].list
|
||||
if x.ptr() == nil {
|
||||
stackcacherefill(c, order)
|
||||
|
|
@ -452,12 +452,12 @@ func stackfree(stk stack) {
|
|||
n2 >>= 1
|
||||
}
|
||||
x := gclinkptr(v)
|
||||
c := gp.m.mcache
|
||||
if stackNoCache != 0 || c == nil || gp.m.preemptoff != "" {
|
||||
if stackNoCache != 0 || gp.m.p == 0 || gp.m.preemptoff != "" {
|
||||
lock(&stackpool[order].item.mu)
|
||||
stackpoolfree(x, order)
|
||||
unlock(&stackpool[order].item.mu)
|
||||
} else {
|
||||
c := gp.m.p.ptr().mcache
|
||||
if c.stackcache[order].size >= _StackCacheSize {
|
||||
stackcacherelease(c, order)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue