From: Michael Anthony Knyszek Date: Thu, 30 Nov 2023 19:36:46 +0000 (+0000) Subject: doc: add release notes for allocation headers X-Git-Tag: go1.22rc1~118 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3220bbe1fbbf3d1f46cea9dce5e012d3b54901ee;p=gostls13.git 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 --- 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 -