]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: clarify table of arena sizes
authorAustin Clements <austin@google.com>
Thu, 4 Oct 2018 14:46:20 +0000 (10:46 -0400)
committerAustin Clements <austin@google.com>
Thu, 4 Oct 2018 16:14:44 +0000 (16:14 +0000)
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 <bradfitz@golang.org>
src/runtime/malloc.go

index c3fe1169dc8ffbd25417f6b052938ea18ab240f4..791bbe78509affdc01d098c59baa49a05a1b62cb 100644 (file)
@@ -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