< prev index next >

src/hotspot/share/gc/g1/g1RootProcessor.cpp

Print this page
rev 59957 : imported patch 8247819-stefank-review

@@ -38,10 +38,11 @@
 #include "gc/g1/g1RootClosures.hpp"
 #include "gc/g1/g1RootProcessor.hpp"
 #include "gc/g1/heapRegion.inline.hpp"
 #include "gc/shared/oopStorage.inline.hpp"
 #include "gc/shared/oopStorageSet.hpp"
+#include "gc/shared/oopStorageSetParState.inline.hpp"
 #include "gc/shared/referenceProcessor.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/universe.hpp"
 #include "runtime/mutex.hpp"
 #include "services/management.hpp"

@@ -187,17 +188,10 @@
       Universe::oops_do(strong_roots);
     }
   }
 
   {
-    G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::JNIRoots, worker_id);
-    if (_process_strong_tasks.try_claim_task(G1RP_PS_JNIHandles_oops_do)) {
-      JNIHandles::oops_do(strong_roots);
-    }
-  }
-
-  {
     G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::ObjectSynchronizerRoots, worker_id);
     if (_process_strong_tasks.try_claim_task(G1RP_PS_ObjectSynchronizer_oops_do)) {
       ObjectSynchronizer::oops_do(strong_roots);
     }
   }

@@ -223,15 +217,14 @@
         AOTLoader::oops_do(strong_roots);
     }
   }
 #endif
 
-  {
-    G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::VMGlobalRoots, worker_id);
-    if (_process_strong_tasks.try_claim_task(G1RP_PS_VMGlobal_oops_do)) {
-      OopStorageSet::vm_global()->oops_do(strong_roots);
-    }
+  for (int i = 0; i < _oop_storage_set_strong_par_state.par_state_count(); ++i) {
+    G1GCPhaseTimes::GCParPhases phase = G1GCPhaseTimes::GCParPhases(G1GCPhaseTimes::StrongOopStorageSetRoots + i);
+    G1GCParPhaseTimesTracker x(phase_times, phase, worker_id);
+    _oop_storage_set_strong_par_state.par_state(i)->oops_do(closures->strong_oops());
   }
 }
 
 void G1RootProcessor::process_code_cache_roots(CodeBlobClosure* code_closure,
                                                G1GCPhaseTimes* phase_times,
< prev index next >