RFR: 8256265: G1: Improve parallelism in regions that failed evacuation [v2]
Thomas Schatzl
tschatzl at openjdk.org
Tue Sep 13 10:59:48 UTC 2022
On Tue, 13 Sep 2022 10:30:35 GMT, Stefan Johansson <sjohanss at openjdk.org> wrote:
>> Thomas Schatzl has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits:
>>
>> - Merge branch 'master' of gh:tschatzl/jdk into 8256265-parallel-evac-failure
>> - disable G1EvacuationFailureALot by default again
>> - Remove unneeded clear metadata phase
>> - Remove debug code
>> - More refactoring
>> - Initial cleanup
>> - some refactoring, fix clearing of opt index in cset
>> - fix test
>> - some cleanup
>> - Cleanup, phase names, fixes
>> - ... and 2 more: https://git.openjdk.org/jdk/compare/37df5f56...2628451d
>
> src/hotspot/share/gc/g1/g1YoungGCPostEvacuateTasks.cpp line 112:
>
>> 110: double worker_cost() const override {
>> 111: assert(_evac_failure_regions->evacuation_failed(), "Should not call this if not executed");
>> 112: return _evac_failure_regions->num_regions_failed_evacuation() * G1PerRetainedRegionThreads;
>
> It feels a bit wrong to have a flag for this, or at least I'm not sure if the number of thread only should be connected to the number of regions only. Instead maybe we should look at the to total size for those regions. Now with the chunking there will be a lot more work items than regions so we should be able to look at size which to me looks like a better metric.
Something like `G1CollectedHeap::get_chunks_per_region() / MAGIC_FACTOR` I guess?
-------------
PR: https://git.openjdk.org/jdk/pull/9980
More information about the hotspot-dev
mailing list