RFR: 8282209: G1: Use synchronous concurrent marking for the code cache

Thomas Schatzl tschatzl at openjdk.java.net
Tue Mar 15 15:56:52 UTC 2022

On Tue, 15 Mar 2022 15:33:47 GMT, Leo Korinth <lkorinth at openjdk.org> wrote:

> This fix removes collect_for_codecache(), and uses collect() directly instead. This has the advantage that the g1 code path can be run concurrently using a concurrent mark instead of a full gc.

Changes requested by tschatzl (no project role).

src/hotspot/share/gc/g1/g1FullCollector.cpp line 198:

> 196:     // caches marked between the two concurrent marks will live a bit
> 197:     // longer than needed.
> 198:     CodeCache::start_marking_cycle();

Please add a helper method for this copy&paste in `G1CollectedHeap`. Something like `start_codecache_marking_cycle_if_inactive` (not perfect) or similar.

src/hotspot/share/gc/g1/g1Policy.cpp line 1086:

> 1084:                (cause == GCCause::_wb_breakpoint)) {
> 1085:       // Initiate a user requested concurrent start or run to a breakpoint.
> 1086:       // A concurrent start must be young only GC, so the collector state

The comment needs an update.


PR: https://git.openjdk.java.net/loom/pull/102

More information about the loom-dev mailing list