RFR: 8254167 G1: Record regions where evacuation failed to provide targeted iteration [v4]

Thomas Schatzl tschatzl at openjdk.java.net
Thu Sep 2 08:14:31 UTC 2021


On Wed, 1 Sep 2021 03:15:42 GMT, Hamlin Li <mli at openjdk.org> wrote:

>> src/hotspot/share/gc/g1/g1EvacuationFailureRegions.cpp line 51:
>> 
>>> 49:                                              HeapRegionClaimer* _hrclaimer,
>>> 50:                                              uint worker_id) {
>>> 51:   assert_at_safepoint();
>> 
>> As far as I can see this is a verbatim copy of `G1CollectionSet::iterate_part_from` (with some minor simplifications). Not really happy about that, need to think more about how/if we can avoid this.
>
> Agree. I think the reason is that we have mixed iteration itself with the logic in hrm/cset/evac failure regions.
> One option to do might be to extract the iteration logic separately, should we do this in a separate issue?

Either that, or provide a data structure that encapsulates an array that items can be atomically added to including the iteration.

-------------

PR: https://git.openjdk.java.net/jdk/pull/5272



More information about the hotspot-gc-dev mailing list