--- old/src/hotspot/share/gc/g1/g1CollectedHeap.cpp 2020-05-11 06:09:33.048039363 -0400 +++ new/src/hotspot/share/gc/g1/g1CollectedHeap.cpp 2020-05-11 06:09:32.648026187 -0400 @@ -1541,12 +1541,12 @@ _filler_array_max_size = _humongous_object_threshold_in_words; uint n_queues = ParallelGCThreads; - _task_queues = new RefToScanQueueSet(n_queues); + _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++) { - RefToScanQueue* q = new RefToScanQueue(); + ScannerTasksQueue* q = new ScannerTasksQueue(); q->initialize(); _task_queues->register_queue(i, q); ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo(); @@ -3398,7 +3398,7 @@ // 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); + _par_scan_state->push_on_queue(ScannerTask(p)); } } }; @@ -3435,14 +3435,14 @@ private: G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _pss; - RefToScanQueueSet* _queues; + ScannerTasksQueueSet* _queues; WorkGang* _workers; public: G1STWRefProcTaskExecutor(G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, WorkGang* workers, - RefToScanQueueSet *task_queues) : + ScannerTasksQueueSet *task_queues) : _g1h(g1h), _pss(per_thread_states), _queues(task_queues), @@ -3462,14 +3462,14 @@ ProcessTask& _proc_task; G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _pss; - RefToScanQueueSet* _task_queues; + ScannerTasksQueueSet* _task_queues; TaskTerminator* _terminator; public: G1STWRefProcTaskProxy(ProcessTask& proc_task, G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, - RefToScanQueueSet *task_queues, + ScannerTasksQueueSet *task_queues, TaskTerminator* terminator) : AbstractGangTask("Process reference objects in parallel"), _proc_task(proc_task), @@ -3800,7 +3800,7 @@ protected: G1CollectedHeap* _g1h; G1ParScanThreadStateSet* _per_thread_states; - RefToScanQueueSet* _task_queues; + ScannerTasksQueueSet* _task_queues; TaskTerminator _terminator; uint _num_workers; @@ -3838,7 +3838,10 @@ 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) : + 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), @@ -3889,7 +3892,7 @@ public: G1EvacuateRegionsTask(G1CollectedHeap* g1h, G1ParScanThreadStateSet* per_thread_states, - RefToScanQueueSet* task_queues, + ScannerTasksQueueSet* task_queues, G1RootProcessor* root_processor, uint num_workers) : G1EvacuateRegionsBaseTask("G1 Evacuate Regions", per_thread_states, task_queues, num_workers), @@ -3937,7 +3940,7 @@ public: G1EvacuateOptionalRegionsTask(G1ParScanThreadStateSet* per_thread_states, - RefToScanQueueSet* queues, + ScannerTasksQueueSet* queues, uint num_workers) : G1EvacuateRegionsBaseTask("G1 Evacuate Optional Regions", per_thread_states, queues, num_workers) { }