runtime: correct counters in sweep
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 13 Sep 2018 22:06:16 +0000 (22:06 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 13 Sep 2018 22:06:16 +0000 (22:06 +0000)
commit38fab7369d19fd545eb8510ec198e73949a2c75d
tree39d19743a7f211c9c8b196184a333a57a9b2d6ba
parent84b5706abb8f5dff634e588071ab4fef080cd05e
runtime: correct counters in sweep

    In the sweep code we can sometimes see incorrect counts when
    conservative stack scanning causes us to grey an object that we
    earlier decided could be freed.  We already ignored this check, but
    adjust this case to maintain correct span counts when it happens.
    This gives us slightly more correct numbers in MemStats, and helps
    avoid a rare failure in TestReadMemStats.

    Also fix the free index, and cope with finding a full span when
    allocating a new one.

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

From-SVN: r264294
gcc/go/gofrontend/MERGE
libgo/go/runtime/mcentral.go
libgo/go/runtime/mgcsweep.go