< prev index next >

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

Print this page
rev 59232 : [mq]: scan_task

*** 1539,1554 **** // Override the default _filler_array_max_size so that no humongous filler // objects are created. _filler_array_max_size = _humongous_object_threshold_in_words; uint n_queues = ParallelGCThreads; ! _task_queues = new RefToScanQueueSet(n_queues); _evacuation_failed_info_array = NEW_C_HEAP_ARRAY(EvacuationFailedInfo, n_queues, mtGC); for (uint i = 0; i < n_queues; i++) { ! RefToScanQueue* q = new RefToScanQueue(); q->initialize(); _task_queues->register_queue(i, q); ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo(); } --- 1539,1554 ---- // Override the default _filler_array_max_size so that no humongous filler // objects are created. _filler_array_max_size = _humongous_object_threshold_in_words; uint n_queues = ParallelGCThreads; ! _task_queues = new ScannerTasksQueueSet(n_queues); _evacuation_failed_info_array = NEW_C_HEAP_ARRAY(EvacuationFailedInfo, n_queues, mtGC); for (uint i = 0; i < n_queues; i++) { ! ScannerTasksQueue* q = new ScannerTasksQueue(); q->initialize(); _task_queues->register_queue(i, q); ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo(); }
*** 3396,3406 **** // it alive by policy. Therefore we have copy the referent. // // When the queue is drained (after each phase of reference processing) // the object and it's followers will be copied, the reference field set // to point to the new location, and the RSet updated. ! _par_scan_state->push_on_queue(p); } } }; // Serial drain queue closure. Called as the 'complete_gc' --- 3396,3406 ---- // it alive by policy. Therefore we have copy the referent. // // When the queue is drained (after each phase of reference processing) // the object and it's followers will be copied, the reference field set // to point to the new location, and the RSet updated. ! _par_scan_state->push_on_queue(ScannerTask(p)); } } }; // Serial drain queue closure. Called as the 'complete_gc'
*** 3433,3450 **** class G1STWRefProcTaskExecutor: public AbstractRefProcTaskExecutor { private: G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _pss; ! RefToScanQueueSet* _queues; WorkGang* _workers; public: G1STWRefProcTaskExecutor(G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, WorkGang* workers, ! RefToScanQueueSet *task_queues) : _g1h(g1h), _pss(per_thread_states), _queues(task_queues), _workers(workers) { --- 3433,3450 ---- class G1STWRefProcTaskExecutor: public AbstractRefProcTaskExecutor { private: G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _pss; ! ScannerTasksQueueSet* _queues; WorkGang* _workers; public: G1STWRefProcTaskExecutor(G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, WorkGang* workers, ! ScannerTasksQueueSet *task_queues) : _g1h(g1h), _pss(per_thread_states), _queues(task_queues), _workers(workers) {
*** 3460,3477 **** class G1STWRefProcTaskProxy: public AbstractGangTask { typedef AbstractRefProcTaskExecutor::ProcessTask ProcessTask; ProcessTask& _proc_task; G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _pss; ! RefToScanQueueSet* _task_queues; TaskTerminator* _terminator; public: G1STWRefProcTaskProxy(ProcessTask& proc_task, G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, ! RefToScanQueueSet *task_queues, TaskTerminator* terminator) : AbstractGangTask("Process reference objects in parallel"), _proc_task(proc_task), _g1h(g1h), _pss(per_thread_states), --- 3460,3477 ---- class G1STWRefProcTaskProxy: public AbstractGangTask { typedef AbstractRefProcTaskExecutor::ProcessTask ProcessTask; ProcessTask& _proc_task; G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _pss; ! ScannerTasksQueueSet* _task_queues; TaskTerminator* _terminator; public: G1STWRefProcTaskProxy(ProcessTask& proc_task, G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, ! ScannerTasksQueueSet *task_queues, TaskTerminator* terminator) : AbstractGangTask("Process reference objects in parallel"), _proc_task(proc_task), _g1h(g1h), _pss(per_thread_states),
*** 3798,3808 **** class G1EvacuateRegionsBaseTask : public AbstractGangTask { protected: G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _per_thread_states; ! RefToScanQueueSet* _task_queues; TaskTerminator _terminator; uint _num_workers; void evacuate_live_objects(G1ParScanThreadState* pss, uint worker_id, --- 3798,3808 ---- class G1EvacuateRegionsBaseTask : public AbstractGangTask { protected: G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _per_thread_states; ! ScannerTasksQueueSet* _task_queues; TaskTerminator _terminator; uint _num_workers; void evacuate_live_objects(G1ParScanThreadState* pss, uint worker_id,
*** 3836,3846 **** virtual void scan_roots(G1ParScanThreadState* pss, uint worker_id) = 0; virtual void evacuate_live_objects(G1ParScanThreadState* pss, uint worker_id) = 0; public: ! G1EvacuateRegionsBaseTask(const char* name, G1ParScanThreadStateSet* per_thread_states, RefToScanQueueSet* task_queues, uint num_workers) : AbstractGangTask(name), _g1h(G1CollectedHeap::heap()), _per_thread_states(per_thread_states), _task_queues(task_queues), _terminator(num_workers, _task_queues), --- 3836,3849 ---- virtual void scan_roots(G1ParScanThreadState* pss, uint worker_id) = 0; virtual void evacuate_live_objects(G1ParScanThreadState* pss, uint worker_id) = 0; public: ! G1EvacuateRegionsBaseTask(const char* name, ! G1ParScanThreadStateSet* per_thread_states, ! ScannerTasksQueueSet* task_queues, ! uint num_workers) : AbstractGangTask(name), _g1h(G1CollectedHeap::heap()), _per_thread_states(per_thread_states), _task_queues(task_queues), _terminator(num_workers, _task_queues),
*** 3887,3897 **** } public: G1EvacuateRegionsTask(G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, ! RefToScanQueueSet* task_queues, G1RootProcessor* root_processor, uint num_workers) : G1EvacuateRegionsBaseTask("G1 Evacuate Regions", per_thread_states, task_queues, num_workers), _root_processor(root_processor) { } --- 3890,3900 ---- } public: G1EvacuateRegionsTask(G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, ! ScannerTasksQueueSet* task_queues, G1RootProcessor* root_processor, uint num_workers) : G1EvacuateRegionsBaseTask("G1 Evacuate Regions", per_thread_states, task_queues, num_workers), _root_processor(root_processor) { }
*** 3935,3945 **** G1EvacuateRegionsBaseTask::evacuate_live_objects(pss, worker_id, G1GCPhaseTimes::OptObjCopy, G1GCPhaseTimes::OptTermination); } public: G1EvacuateOptionalRegionsTask(G1ParScanThreadStateSet* per_thread_states, ! RefToScanQueueSet* queues, uint num_workers) : G1EvacuateRegionsBaseTask("G1 Evacuate Optional Regions", per_thread_states, queues, num_workers) { } }; --- 3938,3948 ---- G1EvacuateRegionsBaseTask::evacuate_live_objects(pss, worker_id, G1GCPhaseTimes::OptObjCopy, G1GCPhaseTimes::OptTermination); } public: G1EvacuateOptionalRegionsTask(G1ParScanThreadStateSet* per_thread_states, ! ScannerTasksQueueSet* queues, uint num_workers) : G1EvacuateRegionsBaseTask("G1 Evacuate Optional Regions", per_thread_states, queues, num_workers) { } };
< prev index next >