RFR (S) 8178336: Unnecessary SystemDictionary walk for Protection domain liveness

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Tue Apr 11 11:50:12 UTC 2017

Hi Jiangli,  Thank you for looking at this.

On 4/10/17 9:44 PM, Jiangli Zhou wrote:
> Hi Coleen,
> I noticed there are two comments in Dictionary::do_unloading() refer 
> to always_strong_oops_do. They should be updated as well.
> 150   // The placeholder array has been handled in always_strong_oops_do.
This comment makes no sense in this context so I removed it.
> 160       // Non-unloadable classes were handled in always_strong_oops_do

This comment doesn't make sense either in this context, and this whole 
"strongly reachable" idea in this loop is odd.   If !ClassUnloading, all 
of the classes are "strongly reachable" so we shouldn't really bother 
going through this loop at all.  The other "strongly reachable" class is 
the NULL class loader, where this "if" statement does make sense.  I've 
made changes to this area in following work, so I'll remove this comment 
for now.


> Thanks,
> Jiangli
>> On Apr 10, 2017, at 1:18 PM, coleen.phillimore at oracle.com 
>> <mailto:coleen.phillimore at oracle.com> wrote:
>> Summary: remove system dictionary walk and pass strong closure for 
>> !ClassUnloading
>> See bug for more details:
>> open webrev at http://cr.openjdk.java.net/~coleenp/8178336.01/webrev 
>> <http://cr.openjdk.java.net/%7Ecoleenp/8178336.01/webrev>
>> bug link https://bugs.openjdk.java.net/browse/JDK-8178336
>> Tested with nightly tier2-5 tests and jprt (runs all GCs) and 
>> runThese with -XX:-ClassUnloading.
>> Thanks,
>> Coleen

More information about the hotspot-dev mailing list