RFR [XS][6/7]: 8197928: Only enqueue deferred cards with references into regions that have a tracked remembered set during GC
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