8221359: Eliminate SATBMarkQueueSet::filter_thread_buffers
Summary: Removed filter_thread_buffers
Reviewed-by: tschatzl, sangheki
--- a/src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp Fri May 03 14:09:19 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp Fri May 03 23:35:12 2019 -0400
@@ -65,7 +65,6 @@
_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 @@
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 @@
"CMRefRoots",
"WaitForStrongCLD",
"WeakCLDRoots",
- "SATBFiltering",
"UpdateRS",
"ScanHCC",
"ScanRS",
--- a/src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp Fri May 03 14:09:19 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp Fri May 03 23:35:12 2019 -0400
@@ -60,7 +60,6 @@
CMRefRoots,
WaitForStrongCLD,
WeakCLDRoots,
- SATBFiltering,
UpdateRS,
ScanHCC,
ScanRS,
@@ -82,8 +81,8 @@
GCParPhasesSentinel
};
- static const GCParPhases ExtRootScanSubPhasesStart = ThreadRoots;
- static const GCParPhases ExtRootScanSubPhasesEnd = SATBFiltering;
+ static const GCParPhases ExtRootScanSubPhasesFirst = ThreadRoots;
+ static const GCParPhases ExtRootScanSubPhasesLast = WeakCLDRoots;
enum GCScanRSWorkItems {
ScanRSScannedCards,
--- a/src/hotspot/share/gc/g1/g1RootProcessor.cpp Fri May 03 14:09:19 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1RootProcessor.cpp Fri May 03 23:35:12 2019 -0400
@@ -122,16 +122,6 @@
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());
}
--- a/src/hotspot/share/gc/g1/g1RootProcessor.hpp Fri May 03 14:09:19 2019 -0700
+++ b/src/hotspot/share/gc/g1/g1RootProcessor.hpp Fri May 03 23:35:12 2019 -0400
@@ -65,7 +65,6 @@
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
--- a/src/hotspot/share/gc/shared/satbMarkQueue.cpp Fri May 03 14:09:19 2019 -0700
+++ b/src/hotspot/share/gc/shared/satbMarkQueue.cpp Fri May 03 23:35:12 2019 -0400
@@ -189,18 +189,6 @@
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) {
--- a/src/hotspot/share/gc/shared/satbMarkQueue.hpp Fri May 03 14:09:19 2019 -0700
+++ b/src/hotspot/share/gc/shared/satbMarkQueue.hpp Fri May 03 23:35:12 2019 -0400
@@ -125,9 +125,6 @@
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
--- a/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java Fri May 03 14:09:19 2019 -0700
+++ b/test/hotspot/jtreg/gc/g1/TestGCLogMessages.java Fri May 03 23:35:12 2019 -0400
@@ -119,7 +119,6 @@
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),