30 #include "code/icBuffer.hpp"
31 #include "gc/g1/g1Allocator.inline.hpp"
32 #include "gc/g1/g1Arguments.hpp"
33 #include "gc/g1/g1BarrierSet.hpp"
34 #include "gc/g1/g1CardTableEntryClosure.hpp"
35 #include "gc/g1/g1CollectedHeap.inline.hpp"
36 #include "gc/g1/g1CollectionSet.hpp"
37 #include "gc/g1/g1CollectorState.hpp"
38 #include "gc/g1/g1ConcurrentRefine.hpp"
39 #include "gc/g1/g1ConcurrentRefineThread.hpp"
40 #include "gc/g1/g1ConcurrentMarkThread.inline.hpp"
41 #include "gc/g1/g1DirtyCardQueue.hpp"
42 #include "gc/g1/g1EvacStats.inline.hpp"
43 #include "gc/g1/g1FullCollector.hpp"
44 #include "gc/g1/g1GCParPhaseTimesTracker.hpp"
45 #include "gc/g1/g1GCPhaseTimes.hpp"
46 #include "gc/g1/g1HeapSizingPolicy.hpp"
47 #include "gc/g1/g1HeapTransition.hpp"
48 #include "gc/g1/g1HeapVerifier.hpp"
49 #include "gc/g1/g1HotCardCache.hpp"
50 #include "gc/g1/g1MemoryPool.hpp"
51 #include "gc/g1/g1OopClosures.inline.hpp"
52 #include "gc/g1/g1ParallelCleaning.hpp"
53 #include "gc/g1/g1ParScanThreadState.inline.hpp"
54 #include "gc/g1/g1Policy.hpp"
55 #include "gc/g1/g1RedirtyCardsQueue.hpp"
56 #include "gc/g1/g1RegionToSpaceMapper.hpp"
57 #include "gc/g1/g1RemSet.hpp"
58 #include "gc/g1/g1RootClosures.hpp"
59 #include "gc/g1/g1RootProcessor.hpp"
60 #include "gc/g1/g1SATBMarkQueueSet.hpp"
61 #include "gc/g1/g1StringDedup.hpp"
62 #include "gc/g1/g1ThreadLocalData.hpp"
63 #include "gc/g1/g1Trace.hpp"
64 #include "gc/g1/g1YCTypes.hpp"
65 #include "gc/g1/g1YoungRemSetSamplingThread.hpp"
66 #include "gc/g1/g1VMOperations.hpp"
67 #include "gc/g1/heapRegion.inline.hpp"
68 #include "gc/g1/heapRegionRemSet.hpp"
69 #include "gc/g1/heapRegionSet.inline.hpp"
1806 // We'll re-use the same region whether the alloc region will
1807 // require BOT updates or not and, if it doesn't, then a non-young
1808 // region will complain that it cannot support allocations without
1809 // BOT updates. So we'll tag the dummy region as eden to avoid that.
1810 dummy_region->set_eden();
1811 // Make sure it's full.
1812 dummy_region->set_top(dummy_region->end());
1813 G1AllocRegion::setup(this, dummy_region);
1814
1815 _allocator->init_mutator_alloc_regions();
1816
1817 // Do create of the monitoring and management support so that
1818 // values in the heap have been properly initialized.
1819 _g1mm = new G1MonitoringSupport(this);
1820
1821 G1StringDedup::initialize();
1822
1823 _preserved_marks_set.init(ParallelGCThreads);
1824
1825 _collection_set.initialize(max_regions());
1826
1827 return JNI_OK;
1828 }
1829
1830 void G1CollectedHeap::stop() {
1831 // Stop all concurrent threads. We do this to make sure these threads
1832 // do not continue to execute and access resources (e.g. logging)
1833 // that are destroyed during shutdown.
1834 _cr->stop();
1835 _young_gen_sampling_thread->stop();
1836 _cm_thread->stop();
1837 if (G1StringDedup::is_enabled()) {
1838 G1StringDedup::stop();
1839 }
1840 }
1841
1842 void G1CollectedHeap::safepoint_synchronize_begin() {
1843 SuspendibleThreadSet::synchronize();
1844 }
1845
|
30 #include "code/icBuffer.hpp"
31 #include "gc/g1/g1Allocator.inline.hpp"
32 #include "gc/g1/g1Arguments.hpp"
33 #include "gc/g1/g1BarrierSet.hpp"
34 #include "gc/g1/g1CardTableEntryClosure.hpp"
35 #include "gc/g1/g1CollectedHeap.inline.hpp"
36 #include "gc/g1/g1CollectionSet.hpp"
37 #include "gc/g1/g1CollectorState.hpp"
38 #include "gc/g1/g1ConcurrentRefine.hpp"
39 #include "gc/g1/g1ConcurrentRefineThread.hpp"
40 #include "gc/g1/g1ConcurrentMarkThread.inline.hpp"
41 #include "gc/g1/g1DirtyCardQueue.hpp"
42 #include "gc/g1/g1EvacStats.inline.hpp"
43 #include "gc/g1/g1FullCollector.hpp"
44 #include "gc/g1/g1GCParPhaseTimesTracker.hpp"
45 #include "gc/g1/g1GCPhaseTimes.hpp"
46 #include "gc/g1/g1HeapSizingPolicy.hpp"
47 #include "gc/g1/g1HeapTransition.hpp"
48 #include "gc/g1/g1HeapVerifier.hpp"
49 #include "gc/g1/g1HotCardCache.hpp"
50 #include "gc/g1/g1InitLogger.hpp"
51 #include "gc/g1/g1MemoryPool.hpp"
52 #include "gc/g1/g1OopClosures.inline.hpp"
53 #include "gc/g1/g1ParallelCleaning.hpp"
54 #include "gc/g1/g1ParScanThreadState.inline.hpp"
55 #include "gc/g1/g1Policy.hpp"
56 #include "gc/g1/g1RedirtyCardsQueue.hpp"
57 #include "gc/g1/g1RegionToSpaceMapper.hpp"
58 #include "gc/g1/g1RemSet.hpp"
59 #include "gc/g1/g1RootClosures.hpp"
60 #include "gc/g1/g1RootProcessor.hpp"
61 #include "gc/g1/g1SATBMarkQueueSet.hpp"
62 #include "gc/g1/g1StringDedup.hpp"
63 #include "gc/g1/g1ThreadLocalData.hpp"
64 #include "gc/g1/g1Trace.hpp"
65 #include "gc/g1/g1YCTypes.hpp"
66 #include "gc/g1/g1YoungRemSetSamplingThread.hpp"
67 #include "gc/g1/g1VMOperations.hpp"
68 #include "gc/g1/heapRegion.inline.hpp"
69 #include "gc/g1/heapRegionRemSet.hpp"
70 #include "gc/g1/heapRegionSet.inline.hpp"
1807 // We'll re-use the same region whether the alloc region will
1808 // require BOT updates or not and, if it doesn't, then a non-young
1809 // region will complain that it cannot support allocations without
1810 // BOT updates. So we'll tag the dummy region as eden to avoid that.
1811 dummy_region->set_eden();
1812 // Make sure it's full.
1813 dummy_region->set_top(dummy_region->end());
1814 G1AllocRegion::setup(this, dummy_region);
1815
1816 _allocator->init_mutator_alloc_regions();
1817
1818 // Do create of the monitoring and management support so that
1819 // values in the heap have been properly initialized.
1820 _g1mm = new G1MonitoringSupport(this);
1821
1822 G1StringDedup::initialize();
1823
1824 _preserved_marks_set.init(ParallelGCThreads);
1825
1826 _collection_set.initialize(max_regions());
1827
1828 G1InitLogger::print();
1829
1830 return JNI_OK;
1831 }
1832
1833 void G1CollectedHeap::stop() {
1834 // Stop all concurrent threads. We do this to make sure these threads
1835 // do not continue to execute and access resources (e.g. logging)
1836 // that are destroyed during shutdown.
1837 _cr->stop();
1838 _young_gen_sampling_thread->stop();
1839 _cm_thread->stop();
1840 if (G1StringDedup::is_enabled()) {
1841 G1StringDedup::stop();
1842 }
1843 }
1844
1845 void G1CollectedHeap::safepoint_synchronize_begin() {
1846 SuspendibleThreadSet::synchronize();
1847 }
1848
|