RFR: Defer cleaning of system dictionary and friends to parallel cleaning phase

Aleksey Shipilev shade at redhat.com
Tue Jan 16 18:09:50 UTC 2018


On 01/16/2018 06:59 PM, Roman Kennke wrote:
> Found this during traversal GC work: when cleaning the system dictionary and friends, we do clean it
> in the first pass, *single threaded* and then do the cleaning stuff again, but multi-threaded. We
> shall defer cleaning to the parallel phase to begin with. That's what G1 does too.
> 
> http://cr.openjdk.java.net/~rkennke/defer_cleaning/webrev.00/
> 

Awwwwwwww.

Note that in G1, there are two calls to do_unloading: one from weak_refs_work with "false", and
another from mark_sweep_phase1 with default "true".

Are you saying that doing this once with "false" is enough? It looks that ParallelCleaning stuff
purges ResolvedMethodTable, but does it do ClassLoaderDataGraph::do_unloading with
clean_previous_versions? Maybe we should cautiously say "full_gc", not "false" in the patch, so
last-ditch can still do it?

Thanks,
-Aleksey




More information about the shenandoah-dev mailing list