65 #include "gc/g1/g1Trace.hpp"
66 #include "gc/g1/g1ServiceThread.hpp"
67 #include "gc/g1/g1UncommitRegionTask.hpp"
68 #include "gc/g1/g1VMOperations.hpp"
69 #include "gc/g1/g1YoungGCPostEvacuateTasks.hpp"
70 #include "gc/g1/heapRegion.inline.hpp"
71 #include "gc/g1/heapRegionRemSet.hpp"
72 #include "gc/g1/heapRegionSet.inline.hpp"
73 #include "gc/shared/concurrentGCBreakpoints.hpp"
74 #include "gc/shared/gcBehaviours.hpp"
75 #include "gc/shared/gcHeapSummary.hpp"
76 #include "gc/shared/gcId.hpp"
77 #include "gc/shared/gcLocker.hpp"
78 #include "gc/shared/gcTimer.hpp"
79 #include "gc/shared/gcTraceTime.inline.hpp"
80 #include "gc/shared/generationSpec.hpp"
81 #include "gc/shared/isGCActiveMark.hpp"
82 #include "gc/shared/locationPrinter.inline.hpp"
83 #include "gc/shared/oopStorageParState.hpp"
84 #include "gc/shared/preservedMarks.inline.hpp"
85 #include "gc/shared/suspendibleThreadSet.hpp"
86 #include "gc/shared/referenceProcessor.inline.hpp"
87 #include "gc/shared/taskTerminator.hpp"
88 #include "gc/shared/taskqueue.inline.hpp"
89 #include "gc/shared/tlab_globals.hpp"
90 #include "gc/shared/weakProcessor.inline.hpp"
91 #include "gc/shared/workerPolicy.hpp"
92 #include "logging/log.hpp"
93 #include "memory/allocation.hpp"
94 #include "memory/iterator.hpp"
95 #include "memory/heapInspection.hpp"
96 #include "memory/metaspaceUtils.hpp"
97 #include "memory/resourceArea.hpp"
98 #include "memory/universe.hpp"
99 #include "oops/access.inline.hpp"
100 #include "oops/compressedOops.inline.hpp"
101 #include "oops/oop.inline.hpp"
102 #include "runtime/atomic.hpp"
103 #include "runtime/handles.inline.hpp"
104 #include "runtime/init.hpp"
1757 // BOT updates. So we'll tag the dummy region as eden to avoid that.
1758 dummy_region->set_eden();
1759 // Make sure it's full.
1760 dummy_region->set_top(dummy_region->end());
1761 G1AllocRegion::setup(this, dummy_region);
1762
1763 _allocator->init_mutator_alloc_regions();
1764
1765 // Do create of the monitoring and management support so that
1766 // values in the heap have been properly initialized.
1767 _g1mm = new G1MonitoringSupport(this);
1768
1769 _preserved_marks_set.init(ParallelGCThreads);
1770
1771 _collection_set.initialize(max_reserved_regions());
1772
1773 _regions_failed_evacuation = NEW_C_HEAP_ARRAY(volatile bool, max_regions(), mtGC);
1774
1775 G1InitLogger::print();
1776
1777 return JNI_OK;
1778 }
1779
1780 void G1CollectedHeap::stop() {
1781 // Stop all concurrent threads. We do this to make sure these threads
1782 // do not continue to execute and access resources (e.g. logging)
1783 // that are destroyed during shutdown.
1784 _cr->stop();
1785 _service_thread->stop();
1786 _cm_thread->stop();
1787 }
1788
1789 void G1CollectedHeap::safepoint_synchronize_begin() {
1790 SuspendibleThreadSet::synchronize();
1791 }
1792
1793 void G1CollectedHeap::safepoint_synchronize_end() {
1794 SuspendibleThreadSet::desynchronize();
1795 }
1796
|
65 #include "gc/g1/g1Trace.hpp"
66 #include "gc/g1/g1ServiceThread.hpp"
67 #include "gc/g1/g1UncommitRegionTask.hpp"
68 #include "gc/g1/g1VMOperations.hpp"
69 #include "gc/g1/g1YoungGCPostEvacuateTasks.hpp"
70 #include "gc/g1/heapRegion.inline.hpp"
71 #include "gc/g1/heapRegionRemSet.hpp"
72 #include "gc/g1/heapRegionSet.inline.hpp"
73 #include "gc/shared/concurrentGCBreakpoints.hpp"
74 #include "gc/shared/gcBehaviours.hpp"
75 #include "gc/shared/gcHeapSummary.hpp"
76 #include "gc/shared/gcId.hpp"
77 #include "gc/shared/gcLocker.hpp"
78 #include "gc/shared/gcTimer.hpp"
79 #include "gc/shared/gcTraceTime.inline.hpp"
80 #include "gc/shared/generationSpec.hpp"
81 #include "gc/shared/isGCActiveMark.hpp"
82 #include "gc/shared/locationPrinter.inline.hpp"
83 #include "gc/shared/oopStorageParState.hpp"
84 #include "gc/shared/preservedMarks.inline.hpp"
85 #include "gc/shared/slidingForwarding.hpp"
86 #include "gc/shared/suspendibleThreadSet.hpp"
87 #include "gc/shared/referenceProcessor.inline.hpp"
88 #include "gc/shared/taskTerminator.hpp"
89 #include "gc/shared/taskqueue.inline.hpp"
90 #include "gc/shared/tlab_globals.hpp"
91 #include "gc/shared/weakProcessor.inline.hpp"
92 #include "gc/shared/workerPolicy.hpp"
93 #include "logging/log.hpp"
94 #include "memory/allocation.hpp"
95 #include "memory/iterator.hpp"
96 #include "memory/heapInspection.hpp"
97 #include "memory/metaspaceUtils.hpp"
98 #include "memory/resourceArea.hpp"
99 #include "memory/universe.hpp"
100 #include "oops/access.inline.hpp"
101 #include "oops/compressedOops.inline.hpp"
102 #include "oops/oop.inline.hpp"
103 #include "runtime/atomic.hpp"
104 #include "runtime/handles.inline.hpp"
105 #include "runtime/init.hpp"
1758 // BOT updates. So we'll tag the dummy region as eden to avoid that.
1759 dummy_region->set_eden();
1760 // Make sure it's full.
1761 dummy_region->set_top(dummy_region->end());
1762 G1AllocRegion::setup(this, dummy_region);
1763
1764 _allocator->init_mutator_alloc_regions();
1765
1766 // Do create of the monitoring and management support so that
1767 // values in the heap have been properly initialized.
1768 _g1mm = new G1MonitoringSupport(this);
1769
1770 _preserved_marks_set.init(ParallelGCThreads);
1771
1772 _collection_set.initialize(max_reserved_regions());
1773
1774 _regions_failed_evacuation = NEW_C_HEAP_ARRAY(volatile bool, max_regions(), mtGC);
1775
1776 G1InitLogger::print();
1777
1778 SlidingForwarding::initialize(heap_rs.region(), HeapRegion::GrainWords);
1779
1780 return JNI_OK;
1781 }
1782
1783 void G1CollectedHeap::stop() {
1784 // Stop all concurrent threads. We do this to make sure these threads
1785 // do not continue to execute and access resources (e.g. logging)
1786 // that are destroyed during shutdown.
1787 _cr->stop();
1788 _service_thread->stop();
1789 _cm_thread->stop();
1790 }
1791
1792 void G1CollectedHeap::safepoint_synchronize_begin() {
1793 SuspendibleThreadSet::synchronize();
1794 }
1795
1796 void G1CollectedHeap::safepoint_synchronize_end() {
1797 SuspendibleThreadSet::desynchronize();
1798 }
1799
|