• Austin Clements's avatar
    runtime: generalize GC trigger · 29be3f19
    Austin Clements authored
    Currently the GC triggering condition is an awkward combination of the
    gcMode (whether or not it's gcBackgroundMode) and a boolean
    "forceTrigger" flag.
    
    Replace this with a new gcTrigger type that represents the range of
    transition predicates we need. This has several advantages:
    
    1. We can remove the awkward logic that affects the trigger behavior
       based on the gcMode. Now gcMode purely controls whether to run a
       STW GC or not and the gcTrigger controls whether this is a forced
       GC that cannot be consolidated with other GC cycles.
    
    2. We can lift the time-based triggering logic in sysmon to just
       another type of GC trigger and move the logic to the trigger test.
    
    3. This sets us up to have a cycle count-based trigger, which we'll
       use to make runtime.GC trigger concurrent GC with the desired
       consolidation properties.
    
    For #18216.
    
    Change-Id: If9cd49349579a548800f5022ae47b8128004bbfc
    Reviewed-on: https://go-review.googlesource.com/37516
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
    29be3f19
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...