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