8221359: Eliminate SATBMarkQueueSet::filter_thread_buffers
Removed filter_thread_buffers Reviewed-by: tschatzl, sangheki
This commit is contained in:
parent
53a0327f22
commit
a8e13a5839
src/hotspot/share/gc
g1
shared
test/hotspot/jtreg/gc/g1
@ -65,7 +65,6 @@ G1GCPhaseTimes::G1GCPhaseTimes(STWGCTimer* gc_timer, uint max_gc_threads) :
|
||||
_gc_par_phases[CMRefRoots] = new WorkerDataArray<double>(max_gc_threads, "CM RefProcessor Roots (ms):");
|
||||
_gc_par_phases[WaitForStrongCLD] = new WorkerDataArray<double>(max_gc_threads, "Wait For Strong CLD (ms):");
|
||||
_gc_par_phases[WeakCLDRoots] = new WorkerDataArray<double>(max_gc_threads, "Weak CLD Roots (ms):");
|
||||
_gc_par_phases[SATBFiltering] = new WorkerDataArray<double>(max_gc_threads, "SATB Filtering (ms):");
|
||||
|
||||
_gc_par_phases[UpdateRS] = new WorkerDataArray<double>(max_gc_threads, "Update RS (ms):");
|
||||
if (G1HotCardCache::default_use_cache()) {
|
||||
@ -406,7 +405,7 @@ double G1GCPhaseTimes::print_evacuate_collection_set() const {
|
||||
|
||||
trace_phase(_gc_par_phases[GCWorkerStart], false);
|
||||
debug_phase(_gc_par_phases[ExtRootScan]);
|
||||
for (int i = ExtRootScanSubPhasesStart; i <= ExtRootScanSubPhasesEnd; i++) {
|
||||
for (int i = ExtRootScanSubPhasesFirst; i <= ExtRootScanSubPhasesLast; i++) {
|
||||
trace_phase(_gc_par_phases[i]);
|
||||
}
|
||||
if (G1HotCardCache::default_use_cache()) {
|
||||
@ -531,7 +530,6 @@ const char* G1GCPhaseTimes::phase_name(GCParPhases phase) {
|
||||
"CMRefRoots",
|
||||
"WaitForStrongCLD",
|
||||
"WeakCLDRoots",
|
||||
"SATBFiltering",
|
||||
"UpdateRS",
|
||||
"ScanHCC",
|
||||
"ScanRS",
|
||||
|
@ -60,7 +60,6 @@ class G1GCPhaseTimes : public CHeapObj<mtGC> {
|
||||
CMRefRoots,
|
||||
WaitForStrongCLD,
|
||||
WeakCLDRoots,
|
||||
SATBFiltering,
|
||||
UpdateRS,
|
||||
ScanHCC,
|
||||
ScanRS,
|
||||
@ -82,8 +81,8 @@ class G1GCPhaseTimes : public CHeapObj<mtGC> {
|
||||
GCParPhasesSentinel
|
||||
};
|
||||
|
||||
static const GCParPhases ExtRootScanSubPhasesStart = ThreadRoots;
|
||||
static const GCParPhases ExtRootScanSubPhasesEnd = SATBFiltering;
|
||||
static const GCParPhases ExtRootScanSubPhasesFirst = ThreadRoots;
|
||||
static const GCParPhases ExtRootScanSubPhasesLast = WeakCLDRoots;
|
||||
|
||||
enum GCScanRSWorkItems {
|
||||
ScanRSScannedCards,
|
||||
|
@ -122,16 +122,6 @@ void G1RootProcessor::evacuate_roots(G1ParScanThreadState* pss, uint worker_i) {
|
||||
assert(closures->second_pass_weak_clds() == NULL, "Should be null if not tracing metadata.");
|
||||
}
|
||||
|
||||
// During conc marking we have to filter the per-thread SATB buffers
|
||||
// to make sure we remove any oops into the CSet (which will show up
|
||||
// as implicitly live).
|
||||
{
|
||||
G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::SATBFiltering, worker_i);
|
||||
if (_process_strong_tasks.try_claim_task(G1RP_PS_filter_satb_buffers) && _g1h->collector_state()->mark_or_rebuild_in_progress()) {
|
||||
G1BarrierSet::satb_mark_queue_set().filter_thread_buffers();
|
||||
}
|
||||
}
|
||||
|
||||
_process_strong_tasks.all_tasks_completed(n_workers());
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,6 @@ class G1RootProcessor : public StackObj {
|
||||
G1RP_PS_CodeCache_oops_do,
|
||||
AOT_ONLY(G1RP_PS_aot_oops_do COMMA)
|
||||
JVMCI_ONLY(G1RP_PS_JVMCI_oops_do COMMA)
|
||||
G1RP_PS_filter_satb_buffers,
|
||||
G1RP_PS_refProcessor_oops_do,
|
||||
// Leave this one last.
|
||||
G1RP_PS_NumElements
|
||||
|
@ -189,18 +189,6 @@ void SATBMarkQueueSet::set_active_all_threads(bool active, bool expected_active)
|
||||
Threads::threads_do(&closure);
|
||||
}
|
||||
|
||||
void SATBMarkQueueSet::filter_thread_buffers() {
|
||||
class FilterThreadBufferClosure : public ThreadClosure {
|
||||
SATBMarkQueueSet* _qset;
|
||||
public:
|
||||
FilterThreadBufferClosure(SATBMarkQueueSet* qset) : _qset(qset) {}
|
||||
virtual void do_thread(Thread* t) {
|
||||
_qset->satb_queue_for_thread(t).filter();
|
||||
}
|
||||
} closure(this);
|
||||
Threads::threads_do(&closure);
|
||||
}
|
||||
|
||||
bool SATBMarkQueueSet::apply_closure_to_completed_buffer(SATBBufferClosure* cl) {
|
||||
BufferNode* nd = get_completed_buffer();
|
||||
if (nd != NULL) {
|
||||
|
@ -125,9 +125,6 @@ public:
|
||||
size_t buffer_enqueue_threshold() const { return _buffer_enqueue_threshold; }
|
||||
virtual void filter(SATBMarkQueue* queue) = 0;
|
||||
|
||||
// Filter all the currently-active SATB buffers.
|
||||
void filter_thread_buffers();
|
||||
|
||||
// If there exists some completed buffer, pop and process it, and
|
||||
// return true. Otherwise return false. Processing a buffer
|
||||
// consists of applying the closure to the active range of the
|
||||
|
@ -119,7 +119,6 @@ public class TestGCLogMessages {
|
||||
new LogMessageWithLevel("SystemDictionary Roots", Level.TRACE),
|
||||
new LogMessageWithLevel("CLDG Roots", Level.TRACE),
|
||||
new LogMessageWithLevel("JVMTI Roots", Level.TRACE),
|
||||
new LogMessageWithLevel("SATB Filtering", Level.TRACE),
|
||||
new LogMessageWithLevel("CM RefProcessor Roots", Level.TRACE),
|
||||
new LogMessageWithLevel("Wait For Strong CLD", Level.TRACE),
|
||||
new LogMessageWithLevel("Weak CLD Roots", Level.TRACE),
|
||||
|
Loading…
x
Reference in New Issue
Block a user