< prev index next >

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

Print this page
rev 57895 : [mq]: 8215297-remove-ptt

*** 41,50 **** --- 41,51 ---- #include "gc/shared/gcLocker.hpp" #include "gc/shared/gcTimer.hpp" #include "gc/shared/gcTrace.hpp" #include "gc/shared/gcTraceTime.inline.hpp" #include "gc/shared/isGCActiveMark.hpp" + #include "gc/shared/owstTaskTerminator.hpp" #include "gc/shared/referencePolicy.hpp" #include "gc/shared/referenceProcessor.hpp" #include "gc/shared/referenceProcessorPhaseTimes.hpp" #include "gc/shared/scavengableNMethods.hpp" #include "gc/shared/spaceDecorator.inline.hpp"
*** 136,146 **** // Do the real work pm->drain_stacks(false); } ! static void steal_work(ParallelTaskTerminator& terminator, uint worker_id) { assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(worker_id); pm->drain_stacks(true); --- 137,147 ---- // Do the real work pm->drain_stacks(false); } ! static void steal_work(OWSTTaskTerminator& terminator, uint worker_id) { assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(worker_id); pm->drain_stacks(true);
*** 216,226 **** virtual void execute(ProcessTask& process_task, uint ergo_workers); }; class PSRefProcTask : public AbstractGangTask { typedef AbstractRefProcTaskExecutor::ProcessTask ProcessTask; ! TaskTerminator _terminator; ProcessTask& _task; uint _active_workers; public: PSRefProcTask(ProcessTask& task, uint active_workers) --- 217,227 ---- virtual void execute(ProcessTask& process_task, uint ergo_workers); }; class PSRefProcTask : public AbstractGangTask { typedef AbstractRefProcTaskExecutor::ProcessTask ProcessTask; ! OWSTTaskTerminator _terminator; ProcessTask& _task; uint _active_workers; public: PSRefProcTask(ProcessTask& task, uint active_workers)
*** 238,248 **** PSEvacuateFollowersClosure evac_followers(promotion_manager); PSIsAliveClosure is_alive; _task.work(worker_id, is_alive, keep_alive, evac_followers); if (_task.marks_oops_alive() && _active_workers > 1) { ! steal_work(*_terminator.terminator(), worker_id); } } }; void PSRefProcTaskExecutor::execute(ProcessTask& process_task, uint ergo_workers) { --- 239,249 ---- PSEvacuateFollowersClosure evac_followers(promotion_manager); PSIsAliveClosure is_alive; _task.work(worker_id, is_alive, keep_alive, evac_followers); if (_task.marks_oops_alive() && _active_workers > 1) { ! steal_work(_terminator, worker_id); } } }; void PSRefProcTaskExecutor::execute(ProcessTask& process_task, uint ergo_workers) {
*** 312,322 **** SequentialSubTasksDone _subtasks; PSOldGen* _old_gen; HeapWord* _gen_top; uint _active_workers; bool _is_empty; ! TaskTerminator _terminator; public: ScavengeRootsTask(PSOldGen* old_gen, HeapWord* gen_top, uint active_workers, --- 313,323 ---- SequentialSubTasksDone _subtasks; PSOldGen* _old_gen; HeapWord* _gen_top; uint _active_workers; bool _is_empty; ! OWSTTaskTerminator _terminator; public: ScavengeRootsTask(PSOldGen* old_gen, HeapWord* gen_top, uint active_workers,
*** 375,385 **** // PSPromotionManager::drain_stacks_depth() does not fully drain its // stacks and expects a steal_work() to complete the draining if // ParallelGCThreads is > 1. if (_active_workers > 1) { ! steal_work(*_terminator.terminator() , worker_id); } } }; // This method contains no policy. You should probably --- 376,386 ---- // PSPromotionManager::drain_stacks_depth() does not fully drain its // stacks and expects a steal_work() to complete the draining if // ParallelGCThreads is > 1. if (_active_workers > 1) { ! steal_work(_terminator, worker_id); } } }; // This method contains no policy. You should probably
*** 729,739 **** log_debug(gc, task, time)("VM-Thread " JLONG_FORMAT " " JLONG_FORMAT " " JLONG_FORMAT, scavenge_entry.ticks(), scavenge_midpoint.ticks(), scavenge_exit.ticks()); #ifdef TRACESPINNING ! ParallelTaskTerminator::print_termination_counts(); #endif AdaptiveSizePolicyOutput::print(size_policy, heap->total_collections()); _gc_timer.register_gc_end(); --- 730,740 ---- log_debug(gc, task, time)("VM-Thread " JLONG_FORMAT " " JLONG_FORMAT " " JLONG_FORMAT, scavenge_entry.ticks(), scavenge_midpoint.ticks(), scavenge_exit.ticks()); #ifdef TRACESPINNING ! OWSTTaskTerminator::print_termination_counts(); #endif AdaptiveSizePolicyOutput::print(size_policy, heap->total_collections()); _gc_timer.register_gc_end();
< prev index next >