From 3220bbe1fbbf3d1f46cea9dce5e012d3b54901ee Mon Sep 17 00:00:00 2001 From: Michael Anthony Knyszek Date: Thu, 30 Nov 2023 19:36:46 +0000 Subject: [PATCH] doc: add release notes for allocation headers For #61422. Change-Id: Ia7cb2721e52d9ccd932a49e0c331868eb7749f94 Reviewed-on: https://go-review.googlesource.com/c/go/+/546027 Reviewed-by: Cherry Mui Auto-Submit: Michael Knyszek Reviewed-by: Keith Randall LUCI-TryBot-Result: Go LUCI --- doc/go1.22.html | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/doc/go1.22.html b/doc/go1.22.html index 0d358b8046..9ef372164e 100644 --- a/doc/go1.22.html +++ b/doc/go1.22.html @@ -83,8 +83,26 @@ Do not send CLs removing the interior tags from such phrases.

Runtime

-

- TODO: complete this section, or delete if not needed +

+ The runtime now keeps type-based garbage collection metadata nearer to each + heap object, improving the CPU performance (latency or throughput) of Go programs + by 1—3%. + This change also reduces the memory overhead of the majority Go programs by + approximately 1% by deduplicating redundant metadata. + Some programs may see a smaller improvement because this change adjusts the size + class boundaries of the memory allocator, so some objects may be moved up a size + class. +
+ A consequence of this change is that some objects' addresses that were previously + always aligned to a 16 byte (or higher) boundary will now only be aligned to an 8 + byte boundary. + Some programs that use assembly instructions that require memory addresses to be + more than 8-byte aligned and rely on the memory allocator's previous alignment behavior + may break, but we expect such programs to be rare. + Such programs may be built with GOEXPERIMENT=noallocheaders to revert + to the old metadata layout and restore the previous alignment behavior, but package + owners should update their assembly code to avoid the alignment assumption, as this + workaround will be removed in a future release.

Compiler

@@ -517,10 +535,6 @@ Do not send CLs removing the interior tags from such phrases.

TODO: https://go.dev/issue/61015: change mutex profile to scale contention by number of blocked goroutines

- -

- TODO: https://go.dev/cl/543255: runtime: put allocation headers back at the start the object -

-- 2.50.0