src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/runtime

src/share/vm/runtime/arguments.cpp

Print this page




1488     }
1489   }
1490 #endif // _LP64
1491 #endif // !ZERO
1492 }
1493 
1494 void Arguments::set_conservative_max_heap_alignment() {
1495   // The conservative maximum required alignment for the heap is the maximum of
1496   // the alignments imposed by several sources: any requirements from the heap
1497   // itself, the collector policy and the maximum page size we may run the VM
1498   // with.
1499   size_t heap_alignment = GenCollectedHeap::conservative_max_heap_alignment();
1500 #if INCLUDE_ALL_GCS
1501   if (UseParallelGC) {
1502     heap_alignment = ParallelScavengeHeap::conservative_max_heap_alignment();
1503   } else if (UseG1GC) {
1504     heap_alignment = G1CollectedHeap::conservative_max_heap_alignment();
1505   }
1506 #endif // INCLUDE_ALL_GCS
1507   _conservative_max_heap_alignment = MAX3(heap_alignment, os::max_page_size(),
1508     CollectorPolicy::compute_max_alignment());
1509 }
1510 
1511 void Arguments::set_ergonomics_flags() {
1512 
1513   if (os::is_server_class_machine()) {
1514     // If no other collector is requested explicitly,
1515     // let the VM select the collector based on
1516     // machine class and automatic selection policy.
1517     if (!UseSerialGC &&
1518         !UseConcMarkSweepGC &&
1519         !UseG1GC &&
1520         !UseParNewGC &&
1521         FLAG_IS_DEFAULT(UseParallelGC)) {
1522       if (should_auto_select_low_pause_collector()) {
1523         FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true);
1524       } else {
1525         FLAG_SET_ERGO(bool, UseParallelGC, true);
1526       }
1527     }
1528   }


2148       warning("Heap verification at shutdown disabled "
2149               "(due to current incompatibility with FLSVerifyAllHeapReferences)");
2150       VerifyBeforeExit = false; // Disable verification at shutdown
2151     }
2152   }
2153 
2154   // Note: only executed in non-PRODUCT mode
2155   if (!UseAsyncConcMarkSweepGC &&
2156       (ExplicitGCInvokesConcurrent ||
2157        ExplicitGCInvokesConcurrentAndUnloadsClasses)) {
2158     jio_fprintf(defaultStream::error_stream(),
2159                 "error: +ExplicitGCInvokesConcurrent[AndUnloadsClasses] conflicts"
2160                 " with -UseAsyncConcMarkSweepGC");
2161     status = false;
2162   }
2163 
2164   status = status && verify_min_value(ParGCArrayScanChunk, 1, "ParGCArrayScanChunk");
2165 
2166 #if INCLUDE_ALL_GCS
2167   if (UseG1GC) {




2168     status = status && verify_percentage(InitiatingHeapOccupancyPercent,
2169                                          "InitiatingHeapOccupancyPercent");
2170     status = status && verify_min_value(G1RefProcDrainInterval, 1,
2171                                         "G1RefProcDrainInterval");
2172     status = status && verify_min_value((intx)G1ConcMarkStepDurationMillis, 1,
2173                                         "G1ConcMarkStepDurationMillis");
2174     status = status && verify_interval(G1ConcRSHotCardLimit, 0, max_jubyte,
2175                                        "G1ConcRSHotCardLimit");
2176     status = status && verify_interval(G1ConcRSLogCacheSize, 0, 31,
2177                                        "G1ConcRSLogCacheSize");
2178   }
2179   if (UseConcMarkSweepGC) {
2180     status = status && verify_min_value(CMSOldPLABNumRefills, 1, "CMSOldPLABNumRefills");
2181     status = status && verify_min_value(CMSOldPLABToleranceFactor, 1, "CMSOldPLABToleranceFactor");
2182     status = status && verify_min_value(CMSOldPLABMax, 1, "CMSOldPLABMax");
2183     status = status && verify_interval(CMSOldPLABMin, 1, CMSOldPLABMax, "CMSOldPLABMin");
2184 
2185     status = status && verify_min_value(CMSYoungGenPerWorker, 1, "CMSYoungGenPerWorker");
2186 
2187     status = status && verify_min_value(CMSSamplingGrain, 1, "CMSSamplingGrain");




1488     }
1489   }
1490 #endif // _LP64
1491 #endif // !ZERO
1492 }
1493 
1494 void Arguments::set_conservative_max_heap_alignment() {
1495   // The conservative maximum required alignment for the heap is the maximum of
1496   // the alignments imposed by several sources: any requirements from the heap
1497   // itself, the collector policy and the maximum page size we may run the VM
1498   // with.
1499   size_t heap_alignment = GenCollectedHeap::conservative_max_heap_alignment();
1500 #if INCLUDE_ALL_GCS
1501   if (UseParallelGC) {
1502     heap_alignment = ParallelScavengeHeap::conservative_max_heap_alignment();
1503   } else if (UseG1GC) {
1504     heap_alignment = G1CollectedHeap::conservative_max_heap_alignment();
1505   }
1506 #endif // INCLUDE_ALL_GCS
1507   _conservative_max_heap_alignment = MAX3(heap_alignment, os::max_page_size(),
1508     CollectorPolicy::compute_heap_alignment());
1509 }
1510 
1511 void Arguments::set_ergonomics_flags() {
1512 
1513   if (os::is_server_class_machine()) {
1514     // If no other collector is requested explicitly,
1515     // let the VM select the collector based on
1516     // machine class and automatic selection policy.
1517     if (!UseSerialGC &&
1518         !UseConcMarkSweepGC &&
1519         !UseG1GC &&
1520         !UseParNewGC &&
1521         FLAG_IS_DEFAULT(UseParallelGC)) {
1522       if (should_auto_select_low_pause_collector()) {
1523         FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true);
1524       } else {
1525         FLAG_SET_ERGO(bool, UseParallelGC, true);
1526       }
1527     }
1528   }


