From: Dmitriy Vyukov Date: Wed, 12 Feb 2014 20:03:27 +0000 (+0400) Subject: runtime: temporary disable concurrent GC sweep X-Git-Tag: go1.3beta1~749 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3cac829ff403e229729434a33cb59ae6dfc23209;p=gostls13.git runtime: temporary disable concurrent GC sweep We see failures on builders, e.g.: http://build.golang.org/log/70bb28cd6bcf8c4f49810a011bb4337a61977bf4 LGTM=rsc, dave R=rsc, dave CC=golang-codereviews https://golang.org/cl/62360043 --- diff --git a/src/pkg/runtime/mgc0.c b/src/pkg/runtime/mgc0.c index 02872759b1..a6dc1d58ae 100644 --- a/src/pkg/runtime/mgc0.c +++ b/src/pkg/runtime/mgc0.c @@ -2383,14 +2383,21 @@ gc(struct gc_args *args) sweep.nspan = runtime·mheap.nspan; sweep.spanidx = 0; - runtime·lock(&gclock); - if(sweep.g == nil) - sweep.g = runtime·newproc1(&bgsweepv, nil, 0, 0, runtime·gc); - else if(sweep.parked) { - sweep.parked = false; - runtime·ready(sweep.g); + // Temporary disable concurrent sweep, because we see failures on builders. + if(false) { + runtime·lock(&gclock); + if(sweep.g == nil) + sweep.g = runtime·newproc1(&bgsweepv, nil, 0, 0, runtime·gc); + else if(sweep.parked) { + sweep.parked = false; + runtime·ready(sweep.g); + } + runtime·unlock(&gclock); + } else { + // Sweep all spans eagerly. + while(runtime·sweepone() != -1) + gcstats.npausesweep++; } - runtime·unlock(&gclock); runtime·MProf_GC(); }