RFR: Properly react on -ClassUnloading

Aleksey Shipilev shade at redhat.com
Tue May 30 07:31:43 UTC 2017


Hi,

Let Shenandoah properly react on disabled class unloading:

$ hg diff
diff -r 300d4921e9db src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp
--- a/src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp	Mon May 29
20:35:00 2017 +0200
+++ b/src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp	Tue May 30
09:23:57 2017 +0200
@@ -436,6 +436,7 @@
   }

   virtual bool unload_classes() {
+    if (ShenandoahUnloadClassesFrequency == 0) return false;
     // Randomly unload classes with 50% chance.
     return (os::random() & 1) == 1;
   }
@@ -460,6 +461,7 @@
   }

   virtual bool unload_classes() {
+    if (ShenandoahUnloadClassesFrequency == 0) return false;
     // Randomly unload classes with 50% chance.
     return (os::random() & 1) == 1;
   }
diff -r 300d4921e9db src/share/vm/runtime/arguments.cpp
--- a/src/share/vm/runtime/arguments.cpp	Mon May 29 20:35:00 2017 +0200
+++ b/src/share/vm/runtime/arguments.cpp	Tue May 30 09:23:57 2017 +0200
@@ -2137,6 +2137,7 @@
     FLAG_SET_CMDLINE(bool, CMSClassUnloadingEnabled, false);
     FLAG_SET_CMDLINE(bool, ClassUnloadingWithConcurrentMark, false);
     FLAG_SET_CMDLINE(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false);
+    FLAG_SET_CMDLINE(uintx, ShenandoahUnloadClassesFrequency, 0);
   }
 #endif // INCLUDE_ALL_GCS
 }


Thanks,
-Aleksey



More information about the shenandoah-dev mailing list