]> Cypherpunks repositories - gostls13.git/commit
runtime: support runtime.freegc in size-specialized mallocs for noscan objects
authorthepudds <thepudds1460@gmail.com>
Sun, 9 Nov 2025 14:24:22 +0000 (09:24 -0500)
committert hepudds <thepudds1460@gmail.com>
Fri, 14 Nov 2025 22:23:16 +0000 (14:23 -0800)
commit50128a21541e3fd712ad717a223aaa109cb86d43
tree984e45288bdebd7dd2533a8ab62c4154cec244cf
parentc3708350a417a3149bf9191878c3ad945063d439
runtime: support runtime.freegc in size-specialized mallocs for noscan objects

This CL is part of a set of CLs that attempt to reduce how much work the
GC must do. See the design in https://go.dev/design/74299-runtime-freegc

This CL updates the smallNoScanStub stub in malloc_stubs.go to reuse
heap objects that have been freed by runtime.freegc calls, and generates
the corresponding size-specialized code in malloc_generated.go.

This CL only adds support in the specialized mallocs for noscan
heap objects (objects without pointers). A later CL handles objects
with pointers.

While we are here, we leave a couple of breadcrumbs in mkmalloc.go on
how to do the generation.

Updates #74299

Change-Id: I2657622601a27211554ee862fce057e101767a70
Reviewed-on: https://go-review.googlesource.com/c/go/+/715761
Reviewed-by: Junyang Shao <shaojunyang@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/runtime/_mkmalloc/mkmalloc.go
src/runtime/malloc.go
src/runtime/malloc_generated.go
src/runtime/malloc_stubs.go
src/runtime/malloc_test.go