runtime: Ignore stack sizes when deciding when to GC.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 15 Sep 2015 12:32:31 +0000 (12:32 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 15 Sep 2015 12:32:31 +0000 (12:32 +0000)
    This restores https://golang.org/cl/6081043 which was lost accidentally
    when updating a new version of libgo in https://golang.org/cl/22440043 .

    Reviewed-on: https://go-review.googlesource.com/14569

From-SVN: r227784

gcc/go/gofrontend/MERGE
libgo/runtime/mgc0.c

index 470981c9fc57e5dadd96f3acd2e1ac2f05960e1d..afb257e911c7ddd60952ce36b342e8dfd6272c08 100644 (file)
@@ -1,4 +1,4 @@
-ae60deadd72b3b29df98cee61deed68f251f0122
+23392287e9a26956977987fe95f337c5be4d6417
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 662dd875762706b067fbc3571fba05e4a042ab0a..9d8c025e7c29030cc16ecc6ea17e997b949f6e4d 100644 (file)
@@ -2280,7 +2280,7 @@ gc(struct gc_args *args)
        heap0 = mstats.next_gc*100/(gcpercent+100);
        // conservatively set next_gc to high value assuming that everything is live
        // concurrent/lazy sweep will reduce this number while discovering new garbage
-       mstats.next_gc = mstats.heap_alloc+mstats.heap_alloc*gcpercent/100;
+       mstats.next_gc = mstats.heap_alloc+(mstats.heap_alloc-runtime_stacks_sys)*gcpercent/100;
 
        t4 = runtime_nanotime();
        mstats.last_gc = runtime_unixnanotime();  // must be Unix time to make sense to user