]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: don't run runq tests on the system stack
authorAustin Clements <austin@google.com>
Mon, 11 May 2015 22:53:49 +0000 (18:53 -0400)
committerAustin Clements <austin@google.com>
Tue, 12 May 2015 19:58:08 +0000 (19:58 +0000)
Running these tests on the system stack is problematic because they
allocate Ps, which are large enough to overflow the system stack if
they are stack-allocated. It used to be necessary to run these tests
on the system stack because they were written in C, but since this is
no longer the case, we can fix this problem by simply not running the
tests on the system stack.

This also means we no longer need the hack in one of these tests that
forces the allocated Ps to escape to the heap, so eliminate that as
well.

Change-Id: I9064f5f8fd7f7b446ff39a22a70b172cfcb2dc57
Reviewed-on: https://go-review.googlesource.com/9923
Reviewed-by: Rick Hudson <rlh@golang.org>
Run-TryBot: Austin Clements <austin@google.com>

src/runtime/export_test.go
src/runtime/proc1.go

index 817622abd085ab6d390c584f2123d6be0bcdec76..2f8df78e13257ac93456cfb72aa04c4c265330d5 100644 (file)
@@ -83,10 +83,10 @@ func GCMask(x interface{}) (ret []byte) {
 }
 
 func RunSchedLocalQueueTest() {
-       systemstack(testSchedLocalQueue)
+       testSchedLocalQueue()
 }
 func RunSchedLocalQueueStealTest() {
-       systemstack(testSchedLocalQueueSteal)
+       testSchedLocalQueueSteal()
 }
 
 var StringHash = stringHash
index 01c46a85ec87cef5449474de3c6d00e23fc8f151..2fe15519525a18d680daa88f9acf38f51c00eb49 100644 (file)
@@ -3539,13 +3539,9 @@ func testSchedLocalQueue() {
        }
 }
 
-var pSink *p
-
 func testSchedLocalQueueSteal() {
        p1 := new(p)
        p2 := new(p)
-       pSink = p1 // Force to heap, too large to allocate on system stack ("G0 stack")
-       pSink = p2 // Force to heap, too large to allocate on system stack ("G0 stack")
        gs := make([]g, len(p1.runq))
        for i := 0; i < len(p1.runq); i++ {
                for j := 0; j < i; j++ {