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