RFR (S): 8213307: G1 should clean up RMT with ClassUnloadingWithConcurrentMark
Aleksey Shipilev
shade at redhat.com
Mon Nov 5 14:11:47 UTC 2018
On 11/05/2018 01:53 PM, Thomas Schatzl wrote:
> 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.
I'd keep the original behavior and wait for external timeout. Reason: I am not sure 5 iterations is
enough for every GC :)
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8213307
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8213307/webrev/
Looks okay to me.
*) While we are at it, both these GCTraceTime hooks seem to be misplaced. They should be moved where
the actual cleanup is taking place:
1877 {
1878 GCTraceTime(Debug, gc, phases) t("ProtectionDomainCacheTable", gc_timer);
1879 // Oops referenced by the protection domain cache table may get unreachable independently
1880 // of the class loader (eg. cached protection domain oops). So we need to
1881 // explicitly unlink them here.
1882 _pd_cache_table->trigger_cleanup();
1883 }
1884
1885 GCTraceTime(Debug, gc, phases) t("ResolvedMethodTable", gc_timer);
1886 ResolvedMethodTable::trigger_cleanup();
1887
That should probably go to another RFR. Still, it seems cleaner to have the scope around
RMT::trigger_cleanup to make sure the GCTraceTime relates to that operation only, in case some new
code appears after it.
*) I'd consider conditionalizing ClassUnloadingWithConcurrentMark too in the test -- we want to
cover the Full GC case too, no?
82 doConcurrent ? "-XX:+ExplicitGCInvokesConcurrent" : "-XX:-ExplicitGCInvokesConcurrent",
83 "-XX:+ClassUnloadingWithConcurrentMark",
Thanks,
-Aleksey
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20181105/3dd17010/signature.asc>
More information about the hotspot-gc-dev
mailing list