]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: remove GC start up/shutdown workaround in mallocgc
authorAustin Clements <austin@google.com>
Tue, 27 Oct 2015 21:34:11 +0000 (17:34 -0400)
committerAustin Clements <austin@google.com>
Thu, 5 Nov 2015 21:24:01 +0000 (21:24 +0000)
Currently mallocgc detects if the GC is in a state where it can't
assist, but also can't allocate uncontrolled and yields to help out
the GC. This was a workaround for periods when we were trying to
schedule the GC coordinator. It is no longer necessary because there
is no GC coordinator and malloc can always assist with any GC
transitions that are necessary.

Updates #11970.

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

src/runtime/malloc.go

index 81c3bdf5ce997f89176b703b071b800ac6121414..365422a87a0ec73d8af9a66c97fb43e89bbf7e1e 100644 (file)
@@ -736,17 +736,6 @@ func mallocgc(size uintptr, typ *_type, flags uint32) unsafe.Pointer {
 
        if shouldhelpgc && gcShouldStart(false) {
                gcStart(gcBackgroundMode, false)
-       } else if shouldhelpgc && bggc.working != 0 && gcBlackenEnabled == 0 {
-               // The GC shutting down, so we can't
-               // assist, but we also can't allocate unabated. Slow
-               // down this G's allocation and help the GC stay
-               // scheduled by yielding.
-               //
-               // TODO: This is unused. Remove.
-               gp := getg()
-               if gp != gp.m.g0 && gp.m.locks == 0 && gp.m.preemptoff == "" {
-                       Gosched()
-               }
        }
 
        return x