RFR: JDK-8226757: Shenandoah: Make Traversal a separate mode
Aleksey Shipilev
shade at redhat.com
Thu Jul 4 08:38:46 UTC 2019
On 7/3/19 6:16 PM, Roman Kennke wrote:
>> GCMode default_mode = heap->is_traversal_mode() ?
>> concurrent_traversal : concurrent_normal;
>> GCCause::Cause default_cause = heap->is_traversal_mode() ?
>> GCCause::_shenandoah_traversal_gc : GCCause::_shenandoah_concurrent_gc;
>
> Done.
Note heap->is_traversal_mode() in the second statement. There is no need to introduce superficial
dependency between two statements by using default_mode in the second one.
>> *) shenandoah_globals.hpp still mention "passive" is heuristics, not mode. Happens in both
>> ShenandoahGCHeuristics and ShenandoahGCMode option descriptions.
>
> Fixed.
Not accurate, because we would mostly run degen GC in this mode:
78 " *) passive - do not start concurrent GC, wait for Full GC; ") \
Let's say "passive - disable concurrent GC, do stop-the-world GC".
>> ...by the way, shouldn't "traversal" mode have "traversal" heuristics here? I see
>> shenandoahTraversalMode equate "adaptive" to ShenandoahTraversalHeuristics, which I believe is
>> confusing...
>
> Well, the default traversal heuristics mimics the normal adaptive
> heuristics as much as possible, and it is also adaptive. IMO it makes
> sense to call it adaptive heuristics. I am about to also add an
> aggressive heuristic to traversal mode. I'd rather keep it.
Right, make sense.
> Full:
> http://cr.openjdk.java.net/~rkennke/JDK-8226757/webrev.03/
Looks good, modulo changes above.
--
Thanks,
-Aleksey
More information about the hotspot-gc-dev
mailing list