]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: make the test addresses for pageAlloc smaller on 32-bit
authorMichael Anthony Knyszek <mknyszek@google.com>
Thu, 7 Nov 2019 22:42:38 +0000 (22:42 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sun, 10 Nov 2019 04:23:22 +0000 (04:23 +0000)
This change makes the test addresses start at 1 GiB instead of 2 GiB to
support mips and mipsle, which only have 31-bit address spaces.

It also changes some tests to use smaller offsets for the chunk index to
avoid jumping too far ahead in the address space to support 31-bit
address spaces. The tests don't require such large jumps for what
they're testing anyway.

Updates #35112.
Fixes #35440.

Change-Id: Ic68ff2b0a1f10ef37ac00d4bb5b910ddcdc76f2e
Reviewed-on: https://go-review.googlesource.com/c/go/+/205938
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/runtime/export_test.go
src/runtime/mpagealloc_test.go

index ef977b302e15983c1168f996a9050588da1b261a..1db465673c27a7b5fc8c1583d55ef993c457272b 100644 (file)
@@ -830,7 +830,10 @@ func FreePageAlloc(pp *PageAlloc) {
 // BaseChunkIdx is a convenient chunkIdx value which works on both
 // 64 bit and 32 bit platforms, allowing the tests to share code
 // between the two.
-var BaseChunkIdx = ChunkIdx(chunkIndex((0xc000*pageAlloc64Bit + 0x200*pageAlloc32Bit) * pallocChunkBytes))
+//
+// This should not be higher than 0x100*pallocChunkBytes to support
+// mips and mipsle, which only have 31-bit address spaces.
+var BaseChunkIdx = ChunkIdx(chunkIndex((0xc000*pageAlloc64Bit + 0x100*pageAlloc32Bit) * pallocChunkBytes))
 
 // PageBase returns an address given a chunk index and a page index
 // relative to that chunk.
index 454fafb501150f07f3800bef89ac5b674f12d585..9034f63064da44229be640c2989d5234751c95cc 100644 (file)
@@ -279,24 +279,24 @@ func TestPageAllocAlloc(t *testing.T) {
                },
                "NotContiguousPallocChunkPages*2": {
                        before: map[ChunkIdx][]BitRange{
-                               BaseChunkIdx:         {},
-                               BaseChunkIdx + 0x100: {},
-                               BaseChunkIdx + 0x101: {},
+                               BaseChunkIdx:        {},
+                               BaseChunkIdx + 0x40: {},
+                               BaseChunkIdx + 0x41: {},
                        },
                        scav: map[ChunkIdx][]BitRange{
-                               BaseChunkIdx:         {{0, PallocChunkPages}},
-                               BaseChunkIdx + 0x100: {},
-                               BaseChunkIdx + 0x101: {},
+                               BaseChunkIdx:        {{0, PallocChunkPages}},
+                               BaseChunkIdx + 0x40: {},
+                               BaseChunkIdx + 0x41: {},
                        },
                        hits: []hit{
-                               {PallocChunkPages * 2, PageBase(BaseChunkIdx+0x100, 0), 0},
+                               {PallocChunkPages * 2, PageBase(BaseChunkIdx+0x40, 0), 0},
                                {21, PageBase(BaseChunkIdx, 0), 21 * PageSize},
                                {1, PageBase(BaseChunkIdx, 21), PageSize},
                        },
                        after: map[ChunkIdx][]BitRange{
-                               BaseChunkIdx:         {{0, 22}},
-                               BaseChunkIdx + 0x100: {{0, PallocChunkPages}},
-                               BaseChunkIdx + 0x101: {{0, PallocChunkPages}},
+                               BaseChunkIdx:        {{0, 22}},
+                               BaseChunkIdx + 0x40: {{0, PallocChunkPages}},
+                               BaseChunkIdx + 0x41: {{0, PallocChunkPages}},
                        },
                },
                "StraddlePallocChunkPages*2": {