comparison src/share/vm/memory/collectorPolicy.cpp @ 10239:f14063dcd52a

8013791: G1: G1CollectorPolicy::initialize_flags() may set min_alignment > max_alignment Summary: Make sure max alignemnt is at least as large as min alignment Reviewed-by: johnc, jmasa, tschatzl
author brutisso
date Mon, 06 May 2013 09:16:14 +0200
parents 5a9fa2ba85f0
children d17700c82d7d
comparison
equal deleted inserted replaced
10238:1d0fba8a2a6d 10239:f14063dcd52a
46 #endif // INCLUDE_ALL_GCS 46 #endif // INCLUDE_ALL_GCS
47 47
48 // CollectorPolicy methods. 48 // CollectorPolicy methods.
49 49
50 void CollectorPolicy::initialize_flags() { 50 void CollectorPolicy::initialize_flags() {
51 assert(max_alignment() >= min_alignment(),
52 err_msg("max_alignment: " SIZE_FORMAT " less than min_alignment: " SIZE_FORMAT,
53 max_alignment(), min_alignment()));
54 assert(max_alignment() % min_alignment() == 0,
55 err_msg("max_alignment: " SIZE_FORMAT " not aligned by min_alignment: " SIZE_FORMAT,
56 max_alignment(), min_alignment()));
57
51 if (MetaspaceSize > MaxMetaspaceSize) { 58 if (MetaspaceSize > MaxMetaspaceSize) {
52 MaxMetaspaceSize = MetaspaceSize; 59 MaxMetaspaceSize = MetaspaceSize;
53 } 60 }
54 MetaspaceSize = MAX2(min_alignment(), align_size_down_(MetaspaceSize, min_alignment())); 61 MetaspaceSize = MAX2(min_alignment(), align_size_down_(MetaspaceSize, min_alignment()));
55 // Don't increase Metaspace size limit above specified. 62 // Don't increase Metaspace size limit above specified.
199 206
200 void GenCollectorPolicy::initialize_flags() { 207 void GenCollectorPolicy::initialize_flags() {
201 // All sizes must be multiples of the generation granularity. 208 // All sizes must be multiples of the generation granularity.
202 set_min_alignment((uintx) Generation::GenGrain); 209 set_min_alignment((uintx) Generation::GenGrain);
203 set_max_alignment(compute_max_alignment()); 210 set_max_alignment(compute_max_alignment());
204 assert(max_alignment() >= min_alignment() &&
205 max_alignment() % min_alignment() == 0,
206 "invalid alignment constraints");
207 211
208 CollectorPolicy::initialize_flags(); 212 CollectorPolicy::initialize_flags();
209 213
210 // All generational heaps have a youngest gen; handle those flags here. 214 // All generational heaps have a youngest gen; handle those flags here.
211 215