From: Austin Clements Date: Thu, 4 Oct 2018 14:46:20 +0000 (-0400) Subject: runtime: clarify table of arena sizes X-Git-Tag: go1.12beta1~894 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4c1c839a3d2270d846f5a6d1cd1287e8560f0265;p=gostls13.git runtime: clarify table of arena sizes Currently the table of arena sizes mixes the number of entries in the L1 with the size of the L2. While the size of the L2 is important, this makes it hard to see what's actually going on because there's an implicit factor of sys.PtrSize. This changes the L2 column to say both the number of entries and the size that results in. This should hopefully make the relations between the columns of the table clearer, since they can now be plugged directly into the given formula. Change-Id: Ie677adaef763b893a2f620bd4fc3b8db314b3a1e Reviewed-on: https://go-review.googlesource.com/c/139697 Reviewed-by: Brad Fitzpatrick --- diff --git a/src/runtime/malloc.go b/src/runtime/malloc.go index c3fe1169dc..791bbe7850 100644 --- a/src/runtime/malloc.go +++ b/src/runtime/malloc.go @@ -216,16 +216,16 @@ const ( // The number of bits in a heap address, the size of heap // arenas, and the L1 and L2 arena map sizes are related by // - // (1 << addrBits) = arenaBytes * L1entries * L2entries + // (1 << addr bits) = arena size * L1 entries * L2 entries // // Currently, we balance these as follows: // - // Platform Addr bits Arena size L1 entries L2 size - // -------------- --------- ---------- ---------- ------- - // */64-bit 48 64MB 1 32MB - // windows/64-bit 48 4MB 64 8MB - // */32-bit 32 4MB 1 4KB - // */mips(le) 31 4MB 1 2KB + // Platform Addr bits Arena size L1 entries L2 entries + // -------------- --------- ---------- ---------- ----------- + // */64-bit 48 64MB 1 4M (32MB) + // windows/64-bit 48 4MB 64 1M (8MB) + // */32-bit 32 4MB 1 1024 (4KB) + // */mips(le) 31 4MB 1 512 (2KB) // heapArenaBytes is the size of a heap arena. The heap // consists of mappings of size heapArenaBytes, aligned to