RFR (M) 8213753: SymbolTable is double walked during class unloading and clean up table timing in do_unloading

Aleksey Shipilev shade at redhat.com
Wed Jan 30 10:17:44 UTC 2019


On 1/29/19 8:39 PM, coleen.phillimore at oracle.com wrote:
> Summary: remove gc timing for short runtime cleanup triggering; make symbol table cleaning triggered
> automatically on unloading
> 
> Ran runThese with all Oracle GCs and got similar numbers of symbols unloaded.  Also ran tier1-5.
> 
> See bug for more information.
> 
> open webrev at http://cr.openjdk.java.net/~coleenp/2019/8213753.01/webrev

This looks fine. I tested Shenandoah just in case (it should not be affected, because it uses
shared/parallelCleaning.* and SystemDictionary::do_unloading, like G1), it is still okay.

Minor nits:

*) Add spaces before format specifiers here?

 698     log_debug(symboltable)("Concurrent work triggered, load factor:%f, items to clean:%s",
 699                            get_load_factor(), has_items_to_clean() ? "true" : "false");

*) In SystemDictionary::do_unloading, do we think that trigger_cleanup() are cheap? Otherwise it
makes sense to retain a single GCTraceTime block around all three trigger_cleanups?

-Aleksey



More information about the hotspot-dev mailing list