--- a/src/hotspot/share/gc/parallel/psParallelCompact.cpp Thu Apr 26 12:54:53 2018 +0200
+++ b/src/hotspot/share/gc/parallel/psParallelCompact.cpp Thu May 03 14:09:00 2018 +0200
@@ -117,6 +117,7 @@
SpaceInfo PSParallelCompact::_space_info[PSParallelCompact::last_space_id];
+SpanSubjectToDiscoveryClosure PSParallelCompact::_span_based_discoverer;
ReferenceProcessor* PSParallelCompact::_ref_processor = NULL;
double PSParallelCompact::_dwl_mean;
@@ -843,14 +844,14 @@
void PSParallelCompact::post_initialize() {
ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
- MemRegion mr = heap->reserved_region();
+ _span_based_discoverer.set_span(heap->reserved_region());
_ref_processor =
- new ReferenceProcessor(mr, // span
+ new ReferenceProcessor(&_span_based_discoverer,
ParallelRefProcEnabled && (ParallelGCThreads > 1), // mt processing
- ParallelGCThreads, // mt processing degree
- true, // mt discovery
- ParallelGCThreads, // mt discovery degree
- true, // atomic_discovery
+ ParallelGCThreads, // mt processing degree
+ true, // mt discovery
+ ParallelGCThreads, // mt discovery degree
+ true, // atomic_discovery
&_is_alive_closure); // non-header is alive closure
_counters = new CollectorCounters("PSParallelCompact", 1);