17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
23 *
24 */
25
26 #include "precompiled.hpp"
27 #include "memory/allocation.hpp"
28 #include "memory/universe.hpp"
29
30 #include "gc/shared/classUnloadingContext.hpp"
31 #include "gc/shared/gcArguments.hpp"
32 #include "gc/shared/gcTimer.hpp"
33 #include "gc/shared/gcTraceTime.inline.hpp"
34 #include "gc/shared/locationPrinter.inline.hpp"
35 #include "gc/shared/memAllocator.hpp"
36 #include "gc/shared/plab.hpp"
37 #include "gc/shared/tlab_globals.hpp"
38
39 #include "gc/shenandoah/shenandoahBarrierSet.hpp"
40 #include "gc/shenandoah/shenandoahClosures.inline.hpp"
41 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
42 #include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
43 #include "gc/shenandoah/shenandoahConcurrentMark.hpp"
44 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
45 #include "gc/shenandoah/shenandoahControlThread.hpp"
46 #include "gc/shenandoah/shenandoahFreeSet.hpp"
47 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
48 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
49 #include "gc/shenandoah/shenandoahHeapRegion.inline.hpp"
50 #include "gc/shenandoah/shenandoahHeapRegionSet.hpp"
51 #include "gc/shenandoah/shenandoahInitLogger.hpp"
52 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
53 #include "gc/shenandoah/shenandoahMemoryPool.hpp"
54 #include "gc/shenandoah/shenandoahMetrics.hpp"
55 #include "gc/shenandoah/shenandoahMonitoringSupport.hpp"
56 #include "gc/shenandoah/shenandoahOopClosures.inline.hpp"
387 ShenandoahSATBMarkQueueSet& satbqs = ShenandoahBarrierSet::satb_mark_queue_set();
388 satbqs.set_process_completed_buffers_threshold(20); // G1SATBProcessCompletedThreshold
389 satbqs.set_buffer_enqueue_threshold_percentage(60); // G1SATBBufferEnqueueingThresholdPercent
390 }
391
392 _monitoring_support = new ShenandoahMonitoringSupport(this);
393 _phase_timings = new ShenandoahPhaseTimings(max_workers());
394 ShenandoahCodeRoots::initialize();
395
396 if (ShenandoahPacing) {
397 _pacer = new ShenandoahPacer(this);
398 _pacer->setup_for_idle();
399 } else {
400 _pacer = nullptr;
401 }
402
403 _control_thread = new ShenandoahControlThread();
404
405 ShenandoahInitLogger::print();
406
407 return JNI_OK;
408 }
409
410 void ShenandoahHeap::initialize_mode() {
411 if (ShenandoahGCMode != nullptr) {
412 if (strcmp(ShenandoahGCMode, "satb") == 0) {
413 _gc_mode = new ShenandoahSATBMode();
414 } else if (strcmp(ShenandoahGCMode, "iu") == 0) {
415 _gc_mode = new ShenandoahIUMode();
416 } else if (strcmp(ShenandoahGCMode, "passive") == 0) {
417 _gc_mode = new ShenandoahPassiveMode();
418 } else {
419 vm_exit_during_initialization("Unknown -XX:ShenandoahGCMode option");
420 }
421 } else {
422 vm_exit_during_initialization("Unknown -XX:ShenandoahGCMode option (null)");
423 }
424 _gc_mode->initialize_flags();
425 if (_gc_mode->is_diagnostic() && !UnlockDiagnosticVMOptions) {
426 vm_exit_during_initialization(
|
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
23 *
24 */
25
26 #include "precompiled.hpp"
27 #include "memory/allocation.hpp"
28 #include "memory/universe.hpp"
29
30 #include "gc/shared/classUnloadingContext.hpp"
31 #include "gc/shared/gcArguments.hpp"
32 #include "gc/shared/gcTimer.hpp"
33 #include "gc/shared/gcTraceTime.inline.hpp"
34 #include "gc/shared/locationPrinter.inline.hpp"
35 #include "gc/shared/memAllocator.hpp"
36 #include "gc/shared/plab.hpp"
37 #include "gc/shared/slidingForwarding.hpp"
38 #include "gc/shared/tlab_globals.hpp"
39
40 #include "gc/shenandoah/shenandoahBarrierSet.hpp"
41 #include "gc/shenandoah/shenandoahClosures.inline.hpp"
42 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
43 #include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
44 #include "gc/shenandoah/shenandoahConcurrentMark.hpp"
45 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
46 #include "gc/shenandoah/shenandoahControlThread.hpp"
47 #include "gc/shenandoah/shenandoahFreeSet.hpp"
48 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
49 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
50 #include "gc/shenandoah/shenandoahHeapRegion.inline.hpp"
51 #include "gc/shenandoah/shenandoahHeapRegionSet.hpp"
52 #include "gc/shenandoah/shenandoahInitLogger.hpp"
53 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
54 #include "gc/shenandoah/shenandoahMemoryPool.hpp"
55 #include "gc/shenandoah/shenandoahMetrics.hpp"
56 #include "gc/shenandoah/shenandoahMonitoringSupport.hpp"
57 #include "gc/shenandoah/shenandoahOopClosures.inline.hpp"
388 ShenandoahSATBMarkQueueSet& satbqs = ShenandoahBarrierSet::satb_mark_queue_set();
389 satbqs.set_process_completed_buffers_threshold(20); // G1SATBProcessCompletedThreshold
390 satbqs.set_buffer_enqueue_threshold_percentage(60); // G1SATBBufferEnqueueingThresholdPercent
391 }
392
393 _monitoring_support = new ShenandoahMonitoringSupport(this);
394 _phase_timings = new ShenandoahPhaseTimings(max_workers());
395 ShenandoahCodeRoots::initialize();
396
397 if (ShenandoahPacing) {
398 _pacer = new ShenandoahPacer(this);
399 _pacer->setup_for_idle();
400 } else {
401 _pacer = nullptr;
402 }
403
404 _control_thread = new ShenandoahControlThread();
405
406 ShenandoahInitLogger::print();
407
408 SlidingForwarding::initialize(_heap_region, ShenandoahHeapRegion::region_size_words());
409
410 return JNI_OK;
411 }
412
413 void ShenandoahHeap::initialize_mode() {
414 if (ShenandoahGCMode != nullptr) {
415 if (strcmp(ShenandoahGCMode, "satb") == 0) {
416 _gc_mode = new ShenandoahSATBMode();
417 } else if (strcmp(ShenandoahGCMode, "iu") == 0) {
418 _gc_mode = new ShenandoahIUMode();
419 } else if (strcmp(ShenandoahGCMode, "passive") == 0) {
420 _gc_mode = new ShenandoahPassiveMode();
421 } else {
422 vm_exit_during_initialization("Unknown -XX:ShenandoahGCMode option");
423 }
424 } else {
425 vm_exit_during_initialization("Unknown -XX:ShenandoahGCMode option (null)");
426 }
427 _gc_mode->initialize_flags();
428 if (_gc_mode->is_diagnostic() && !UnlockDiagnosticVMOptions) {
429 vm_exit_during_initialization(
|