RFR: 8270842: G1: Only young regions need to redirty outside references in remset.
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.
More information about the hotspot-gc-dev