Skip to content

Commit 3220bbe

Browse files
committed
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 <[email protected]> Auto-Submit: Michael Knyszek <[email protected]> Reviewed-by: Keith Randall <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]>
1 parent cf3d253 commit 3220bbe

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

doc/go1.22.html

+20-6
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,26 @@ <h3 id="vet">Vet</h3>
8383

8484
<h2 id="runtime">Runtime</h2>
8585

86-
<p>
87-
TODO: complete this section, or delete if not needed
86+
<p><!-- CL 543255 -->
87+
The runtime now keeps type-based garbage collection metadata nearer to each
88+
heap object, improving the CPU performance (latency or throughput) of Go programs
89+
by 1&mdash;3%.
90+
This change also reduces the memory overhead of the majority Go programs by
91+
approximately 1% by deduplicating redundant metadata.
92+
Some programs may see a smaller improvement because this change adjusts the size
93+
class boundaries of the memory allocator, so some objects may be moved up a size
94+
class.
95+
<br />
96+
A consequence of this change is that some objects' addresses that were previously
97+
always aligned to a 16 byte (or higher) boundary will now only be aligned to an 8
98+
byte boundary.
99+
Some programs that use assembly instructions that require memory addresses to be
100+
more than 8-byte aligned and rely on the memory allocator's previous alignment behavior
101+
may break, but we expect such programs to be rare.
102+
Such programs may be built with <code>GOEXPERIMENT=noallocheaders</code> to revert
103+
to the old metadata layout and restore the previous alignment behavior, but package
104+
owners should update their assembly code to avoid the alignment assumption, as this
105+
workaround will be removed in a future release.
88106
</p>
89107

90108
<h2 id="compiler">Compiler</h2>
@@ -517,10 +535,6 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
517535
<p><!-- https://go.dev/issue/61015 -->
518536
TODO: <a href="https://go.dev/issue/61015">https://go.dev/issue/61015</a>: change mutex profile to scale contention by number of blocked goroutines
519537
</p>
520-
521-
<p><!-- CL 543255 -->
522-
TODO: <a href="https://go.dev/cl/543255">https://go.dev/cl/543255</a>: runtime: put allocation headers back at the start the object
523-
</p>
524538
</dd>
525539
</dl><!-- runtime -->
526540

0 commit comments

Comments
 (0)