RFR: 8256265: G1: Improve parallelism in regions that failed evacuation [v3]

Albert Mingkun Yang ayang at openjdk.org
Tue Sep 13 11:57:11 UTC 2022


On Tue, 13 Sep 2022 11:13:47 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

>> Hi all,
>> 
>>   can I have reviews on this change that makes the evacuation failure remove forwards phase split the work across threads within regions?
>> 
>> This work is a continuation of PR#7047 from @Hamlin-Li and latest improvements from @albertnetymk in that thread. This is reflected in the first commit, I added a fair amount of changes to fix bugs and streamline the code.  
>> 
>> Testing: tier1-8 with G1EvacuationFailureALot enabled, tier1-5 as is
>
> Thomas Schatzl has updated the pull request incrementally with one additional commit since the last revision:
> 
>   sjohanss, albert review

src/hotspot/share/gc/g1/g1EvacFailureRegions.inline.hpp line 41:

> 39:     HeapRegion* hr = g1h->region_at(region_idx);
> 40:     G1CollectorState* state = g1h->collector_state();
> 41:     hr->note_self_forwarding_removal_start(state->in_concurrent_start_gc());

It's unclear to me why it's called *here* -- we are still in the evacuation phase, self-forwarding-removal occurs in post-evacuation, isn't it?

src/hotspot/share/gc/g1/g1YoungGCPostEvacuateTasks.cpp line 140:

> 138:     add_parallel_task(restore_retained_regions_task);
> 139: 
> 140:     restore_retained_regions_task->initialize();

Could this be merged in its constructor?

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

PR: https://git.openjdk.org/jdk/pull/9980


More information about the hotspot-dev mailing list