]> Cypherpunks repositories - gostls13.git/commit
runtime: make nlargealloc and largealloc mcache fields
authorMichael Anthony Knyszek <mknyszek@google.com>
Thu, 23 Jul 2020 21:10:29 +0000 (21:10 +0000)
committerMichael Knyszek <mknyszek@google.com>
Mon, 26 Oct 2020 17:26:16 +0000 (17:26 +0000)
commite63716bc76d3264f669843434bc365a78f2141d2
tree184e5e7f15db21f795038bb2f8e6f77bf102856e
parent42019613df2d9b6ad39e8ccf80861e75666025a0
runtime: make nlargealloc and largealloc mcache fields

This change makes nlargealloc and largealloc into mcache fields just
like nlargefree and largefree. These local fields become the new
source-of-truth. This change also moves the accounting for these fields
out of allocSpan (which is an inappropriate place for it -- this
accounting generally happens much closer to the point of allocation) and
into largeAlloc. This move is partially possible now that we can call
gcController.revise at that point.

Furthermore, this change moves largeAlloc into mcache.go and makes it a
method of mcache. While there's a little bit of a mismatch here because
largeAlloc barely interacts with the mcache, it helps solidify the
mcache as the first allocation layer and provides a clear place to
aggregate and manage statistics.

Change-Id: I37b5e648710733bb4c04430b71e96700e438587a
Reviewed-on: https://go-review.googlesource.com/c/go/+/246965
Trust: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
src/runtime/malloc.go
src/runtime/mcache.go
src/runtime/mheap.go
src/runtime/mstats.go