RFR (S) 8178336: Unnecessary SystemDictionary walk for Protection domain liveness
Ioi Lam
ioi.lam at oracle.com
Tue Apr 11 06:35:13 UTC 2017
Hi Coleen,
Thanks for doing this clean up. I was guiltily of writing the original
code :-(
A few questions:
Why is this block of code moved and the comments dropped?
328 void Dictionary::oops_do(OopClosure* f) {
329 // Only the protection domain oops contain references into the
heap. Iterate
330 // over all of them.
331 _pd_cache_table->oops_do(f);
332 }
333
It would be better to make the changes in-place.
Also, have you validated that (either with an explicit test, or inside
the debugger)
[1] live protection domains in _pd_cache_table are properly relocated
during GC?
[2] dead protection domains are removed after class unloading?
Thanks
- Ioi
On 4/11/17 4:18 AM, 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
> 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