RFR (S): 8213307: G1 should clean up RMT with ClassUnloadingWithConcurrentMark

Thomas Schatzl thomas.schatzl at oracle.com
Mon Nov 5 12:53:21 UTC 2018


Hi all,

  can I have reviews for a bug introduced with JDK-8206423?

Since that change ResolvedMethodTables were not cleaned up since then
as the change moved cleaning them up out into the ServiceThread, but
the G1 code does not notify the ServiceThread that there is work to do
after a concurrent cycle.

So since then G1 needed a full gc to clean it up.

Since the change, as suggested by Aleksey in the CR, makes one
parameter in SystemDictionary::do_unloading() obsolete as it is always
called with the same value, removes it and propagates it a bit through
runtime code. Hence the cc to the runtime list. 

I also made the test to not go into an infinite loop if no RMT
unloading occurs as this would make it wait on external timeout which
seems ugly. If somebody disagrees with that change I can easily revert
it.

CR:
https://bugs.openjdk.java.net/browse/JDK-8213307
Webrev:
http://cr.openjdk.java.net/~tschatzl/8213307/webrev/
Testing:
hs-tier1-3, changed test case passes

Thanks,
  Thomas



More information about the hotspot-gc-dev mailing list