RFR: 8138737: Remove oop_ms_adjust_pointers and use oop_iterate instead
Stefan Johansson
stefan.johansson at oracle.com
Tue Apr 11 13:15:16 UTC 2017
Hi,
Please review this change for:
https://bugs.openjdk.java.net/browse/JDK-8138737
Webrev:
http://cr.openjdk.java.net/~sjohanss/8138737/hotspot.00/
Summary:
For the mark-sweep full GCs we need to handle the adjust-closure special
for InstanceRefKlass. Before this change this was done by having a
special method for all *Klass, oop_ms_adjust_pointers and instead of
calling oop_iterate(AdjustClosure) we called this method. Since it is
only InstanceRefKlass that needs the special handling it would be nice
to be able to use the normal oop_iterate code path and only special case
InstanceRefKlass.
This change removes all use of oop_ms_adjust_pointers and makes it
possible to special handle InstanceRefKlass by defining a special
ReferenceIterationMode for the closure in need of the special treatment.
This technique can also be used to remove
ExtendedOopClosure::apply_to_weak_ref_discovered_field (descirbed in
JDK-8138888) and I plan to send out a review for this once this review
is done. The fix for that issue is basically adding one more
ReferenceIterationMode and define what it should do.
Testing:
- Locally running a lot of Full GCs
- RBT hs tier 1-3
Thanks,
Stefan
More information about the hotspot-gc-dev
mailing list