From 3cac829ff403e229729434a33cb59ae6dfc23209 Mon Sep 17 00:00:00 2001 From: Dmitriy Vyukov Date: Thu, 13 Feb 2014 00:03:27 +0400 Subject: [PATCH] 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 --- src/pkg/runtime/mgc0.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) 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(); } -- 2.48.1