Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/arguments.cpp @ 8003:3c9bc17b9403
Merge
author | bpittore |
---|---|
date | Thu, 07 Feb 2013 16:05:48 -0500 |
parents | 10d5f25a7c67 8391fdd36e1f |
children | b8d5d7a6c94c 309460dcedf7 9e2da96f9976 1cabf9c80e84 |
comparison
equal
deleted
inserted
replaced
7989:454d7cc622ab | 8003:3c9bc17b9403 |
---|---|
36 #include "runtime/globals_extension.hpp" | 36 #include "runtime/globals_extension.hpp" |
37 #include "runtime/java.hpp" | 37 #include "runtime/java.hpp" |
38 #include "services/management.hpp" | 38 #include "services/management.hpp" |
39 #include "services/memTracker.hpp" | 39 #include "services/memTracker.hpp" |
40 #include "utilities/defaultStream.hpp" | 40 #include "utilities/defaultStream.hpp" |
41 #include "utilities/macros.hpp" | |
41 #include "utilities/taskqueue.hpp" | 42 #include "utilities/taskqueue.hpp" |
42 #ifdef TARGET_OS_FAMILY_linux | 43 #ifdef TARGET_OS_FAMILY_linux |
43 # include "os_linux.inline.hpp" | 44 # include "os_linux.inline.hpp" |
44 #endif | 45 #endif |
45 #ifdef TARGET_OS_FAMILY_solaris | 46 #ifdef TARGET_OS_FAMILY_solaris |
49 # include "os_windows.inline.hpp" | 50 # include "os_windows.inline.hpp" |
50 #endif | 51 #endif |
51 #ifdef TARGET_OS_FAMILY_bsd | 52 #ifdef TARGET_OS_FAMILY_bsd |
52 # include "os_bsd.inline.hpp" | 53 # include "os_bsd.inline.hpp" |
53 #endif | 54 #endif |
54 #ifndef SERIALGC | 55 #if INCLUDE_ALL_GCS |
55 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" | 56 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" |
56 #endif | 57 #endif // INCLUDE_ALL_GCS |
57 | 58 |
58 // Note: This is a special bug reporting site for the JVM | 59 // Note: This is a special bug reporting site for the JVM |
59 #define DEFAULT_VENDOR_URL_BUG "http://bugreport.sun.com/bugreport/crash.jsp" | 60 #define DEFAULT_VENDOR_URL_BUG "http://bugreport.sun.com/bugreport/crash.jsp" |
60 #define DEFAULT_JAVA_LAUNCHER "generic" | 61 #define DEFAULT_JAVA_LAUNCHER "generic" |
61 | 62 |
1087 if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) { | 1088 if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) { |
1088 FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 2); | 1089 FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 2); |
1089 } | 1090 } |
1090 } | 1091 } |
1091 | 1092 |
1092 #if INCLUDE_ALTERNATE_GCS | 1093 #if INCLUDE_ALL_GCS |
1093 static void disable_adaptive_size_policy(const char* collector_name) { | 1094 static void disable_adaptive_size_policy(const char* collector_name) { |
1094 if (UseAdaptiveSizePolicy) { | 1095 if (UseAdaptiveSizePolicy) { |
1095 if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) { | 1096 if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) { |
1096 warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.", | 1097 warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.", |
1097 collector_name); | 1098 collector_name); |
1299 tty->print_cr("MarkStackSize: %uk MarkStackSizeMax: %uk", | 1300 tty->print_cr("MarkStackSize: %uk MarkStackSizeMax: %uk", |
1300 MarkStackSize / K, MarkStackSizeMax / K); | 1301 MarkStackSize / K, MarkStackSizeMax / K); |
1301 tty->print_cr("ConcGCThreads: %u", ConcGCThreads); | 1302 tty->print_cr("ConcGCThreads: %u", ConcGCThreads); |
1302 } | 1303 } |
1303 } | 1304 } |
1304 #endif // INCLUDE_ALTERNATE_GCS | 1305 #endif // INCLUDE_ALL_GCS |
1305 | 1306 |
1306 void set_object_alignment() { | 1307 void set_object_alignment() { |
1307 // Object alignment. | 1308 // Object alignment. |
1308 assert(is_power_of_2(ObjectAlignmentInBytes), "ObjectAlignmentInBytes must be power of 2"); | 1309 assert(is_power_of_2(ObjectAlignmentInBytes), "ObjectAlignmentInBytes must be power of 2"); |
1309 MinObjAlignmentInBytes = ObjectAlignmentInBytes; | 1310 MinObjAlignmentInBytes = ObjectAlignmentInBytes; |
1316 LogMinObjAlignment = LogMinObjAlignmentInBytes - LogHeapWordSize; | 1317 LogMinObjAlignment = LogMinObjAlignmentInBytes - LogHeapWordSize; |
1317 | 1318 |
1318 // Oop encoding heap max | 1319 // Oop encoding heap max |
1319 OopEncodingHeapMax = (uint64_t(max_juint) + 1) << LogMinObjAlignmentInBytes; | 1320 OopEncodingHeapMax = (uint64_t(max_juint) + 1) << LogMinObjAlignmentInBytes; |
1320 | 1321 |
1321 #if INCLUDE_ALTERNATE_GCS | 1322 #if INCLUDE_ALL_GCS |
1322 // Set CMS global values | 1323 // Set CMS global values |
1323 CompactibleFreeListSpace::set_cms_values(); | 1324 CompactibleFreeListSpace::set_cms_values(); |
1324 #endif // INCLUDE_ALTERNATE_GCS | 1325 #endif // INCLUDE_ALL_GCS |
1325 } | 1326 } |
1326 | 1327 |
1327 bool verify_object_alignment() { | 1328 bool verify_object_alignment() { |
1328 // Object alignment. | 1329 // Object alignment. |
1329 if (!is_power_of_2(ObjectAlignmentInBytes)) { | 1330 if (!is_power_of_2(ObjectAlignmentInBytes)) { |
1996 status = false; | 1997 status = false; |
1997 } | 1998 } |
1998 | 1999 |
1999 status = status && verify_min_value(ParGCArrayScanChunk, 1, "ParGCArrayScanChunk"); | 2000 status = status && verify_min_value(ParGCArrayScanChunk, 1, "ParGCArrayScanChunk"); |
2000 | 2001 |
2001 #ifndef SERIALGC | 2002 #if INCLUDE_ALL_GCS |
2002 if (UseG1GC) { | 2003 if (UseG1GC) { |
2003 status = status && verify_percentage(InitiatingHeapOccupancyPercent, | 2004 status = status && verify_percentage(InitiatingHeapOccupancyPercent, |
2004 "InitiatingHeapOccupancyPercent"); | 2005 "InitiatingHeapOccupancyPercent"); |
2005 status = status && verify_min_value(G1RefProcDrainInterval, 1, | 2006 status = status && verify_min_value(G1RefProcDrainInterval, 1, |
2006 "G1RefProcDrainInterval"); | 2007 "G1RefProcDrainInterval"); |
2007 status = status && verify_min_value((intx)G1ConcMarkStepDurationMillis, 1, | 2008 status = status && verify_min_value((intx)G1ConcMarkStepDurationMillis, 1, |
2008 "G1ConcMarkStepDurationMillis"); | 2009 "G1ConcMarkStepDurationMillis"); |
2009 } | 2010 } |
2010 #endif | 2011 #endif // INCLUDE_ALL_GCS |
2011 | 2012 |
2012 status = status && verify_interval(RefDiscoveryPolicy, | 2013 status = status && verify_interval(RefDiscoveryPolicy, |
2013 ReferenceProcessor::DiscoveryPolicyMin, | 2014 ReferenceProcessor::DiscoveryPolicyMin, |
2014 ReferenceProcessor::DiscoveryPolicyMax, | 2015 ReferenceProcessor::DiscoveryPolicyMax, |
2015 "RefDiscoveryPolicy"); | 2016 "RefDiscoveryPolicy"); |
3174 | 3175 |
3175 #ifdef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD. | 3176 #ifdef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD. |
3176 UNSUPPORTED_OPTION(UseLargePages, "-XX:+UseLargePages"); | 3177 UNSUPPORTED_OPTION(UseLargePages, "-XX:+UseLargePages"); |
3177 #endif | 3178 #endif |
3178 | 3179 |
3179 #if !INCLUDE_ALTERNATE_GCS | 3180 #if !INCLUDE_ALL_GCS |
3180 if (UseParallelGC) { | 3181 if (UseParallelGC) { |
3181 warning("Parallel GC is not supported in this VM. Using Serial GC."); | 3182 warning("Parallel GC is not supported in this VM. Using Serial GC."); |
3182 } | 3183 } |
3183 if (UseParallelOldGC) { | 3184 if (UseParallelOldGC) { |
3184 warning("Parallel Old GC is not supported in this VM. Using Serial GC."); | 3185 warning("Parallel Old GC is not supported in this VM. Using Serial GC."); |
3187 warning("Concurrent Mark Sweep GC is not supported in this VM. Using Serial GC."); | 3188 warning("Concurrent Mark Sweep GC is not supported in this VM. Using Serial GC."); |
3188 } | 3189 } |
3189 if (UseParNewGC) { | 3190 if (UseParNewGC) { |
3190 warning("Par New GC is not supported in this VM. Using Serial GC."); | 3191 warning("Par New GC is not supported in this VM. Using Serial GC."); |
3191 } | 3192 } |
3192 #endif // INCLUDE_ALTERNATE_GCS | 3193 #endif // INCLUDE_ALL_GCS |
3193 | 3194 |
3194 #ifndef PRODUCT | 3195 #ifndef PRODUCT |
3195 if (TraceBytecodesAt != 0) { | 3196 if (TraceBytecodesAt != 0) { |
3196 TraceBytecodes = true; | 3197 TraceBytecodes = true; |
3197 } | 3198 } |
3234 } | 3235 } |
3235 | 3236 |
3236 // Set object alignment values. | 3237 // Set object alignment values. |
3237 set_object_alignment(); | 3238 set_object_alignment(); |
3238 | 3239 |
3239 #ifdef SERIALGC | 3240 #if !INCLUDE_ALL_GCS |
3240 force_serial_gc(); | 3241 force_serial_gc(); |
3241 #endif // SERIALGC | 3242 #endif // INCLUDE_ALL_GCS |
3242 #if !INCLUDE_CDS | 3243 #if !INCLUDE_CDS |
3243 no_shared_spaces(); | 3244 no_shared_spaces(); |
3244 #endif // INCLUDE_CDS | 3245 #endif // INCLUDE_CDS |
3245 | 3246 |
3246 // Set flags based on ergonomics. | 3247 // Set flags based on ergonomics. |
3264 } | 3265 } |
3265 | 3266 |
3266 // Set heap size based on available physical memory | 3267 // Set heap size based on available physical memory |
3267 set_heap_size(); | 3268 set_heap_size(); |
3268 | 3269 |
3269 #if INCLUDE_ALTERNATE_GCS | 3270 #if INCLUDE_ALL_GCS |
3270 // Set per-collector flags | 3271 // Set per-collector flags |
3271 if (UseParallelGC || UseParallelOldGC) { | 3272 if (UseParallelGC || UseParallelOldGC) { |
3272 set_parallel_gc_flags(); | 3273 set_parallel_gc_flags(); |
3273 } else if (UseConcMarkSweepGC) { // should be done before ParNew check below | 3274 } else if (UseConcMarkSweepGC) { // should be done before ParNew check below |
3274 set_cms_and_parnew_gc_flags(); | 3275 set_cms_and_parnew_gc_flags(); |
3276 set_parnew_gc_flags(); | 3277 set_parnew_gc_flags(); |
3277 } else if (UseG1GC) { | 3278 } else if (UseG1GC) { |
3278 set_g1_gc_flags(); | 3279 set_g1_gc_flags(); |
3279 } | 3280 } |
3280 check_deprecated_gcs(); | 3281 check_deprecated_gcs(); |
3281 #endif // INCLUDE_ALTERNATE_GCS | 3282 #else // INCLUDE_ALL_GCS |
3282 | |
3283 #ifdef SERIALGC | |
3284 assert(verify_serial_gc_flags(), "SerialGC unset"); | 3283 assert(verify_serial_gc_flags(), "SerialGC unset"); |
3285 #endif // SERIALGC | 3284 #endif // INCLUDE_ALL_GCS |
3286 | 3285 |
3287 // Set bytecode rewriting flags | 3286 // Set bytecode rewriting flags |
3288 set_bytecode_flags(); | 3287 set_bytecode_flags(); |
3289 | 3288 |
3290 // Set flags if Aggressive optimization flags (-XX:+AggressiveOpts) enabled. | 3289 // Set flags if Aggressive optimization flags (-XX:+AggressiveOpts) enabled. |
3374 | 3373 |
3375 return JNI_OK; | 3374 return JNI_OK; |
3376 } | 3375 } |
3377 | 3376 |
3378 jint Arguments::adjust_after_os() { | 3377 jint Arguments::adjust_after_os() { |
3379 #if INCLUDE_ALTERNATE_GCS | 3378 #if INCLUDE_ALL_GCS |
3380 if (UseParallelGC || UseParallelOldGC) { | 3379 if (UseParallelGC || UseParallelOldGC) { |
3381 if (UseNUMA) { | 3380 if (UseNUMA) { |
3382 if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) { | 3381 if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) { |
3383 FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M); | 3382 FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M); |
3384 } | 3383 } |
3385 // For those collectors or operating systems (eg, Windows) that do | 3384 // For those collectors or operating systems (eg, Windows) that do |
3386 // not support full UseNUMA, we will map to UseNUMAInterleaving for now | 3385 // not support full UseNUMA, we will map to UseNUMAInterleaving for now |
3387 UseNUMAInterleaving = true; | 3386 UseNUMAInterleaving = true; |
3388 } | 3387 } |
3389 } | 3388 } |
3390 #endif | 3389 #endif // INCLUDE_ALL_GCS |
3391 return JNI_OK; | 3390 return JNI_OK; |
3392 } | 3391 } |
3393 | 3392 |
3394 int Arguments::PropertyList_count(SystemProperty* pl) { | 3393 int Arguments::PropertyList_count(SystemProperty* pl) { |
3395 int count = 0; | 3394 int count = 0; |