< prev index next >

src/hotspot/share/gc/parallel/psParallelCompact.cpp

Print this page

        

*** 48,58 **** #include "gc/shared/gcTimer.hpp" #include "gc/shared/gcTrace.hpp" #include "gc/shared/gcTraceTime.inline.hpp" #include "gc/shared/isGCActiveMark.hpp" #include "gc/shared/oopStorage.inline.hpp" ! #include "gc/shared/oopStorageSet.hpp" #include "gc/shared/referencePolicy.hpp" #include "gc/shared/referenceProcessor.hpp" #include "gc/shared/referenceProcessorPhaseTimes.hpp" #include "gc/shared/spaceDecorator.inline.hpp" #include "gc/shared/taskTerminator.hpp" --- 48,59 ---- #include "gc/shared/gcTimer.hpp" #include "gc/shared/gcTrace.hpp" #include "gc/shared/gcTraceTime.inline.hpp" #include "gc/shared/isGCActiveMark.hpp" #include "gc/shared/oopStorage.inline.hpp" ! #include "gc/shared/oopStorageSet.inline.hpp" ! #include "gc/shared/oopStorageSetParState.inline.hpp" #include "gc/shared/referencePolicy.hpp" #include "gc/shared/referenceProcessor.hpp" #include "gc/shared/referenceProcessorPhaseTimes.hpp" #include "gc/shared/spaceDecorator.inline.hpp" #include "gc/shared/taskTerminator.hpp"
*** 2013,2026 **** switch (root_type) { case ParallelRootType::universe: Universe::oops_do(&mark_and_push_closure); break; - case ParallelRootType::jni_handles: - JNIHandles::oops_do(&mark_and_push_closure); - break; - case ParallelRootType::object_synchronizer: ObjectSynchronizer::oops_do(&mark_and_push_closure); break; case ParallelRootType::management: --- 2014,2023 ----
*** 2029,2042 **** case ParallelRootType::jvmti: JvmtiExport::oops_do(&mark_and_push_closure); break; - case ParallelRootType::vm_global: - OopStorageSet::vm_global()->oops_do(&mark_and_push_closure); - break; - case ParallelRootType::class_loader_data: { CLDToOopClosure cld_closure(&mark_and_push_closure, ClassLoaderData::_claim_strong); ClassLoaderDataGraph::always_strong_cld_do(&cld_closure); } --- 2026,2035 ----
*** 2079,2088 **** --- 2072,2082 ---- } class MarkFromRootsTask : public AbstractGangTask { typedef AbstractRefProcTaskExecutor::ProcessTask ProcessTask; StrongRootsScope _strong_roots_scope; // needed for Threads::possibly_parallel_threads_do + OopStorageSetStrongParState<false /* concurrent */, false /* is_const */> _oop_storage_set_par_state; SequentialSubTasksDone _subtasks; TaskTerminator _terminator; uint _active_workers; public:
*** 2103,2112 **** --- 2097,2115 ---- _subtasks.all_tasks_completed(); PCAddThreadRootsMarkingTaskClosure closure(worker_id); Threads::possibly_parallel_threads_do(true /*parallel */, &closure); + // Mark from OopStorages + { + ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(worker_id); + PCMarkAndPushClosure closure(cm); + _oop_storage_set_par_state.oops_do(&closure); + // Do the real work + cm->follow_marking_stacks(); + } + if (_active_workers > 1) { steal_marking_work(_terminator, worker_id); } } };
*** 2233,2248 **** PCAdjustPointerClosure oop_closure(cm); // General strong roots. Universe::oops_do(&oop_closure); - JNIHandles::oops_do(&oop_closure); // Global (strong) JNI handles Threads::oops_do(&oop_closure, NULL); ObjectSynchronizer::oops_do(&oop_closure); Management::oops_do(&oop_closure); JvmtiExport::oops_do(&oop_closure); ! OopStorageSet::vm_global()->oops_do(&oop_closure); CLDToOopClosure cld_closure(&oop_closure, ClassLoaderData::_claim_strong); ClassLoaderDataGraph::cld_do(&cld_closure); // Now adjust pointers in remaining weak roots. (All of which should // have been cleared if they pointed to non-surviving objects.) --- 2236,2250 ---- PCAdjustPointerClosure oop_closure(cm); // General strong roots. Universe::oops_do(&oop_closure); Threads::oops_do(&oop_closure, NULL); ObjectSynchronizer::oops_do(&oop_closure); Management::oops_do(&oop_closure); JvmtiExport::oops_do(&oop_closure); ! OopStorageSet::strong_oops_do(&oop_closure); CLDToOopClosure cld_closure(&oop_closure, ClassLoaderData::_claim_strong); ClassLoaderDataGraph::cld_do(&cld_closure); // Now adjust pointers in remaining weak roots. (All of which should // have been cleared if they pointed to non-surviving objects.)
< prev index next >