RFR: JDK-8262068: Improve G1 Full GC by skipping compaction for regions with high survival ratio [v8]

Hamlin Li mli at openjdk.java.net
Thu Mar 18 14:21:39 UTC 2021


On Thu, 11 Mar 2021 15:27:39 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

>> Hamlin Li has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   fix bot crash.
>
> src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp line 251:
> 
>> 249:   assert(next_addr == limit, "Should stop the scan at the limit.");
>> 250: }
>> 251: 
> 
> I think all this code is not required/duplicate of the existing code that handles pinned regions (added in https://bugs.openjdk.java.net/browse/JDK-8253600). Please have a look and see if that code can be reused/repurposed.
> 
> I mean, these "skipped regions" should be equivalent to "pinned" regions wrt to required object handling. I admit I haven't actually looked how to do this, but this seems awfully similar with the only difference that skipped regions are determined only after marking and pinned regions sometimes before (full) gc.
> 
> The other handling should be the same. So *at worst* temporarily marking these regions as "pinned" should be sufficient for this functionality to be able to reuse the mechanism.

After further investigation, I think so too.

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

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



More information about the hotspot-gc-dev mailing list