RFR [XS][6/7]: 8197928: Only enqueue deferred cards with references into regions that have a tracked remembered set during GC (original) (raw)

Thomas Schatzl thomas.schatzl at oracle.com
Mon Mar 5 15:25:15 UTC 2018


Hi all,

can I have reviews for this tiny change that optimizes evacuation a little: in particular, when updating the remembered sets (enqueuing cards), we do not need to do this for regions where we do not track the remembered sets.

The suggested implementation is rather primitive, I have not noticed pause time impact on doing so (of course it can lessen the concurrent work later).

An alternative implementation I considered has been to create a per- region map with a single flag that contains the "needs-update/does-not- need-update" information, like the _fast_in_cset_state table.

However creating such a table requires G1 to iterate over all regions before evacuation, and that would be something that needs to be added as G1 does not do that yet.

Another would be to move remembered set state/remembered sets outside of the region, so it can be accessed quickly during GC.

In any case I thought this implementation is better than not doing it, hoping for some input here. :)

CR: https://bugs.openjdk.java.net/browse/JDK-8197928 Webrev: http://cr.openjdk.java.net/~tschatzl/8197928/webrev/ Testing: hs-tier1-5, ...

Thanks, Thomas



More information about the hotspot-gc-dev mailing list