2148       warning("Heap verification at shutdown disabled "
2149               "(due to current incompatibility with FLSVerifyAllHeapReferences)");
2150       VerifyBeforeExit = false; // Disable verification at shutdown
2151     }
2152   }
2153 
2154   // Note: only executed in non-PRODUCT mode
2155   if (!UseAsyncConcMarkSweepGC &&
2156       (ExplicitGCInvokesConcurrent ||
2157        ExplicitGCInvokesConcurrentAndUnloadsClasses)) {
2158     jio_fprintf(defaultStream::error_stream(),
2159                 "error: +ExplicitGCInvokesConcurrent[AndUnloadsClasses] conflicts"
2160                 " with -UseAsyncConcMarkSweepGC");
2161     status = false;
2162   }
2163 
2164   status = status && verify_min_value(ParGCArrayScanChunk, 1, "ParGCArrayScanChunk");
2165 
2166 #if INCLUDE_ALL_GCS
2167   if (UseG1GC) {
2168     status = status && verify_percentage(G1NewSizePercent, "G1NewSizePercent");
2169     status = status && verify_percentage(G1MaxNewSizePercent, "G1MaxNewSizePercent");
2170     status = status && verify_interval(G1NewSizePercent, 0, G1MaxNewSizePercent, "G1NewSizePercent");
2171  
2172     status = status && verify_percentage(InitiatingHeapOccupancyPercent,
2173                                          "InitiatingHeapOccupancyPercent");
2174     status = status && verify_min_value(G1RefProcDrainInterval, 1,
2175                                         "G1RefProcDrainInterval");
2176     status = status && verify_min_value((intx)G1ConcMarkStepDurationMillis, 1,
2177                                         "G1ConcMarkStepDurationMillis");
2178     status = status && verify_interval(G1ConcRSHotCardLimit, 0, max_jubyte,
2179                                        "G1ConcRSHotCardLimit");
2180     status = status && verify_interval(G1ConcRSLogCacheSize, 0, 31,
2181                                        "G1ConcRSLogCacheSize");
2182   }
2183   if (UseConcMarkSweepGC) {
2184     status = status && verify_min_value(CMSOldPLABNumRefills, 1, "CMSOldPLABNumRefills");
2185     status = status && verify_min_value(CMSOldPLABToleranceFactor, 1, "CMSOldPLABToleranceFactor");
2186     status = status && verify_min_value(CMSOldPLABMax, 1, "CMSOldPLABMax");
2187     status = status && verify_interval(CMSOldPLABMin, 1, CMSOldPLABMax, "CMSOldPLABMin");
2188 
2189     status = status && verify_min_value(CMSYoungGenPerWorker, 1, "CMSYoungGenPerWorker");
2190 
2191     status = status && verify_min_value(CMSSamplingGrain, 1, "CMSSamplingGrain");


src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File