30 #include "classfile/systemDictionary.hpp"
31 #include "classfile/vmSymbols.hpp"
32 #include "code/codeCache.hpp"
33 #include "code/icBuffer.hpp"
34 #include "gc/serial/defNewGeneration.hpp"
35 #include "gc/shared/adaptiveSizePolicy.hpp"
36 #include "gc/shared/cardTableBarrierSet.hpp"
37 #include "gc/shared/cardTableRS.hpp"
38 #include "gc/shared/collectedHeap.inline.hpp"
39 #include "gc/shared/collectorCounters.hpp"
40 #include "gc/shared/gcId.hpp"
41 #include "gc/shared/gcLocker.hpp"
42 #include "gc/shared/gcPolicyCounters.hpp"
43 #include "gc/shared/gcTrace.hpp"
44 #include "gc/shared/gcTraceTime.inline.hpp"
45 #include "gc/shared/genArguments.hpp"
46 #include "gc/shared/gcVMOperations.hpp"
47 #include "gc/shared/genCollectedHeap.hpp"
48 #include "gc/shared/genOopClosures.inline.hpp"
49 #include "gc/shared/generationSpec.hpp"
50 #include "gc/shared/locationPrinter.inline.hpp"
51 #include "gc/shared/oopStorageParState.inline.hpp"
52 #include "gc/shared/scavengableNMethods.hpp"
53 #include "gc/shared/space.hpp"
54 #include "gc/shared/strongRootsScope.hpp"
55 #include "gc/shared/weakProcessor.hpp"
56 #include "gc/shared/workgroup.hpp"
57 #include "memory/filemap.hpp"
58 #include "memory/iterator.hpp"
59 #include "memory/metaspaceCounters.hpp"
60 #include "memory/resourceArea.hpp"
61 #include "memory/universe.hpp"
62 #include "oops/oop.inline.hpp"
63 #include "runtime/biasedLocking.hpp"
64 #include "runtime/flags/flagSetting.hpp"
65 #include "runtime/handles.hpp"
66 #include "runtime/handles.inline.hpp"
67 #include "runtime/java.hpp"
68 #include "runtime/vmThread.hpp"
69 #include "services/management.hpp"
112 vm_shutdown_during_initialization(
113 "Could not reserve enough space for object heap");
114 return JNI_ENOMEM;
115 }
116
117 initialize_reserved_region(heap_rs);
118
119 _rem_set = create_rem_set(heap_rs.region());
120 _rem_set->initialize();
121 CardTableBarrierSet *bs = new CardTableBarrierSet(_rem_set);
122 bs->initialize();
123 BarrierSet::set_barrier_set(bs);
124
125 ReservedSpace young_rs = heap_rs.first_part(_young_gen_spec->max_size());
126 _young_gen = _young_gen_spec->init(young_rs, rem_set());
127 ReservedSpace old_rs = heap_rs.last_part(_young_gen_spec->max_size());
128
129 old_rs = old_rs.first_part(_old_gen_spec->max_size());
130 _old_gen = _old_gen_spec->init(old_rs, rem_set());
131 clear_incremental_collection_failed();
132
133 return JNI_OK;
134 }
135
136 CardTableRS* GenCollectedHeap::create_rem_set(const MemRegion& reserved_region) {
137 return new CardTableRS(reserved_region, false /* scan_concurrently */);
138 }
139
140 void GenCollectedHeap::initialize_size_policy(size_t init_eden_size,
141 size_t init_promo_size,
142 size_t init_survivor_size) {
143 const double max_gc_pause_sec = ((double) MaxGCPauseMillis) / 1000.0;
144 _size_policy = new AdaptiveSizePolicy(init_eden_size,
145 init_promo_size,
146 init_survivor_size,
147 max_gc_pause_sec,
148 GCTimeRatio);
149 }
150
151 ReservedHeapSpace GenCollectedHeap::allocate(size_t alignment) {
|
30 #include "classfile/systemDictionary.hpp"
31 #include "classfile/vmSymbols.hpp"
32 #include "code/codeCache.hpp"
33 #include "code/icBuffer.hpp"
34 #include "gc/serial/defNewGeneration.hpp"
35 #include "gc/shared/adaptiveSizePolicy.hpp"
36 #include "gc/shared/cardTableBarrierSet.hpp"
37 #include "gc/shared/cardTableRS.hpp"
38 #include "gc/shared/collectedHeap.inline.hpp"
39 #include "gc/shared/collectorCounters.hpp"
40 #include "gc/shared/gcId.hpp"
41 #include "gc/shared/gcLocker.hpp"
42 #include "gc/shared/gcPolicyCounters.hpp"
43 #include "gc/shared/gcTrace.hpp"
44 #include "gc/shared/gcTraceTime.inline.hpp"
45 #include "gc/shared/genArguments.hpp"
46 #include "gc/shared/gcVMOperations.hpp"
47 #include "gc/shared/genCollectedHeap.hpp"
48 #include "gc/shared/genOopClosures.inline.hpp"
49 #include "gc/shared/generationSpec.hpp"
50 #include "gc/shared/gcInitLogger.hpp"
51 #include "gc/shared/locationPrinter.inline.hpp"
52 #include "gc/shared/oopStorageParState.inline.hpp"
53 #include "gc/shared/scavengableNMethods.hpp"
54 #include "gc/shared/space.hpp"
55 #include "gc/shared/strongRootsScope.hpp"
56 #include "gc/shared/weakProcessor.hpp"
57 #include "gc/shared/workgroup.hpp"
58 #include "memory/filemap.hpp"
59 #include "memory/iterator.hpp"
60 #include "memory/metaspaceCounters.hpp"
61 #include "memory/resourceArea.hpp"
62 #include "memory/universe.hpp"
63 #include "oops/oop.inline.hpp"
64 #include "runtime/biasedLocking.hpp"
65 #include "runtime/flags/flagSetting.hpp"
66 #include "runtime/handles.hpp"
67 #include "runtime/handles.inline.hpp"
68 #include "runtime/java.hpp"
69 #include "runtime/vmThread.hpp"
70 #include "services/management.hpp"
113 vm_shutdown_during_initialization(
114 "Could not reserve enough space for object heap");
115 return JNI_ENOMEM;
116 }
117
118 initialize_reserved_region(heap_rs);
119
120 _rem_set = create_rem_set(heap_rs.region());
121 _rem_set->initialize();
122 CardTableBarrierSet *bs = new CardTableBarrierSet(_rem_set);
123 bs->initialize();
124 BarrierSet::set_barrier_set(bs);
125
126 ReservedSpace young_rs = heap_rs.first_part(_young_gen_spec->max_size());
127 _young_gen = _young_gen_spec->init(young_rs, rem_set());
128 ReservedSpace old_rs = heap_rs.last_part(_young_gen_spec->max_size());
129
130 old_rs = old_rs.first_part(_old_gen_spec->max_size());
131 _old_gen = _old_gen_spec->init(old_rs, rem_set());
132 clear_incremental_collection_failed();
133
134 GCInitLogger::print();
135
136 return JNI_OK;
137 }
138
139 CardTableRS* GenCollectedHeap::create_rem_set(const MemRegion& reserved_region) {
140 return new CardTableRS(reserved_region, false /* scan_concurrently */);
141 }
142
143 void GenCollectedHeap::initialize_size_policy(size_t init_eden_size,
144 size_t init_promo_size,
145 size_t init_survivor_size) {
146 const double max_gc_pause_sec = ((double) MaxGCPauseMillis) / 1000.0;
147 _size_policy = new AdaptiveSizePolicy(init_eden_size,
148 init_promo_size,
149 init_survivor_size,
150 max_gc_pause_sec,
151 GCTimeRatio);
152 }
153
154 ReservedHeapSpace GenCollectedHeap::allocate(size_t alignment) {
|