RFR: Mixed evacuation [v2]
Kelvin Nilsen
kdnilsen at openjdk.java.net
Mon Apr 19 21:19:31 UTC 2021
On Mon, 12 Apr 2021 19:53:29 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
>> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Chasing bug during prepare_for_old_collection
>>
>> One bug fix, a few cosmetic improvements, a change in loop structure to possibly avoid a gcc
>> optimization error.
>
> src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.hpp line 80:
>
>> 78: // For expediency, we'll have a single class that is a "union" of
>> 79: // necessary functionality.
>> 80:
>
> Hmmhmm, this seems a suboptimal design. My intuition would have been to not have each heuristic need to know about any old heuristic, but keep them separate, and compose functionality elsewhere, but I leave that to you. The way it looks now it may end up recursive (young-heuristics->old-heuristics->old-heuristics->...-> etc)
This has been addressed with recently committed refactoring of ShenandoahOldHeuristics and subclasses.
> src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp line 518:
>
>> 516: // precisely where the regulator is allowed to cancel a GC.
>> 517: ShenandoahOldGC gc(generation, _allow_old_preemption);
>> 518:
>
> Lone whitespace change here.
To be fixed in next commit
> test/hotspot/jtreg/gc/shenandoah/generational/TestConcurrentEvac.java line 35:
>
>> 33: * of old-gen GC passes is very simplistic. A further shortcoming of the
>> 34: * Generational Shenandoah as of introduction of this test is that it does
>> 35: * currently support full GC. If garbage collection falls behind mutator
>
> You probably meant to say that it "does currently *not* support full GC"
You are right. Will be corrected in next commit.
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/29
More information about the shenandoah-dev
mailing list