RFR: 8270842: G1: Only young regions need to redirty outside references in remset.

Thomas Schatzl tschatzl at openjdk.java.net
Fri Jul 23 12:51:07 UTC 2021

On Wed, 21 Jul 2021 02:13:38 GMT, Hamlin Li <mli at openjdk.org> wrote:

> For evac failure objects in non-young regions (old) of cset, the outside reference remset already recorded in the dirty queue, we only needs to do it for obj in young regions

Please have a look at `G1ParScanThreadState::remember_reference_into_optional_region` - G1 collects those references in an extra data structure when scanning an object after it has been copied in `G1ParScanThreadState` as it encounters those, and uses them as appropriate during optional evacuation.

Fwiw, I did not do any performance evaluation of that idea to completely avoid scanning during evacuation failure. I do not think it has significant impact though.


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

More information about the hotspot-gc-dev mailing list