comparison src/share/vm/runtime/arguments.cpp @ 6948:e522a00b91aa

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
author Doug Simon <doug.simon@oracle.com>
date Mon, 12 Nov 2012 23:14:12 +0100
parents c38f13903fdf 8cb93eadfb6d
children 2cb439954abf edb2d7ed9a01
comparison
equal deleted inserted replaced
6711:ae13cc658b80 6948:e522a00b91aa
256 JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) }, 256 JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) },
257 { "UseParallelOldGCDensePrefix", 257 { "UseParallelOldGCDensePrefix",
258 JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) }, 258 JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) },
259 { "AllowTransitionalJSR292", JDK_Version::jdk(7), JDK_Version::jdk(8) }, 259 { "AllowTransitionalJSR292", JDK_Version::jdk(7), JDK_Version::jdk(8) },
260 { "UseCompressedStrings", JDK_Version::jdk(7), JDK_Version::jdk(8) }, 260 { "UseCompressedStrings", JDK_Version::jdk(7), JDK_Version::jdk(8) },
261 { "CMSPermGenPrecleaningEnabled", JDK_Version::jdk(8), JDK_Version::jdk(9) },
262 { "CMSTriggerPermRatio", JDK_Version::jdk(8), JDK_Version::jdk(9) },
263 { "CMSInitiatingPermOccupancyFraction", JDK_Version::jdk(8), JDK_Version::jdk(9) },
264 { "AdaptivePermSizeWeight", JDK_Version::jdk(8), JDK_Version::jdk(9) },
265 { "PermGenPadding", JDK_Version::jdk(8), JDK_Version::jdk(9) },
266 { "PermMarkSweepDeadRatio", JDK_Version::jdk(8), JDK_Version::jdk(9) },
267 { "PermSize", JDK_Version::jdk(8), JDK_Version::jdk(9) },
268 { "MaxPermSize", JDK_Version::jdk(8), JDK_Version::jdk(9) },
269 { "MinPermHeapExpansion", JDK_Version::jdk(8), JDK_Version::jdk(9) },
270 { "MaxPermHeapExpansion", JDK_Version::jdk(8), JDK_Version::jdk(9) },
271 { "CMSRevisitStackSize", JDK_Version::jdk(8), JDK_Version::jdk(9) },
272 { "PrintRevisitStats", JDK_Version::jdk(8), JDK_Version::jdk(9) },
273 { "UseVectoredExceptions", JDK_Version::jdk(8), JDK_Version::jdk(9) },
261 #ifdef PRODUCT 274 #ifdef PRODUCT
262 { "DesiredMethodLimit", 275 { "DesiredMethodLimit",
263 JDK_Version::jdk_update(7, 2), JDK_Version::jdk(8) }, 276 JDK_Version::jdk_update(7, 2), JDK_Version::jdk(8) },
264 #endif // PRODUCT 277 #endif // PRODUCT
265 { NULL, JDK_Version(0), JDK_Version(0) } 278 { NULL, JDK_Version(0), JDK_Version(0) }
795 } 808 }
796 if (num_jvm_args() > 0) { 809 if (num_jvm_args() > 0) {
797 st->print("jvm_args: "); print_jvm_args_on(st); 810 st->print("jvm_args: "); print_jvm_args_on(st);
798 } 811 }
799 st->print_cr("java_command: %s", java_command() ? java_command() : "<unknown>"); 812 st->print_cr("java_command: %s", java_command() ? java_command() : "<unknown>");
813 if (_java_class_path != NULL) {
814 char* path = _java_class_path->value();
815 st->print_cr("java_class_path (initial): %s", strlen(path) == 0 ? "<not set>" : path );
816 }
800 st->print_cr("Launcher Type: %s", _sun_java_launcher); 817 st->print_cr("Launcher Type: %s", _sun_java_launcher);
801 } 818 }
802 819
803 void Arguments::print_jvm_flags_on(outputStream* st) { 820 void Arguments::print_jvm_flags_on(outputStream* st) {
804 if (_num_jvm_flags > 0) { 821 if (_num_jvm_flags > 0) {
877 bool in_quote = false; 894 bool in_quote = false;
878 char quote_c = 0; 895 char quote_c = 0;
879 bool result = true; 896 bool result = true;
880 897
881 int c = getc(stream); 898 int c = getc(stream);
882 while(c != EOF) { 899 while(c != EOF && pos < (int)(sizeof(token)-1)) {
883 if (in_white_space) { 900 if (in_white_space) {
884 if (in_comment) { 901 if (in_comment) {
885 if (c == '\n') in_comment = false; 902 if (c == '\n') in_comment = false;
886 } else { 903 } else {
887 if (c == '#') in_comment = true; 904 if (c == '#') in_comment = true;
1070 if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) { 1087 if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
1071 FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 2); 1088 FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 2);
1072 } 1089 }
1073 } 1090 }
1074 1091
1075 #ifndef KERNEL 1092 #if INCLUDE_ALTERNATE_GCS
1076 static void disable_adaptive_size_policy(const char* collector_name) { 1093 static void disable_adaptive_size_policy(const char* collector_name) {
1077 if (UseAdaptiveSizePolicy) { 1094 if (UseAdaptiveSizePolicy) {
1078 if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) { 1095 if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) {
1079 warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.", 1096 warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.",
1080 collector_name); 1097 collector_name);
1102 FLAG_SET_DEFAULT(UseParNewGC, false); 1119 FLAG_SET_DEFAULT(UseParNewGC, false);
1103 FLAG_SET_DEFAULT(ParallelGCThreads, 0); 1120 FLAG_SET_DEFAULT(ParallelGCThreads, 0);
1104 } 1121 }
1105 } 1122 }
1106 if (UseParNewGC) { 1123 if (UseParNewGC) {
1107 // CDS doesn't work with ParNew yet
1108 no_shared_spaces();
1109
1110 // By default YoungPLABSize and OldPLABSize are set to 4096 and 1024 respectively, 1124 // By default YoungPLABSize and OldPLABSize are set to 4096 and 1024 respectively,
1111 // these settings are default for Parallel Scavenger. For ParNew+Tenured configuration 1125 // these settings are default for Parallel Scavenger. For ParNew+Tenured configuration
1112 // we set them to 1024 and 1024. 1126 // we set them to 1024 and 1024.
1113 // See CR 6362902. 1127 // See CR 6362902.
1114 if (FLAG_IS_DEFAULT(YoungPLABSize)) { 1128 if (FLAG_IS_DEFAULT(YoungPLABSize)) {
1119 } 1133 }
1120 1134
1121 // AlwaysTenure flag should make ParNew promote all at first collection. 1135 // AlwaysTenure flag should make ParNew promote all at first collection.
1122 // See CR 6362902. 1136 // See CR 6362902.
1123 if (AlwaysTenure) { 1137 if (AlwaysTenure) {
1124 FLAG_SET_CMDLINE(intx, MaxTenuringThreshold, 0); 1138 FLAG_SET_CMDLINE(uintx, MaxTenuringThreshold, 0);
1125 } 1139 }
1126 // When using compressed oops, we use local overflow stacks, 1140 // When using compressed oops, we use local overflow stacks,
1127 // rather than using a global overflow list chained through 1141 // rather than using a global overflow list chained through
1128 // the klass word of the object's pre-image. 1142 // the klass word of the object's pre-image.
1129 if (UseCompressedOops && !ParGCUseLocalOverflow) { 1143 if (UseCompressedOops && !ParGCUseLocalOverflow) {
1148 // unless explicitly forbidden. 1162 // unless explicitly forbidden.
1149 if (FLAG_IS_DEFAULT(UseParNewGC)) { 1163 if (FLAG_IS_DEFAULT(UseParNewGC)) {
1150 FLAG_SET_ERGO(bool, UseParNewGC, true); 1164 FLAG_SET_ERGO(bool, UseParNewGC, true);
1151 } 1165 }
1152 1166
1153 // Turn off AdaptiveSizePolicy for CMS until it is complete. 1167 // Turn off AdaptiveSizePolicy by default for cms until it is complete.
1154 disable_adaptive_size_policy("UseConcMarkSweepGC"); 1168 disable_adaptive_size_policy("UseConcMarkSweepGC");
1155 1169
1156 // In either case, adjust ParallelGCThreads and/or UseParNewGC 1170 // In either case, adjust ParallelGCThreads and/or UseParNewGC
1157 // as needed. 1171 // as needed.
1158 if (UseParNewGC) { 1172 if (UseParNewGC) {
1238 } 1252 }
1239 // Unless explicitly requested otherwise, definitely 1253 // Unless explicitly requested otherwise, definitely
1240 // promote all objects surviving "tenuring_default" scavenges. 1254 // promote all objects surviving "tenuring_default" scavenges.
1241 if (FLAG_IS_DEFAULT(MaxTenuringThreshold) && 1255 if (FLAG_IS_DEFAULT(MaxTenuringThreshold) &&
1242 FLAG_IS_DEFAULT(SurvivorRatio)) { 1256 FLAG_IS_DEFAULT(SurvivorRatio)) {
1243 FLAG_SET_ERGO(intx, MaxTenuringThreshold, tenuring_default); 1257 FLAG_SET_ERGO(uintx, MaxTenuringThreshold, tenuring_default);
1244 } 1258 }
1245 // If we decided above (or user explicitly requested) 1259 // If we decided above (or user explicitly requested)
1246 // `promote all' (via MaxTenuringThreshold := 0), 1260 // `promote all' (via MaxTenuringThreshold := 0),
1247 // prefer minuscule survivor spaces so as not to waste 1261 // prefer minuscule survivor spaces so as not to waste
1248 // space for (non-existent) survivors 1262 // space for (non-existent) survivors
1290 tty->print_cr("MarkStackSize: %uk MarkStackSizeMax: %uk", 1304 tty->print_cr("MarkStackSize: %uk MarkStackSizeMax: %uk",
1291 MarkStackSize / K, MarkStackSizeMax / K); 1305 MarkStackSize / K, MarkStackSizeMax / K);
1292 tty->print_cr("ConcGCThreads: %u", ConcGCThreads); 1306 tty->print_cr("ConcGCThreads: %u", ConcGCThreads);
1293 } 1307 }
1294 } 1308 }
1295 #endif // KERNEL 1309 #endif // INCLUDE_ALTERNATE_GCS
1296 1310
1297 void set_object_alignment() { 1311 void set_object_alignment() {
1298 // Object alignment. 1312 // Object alignment.
1299 assert(is_power_of_2(ObjectAlignmentInBytes), "ObjectAlignmentInBytes must be power of 2"); 1313 assert(is_power_of_2(ObjectAlignmentInBytes), "ObjectAlignmentInBytes must be power of 2");
1300 MinObjAlignmentInBytes = ObjectAlignmentInBytes; 1314 MinObjAlignmentInBytes = ObjectAlignmentInBytes;
1307 LogMinObjAlignment = LogMinObjAlignmentInBytes - LogHeapWordSize; 1321 LogMinObjAlignment = LogMinObjAlignmentInBytes - LogHeapWordSize;
1308 1322
1309 // Oop encoding heap max 1323 // Oop encoding heap max
1310 OopEncodingHeapMax = (uint64_t(max_juint) + 1) << LogMinObjAlignmentInBytes; 1324 OopEncodingHeapMax = (uint64_t(max_juint) + 1) << LogMinObjAlignmentInBytes;
1311 1325
1312 #ifndef KERNEL 1326 #if INCLUDE_ALTERNATE_GCS
1313 // Set CMS global values 1327 // Set CMS global values
1314 CompactibleFreeListSpace::set_cms_values(); 1328 CompactibleFreeListSpace::set_cms_values();
1315 #endif // KERNEL 1329 #endif // INCLUDE_ALTERNATE_GCS
1316 } 1330 }
1317 1331
1318 bool verify_object_alignment() { 1332 bool verify_object_alignment() {
1319 // Object alignment. 1333 // Object alignment.
1320 if (!is_power_of_2(ObjectAlignmentInBytes)) { 1334 if (!is_power_of_2(ObjectAlignmentInBytes)) {
1348 return true; 1362 return true;
1349 } 1363 }
1350 1364
1351 inline uintx max_heap_for_compressed_oops() { 1365 inline uintx max_heap_for_compressed_oops() {
1352 // Avoid sign flip. 1366 // Avoid sign flip.
1353 if (OopEncodingHeapMax < MaxPermSize + os::vm_page_size()) { 1367 if (OopEncodingHeapMax < ClassMetaspaceSize + os::vm_page_size()) {
1354 return 0; 1368 return 0;
1355 } 1369 }
1356 LP64_ONLY(return OopEncodingHeapMax - MaxPermSize - os::vm_page_size()); 1370 LP64_ONLY(return OopEncodingHeapMax - ClassMetaspaceSize - os::vm_page_size());
1357 NOT_LP64(ShouldNotReachHere(); return 0); 1371 NOT_LP64(ShouldNotReachHere(); return 0);
1358 } 1372 }
1359 1373
1360 bool Arguments::should_auto_select_low_pause_collector() { 1374 bool Arguments::should_auto_select_low_pause_collector() {
1361 if (UseAutoGCSelectPolicy && 1375 if (UseAutoGCSelectPolicy &&
1370 } 1384 }
1371 return false; 1385 return false;
1372 } 1386 }
1373 1387
1374 void Arguments::set_ergonomics_flags() { 1388 void Arguments::set_ergonomics_flags() {
1375 // Parallel GC is not compatible with sharing. If one specifies
1376 // that they want sharing explicitly, do not set ergonomics flags.
1377 if (DumpSharedSpaces || RequireSharedSpaces) {
1378 return;
1379 }
1380 1389
1381 if (os::is_server_class_machine()) { 1390 if (os::is_server_class_machine()) {
1382 // If no other collector is requested explicitly, 1391 // If no other collector is requested explicitly,
1383 // let the VM select the collector based on 1392 // let the VM select the collector based on
1384 // machine class and automatic selection policy. 1393 // machine class and automatic selection policy.
1385 if (!UseSerialGC && 1394 if (!UseSerialGC &&
1386 !UseConcMarkSweepGC && 1395 !UseConcMarkSweepGC &&
1387 !UseG1GC && 1396 !UseG1GC &&
1388 !UseParNewGC && 1397 !UseParNewGC &&
1389 !DumpSharedSpaces &&
1390 FLAG_IS_DEFAULT(UseParallelGC)) { 1398 FLAG_IS_DEFAULT(UseParallelGC)) {
1391 if (should_auto_select_low_pause_collector()) { 1399 if (should_auto_select_low_pause_collector()) {
1392 FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true); 1400 FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true);
1393 } else { 1401 } else {
1394 FLAG_SET_ERGO(bool, UseParallelGC, true); 1402 FLAG_SET_ERGO(bool, UseParallelGC, true);
1395 } 1403 }
1404 }
1405 // Shared spaces work fine with other GCs but causes bytecode rewriting
1406 // to be disabled, which hurts interpreter performance and decreases
1407 // server performance. On server class machines, keep the default
1408 // off unless it is asked for. Future work: either add bytecode rewriting
1409 // at link time, or rewrite bytecodes in non-shared methods.
1410 if (!DumpSharedSpaces && !RequireSharedSpaces) {
1396 no_shared_spaces(); 1411 no_shared_spaces();
1397 } 1412 }
1398 } 1413 }
1399 1414
1400 #ifndef ZERO 1415 #ifndef ZERO
1418 #endif // _WIN64 1433 #endif // _WIN64
1419 } else { 1434 } else {
1420 if (UseCompressedOops && !FLAG_IS_DEFAULT(UseCompressedOops)) { 1435 if (UseCompressedOops && !FLAG_IS_DEFAULT(UseCompressedOops)) {
1421 warning("Max heap size too large for Compressed Oops"); 1436 warning("Max heap size too large for Compressed Oops");
1422 FLAG_SET_DEFAULT(UseCompressedOops, false); 1437 FLAG_SET_DEFAULT(UseCompressedOops, false);
1438 FLAG_SET_DEFAULT(UseCompressedKlassPointers, false);
1439 }
1440 }
1441 // UseCompressedOops must be on for UseCompressedKlassPointers to be on.
1442 if (!UseCompressedOops) {
1443 if (UseCompressedKlassPointers) {
1444 warning("UseCompressedKlassPointers requires UseCompressedOops");
1445 }
1446 FLAG_SET_DEFAULT(UseCompressedKlassPointers, false);
1447 } else {
1448 // Turn on UseCompressedKlassPointers too
1449 if (FLAG_IS_DEFAULT(UseCompressedKlassPointers)) {
1450 FLAG_SET_ERGO(bool, UseCompressedKlassPointers, true);
1451 }
1452 // Set the ClassMetaspaceSize to something that will not need to be
1453 // expanded, since it cannot be expanded.
1454 if (UseCompressedKlassPointers && FLAG_IS_DEFAULT(ClassMetaspaceSize)) {
1455 // 100,000 classes seems like a good size, so 100M assumes around 1K
1456 // per klass. The vtable and oopMap is embedded so we don't have a fixed
1457 // size per klass. Eventually, this will be parameterized because it
1458 // would also be useful to determine the optimal size of the
1459 // systemDictionary.
1460 FLAG_SET_ERGO(uintx, ClassMetaspaceSize, 100*M);
1423 } 1461 }
1424 } 1462 }
1425 // Also checks that certain machines are slower with compressed oops 1463 // Also checks that certain machines are slower with compressed oops
1426 // in vm_version initialization code. 1464 // in vm_version initialization code.
1427 #endif // _LP64 1465 #endif // _LP64
1459 // Par compact uses lower default values since they are treated as 1497 // Par compact uses lower default values since they are treated as
1460 // minimums. These are different defaults because of the different 1498 // minimums. These are different defaults because of the different
1461 // interpretation and are not ergonomically set. 1499 // interpretation and are not ergonomically set.
1462 if (FLAG_IS_DEFAULT(MarkSweepDeadRatio)) { 1500 if (FLAG_IS_DEFAULT(MarkSweepDeadRatio)) {
1463 FLAG_SET_DEFAULT(MarkSweepDeadRatio, 1); 1501 FLAG_SET_DEFAULT(MarkSweepDeadRatio, 1);
1464 }
1465 if (FLAG_IS_DEFAULT(PermMarkSweepDeadRatio)) {
1466 FLAG_SET_DEFAULT(PermMarkSweepDeadRatio, 5);
1467 } 1502 }
1468 } 1503 }
1469 } 1504 }
1470 if (UseNUMA) { 1505 if (UseNUMA) {
1471 if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) { 1506 if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) {
1486 Abstract_VM_Version::parallel_worker_threads()); 1521 Abstract_VM_Version::parallel_worker_threads());
1487 if (ParallelGCThreads == 0) { 1522 if (ParallelGCThreads == 0) {
1488 FLAG_SET_DEFAULT(ParallelGCThreads, 1523 FLAG_SET_DEFAULT(ParallelGCThreads,
1489 Abstract_VM_Version::parallel_worker_threads()); 1524 Abstract_VM_Version::parallel_worker_threads());
1490 } 1525 }
1491 no_shared_spaces();
1492 1526
1493 if (FLAG_IS_DEFAULT(MarkStackSize)) { 1527 if (FLAG_IS_DEFAULT(MarkStackSize)) {
1494 FLAG_SET_DEFAULT(MarkStackSize, 128 * TASKQUEUE_SIZE); 1528 FLAG_SET_DEFAULT(MarkStackSize, 128 * TASKQUEUE_SIZE);
1495 } 1529 }
1496 if (PrintGCDetails && Verbose) { 1530 if (PrintGCDetails && Verbose) {
1822 status = false; 1856 status = false;
1823 } 1857 }
1824 1858
1825 status = status && verify_percentage(AdaptiveSizePolicyWeight, 1859 status = status && verify_percentage(AdaptiveSizePolicyWeight,
1826 "AdaptiveSizePolicyWeight"); 1860 "AdaptiveSizePolicyWeight");
1827 status = status && verify_percentage(AdaptivePermSizeWeight, "AdaptivePermSizeWeight");
1828 status = status && verify_percentage(ThresholdTolerance, "ThresholdTolerance"); 1861 status = status && verify_percentage(ThresholdTolerance, "ThresholdTolerance");
1829 status = status && verify_percentage(MinHeapFreeRatio, "MinHeapFreeRatio"); 1862 status = status && verify_percentage(MinHeapFreeRatio, "MinHeapFreeRatio");
1830 status = status && verify_percentage(MaxHeapFreeRatio, "MaxHeapFreeRatio"); 1863 status = status && verify_percentage(MaxHeapFreeRatio, "MaxHeapFreeRatio");
1831 1864
1832 if (MinHeapFreeRatio > MaxHeapFreeRatio) { 1865 if (MinHeapFreeRatio > MaxHeapFreeRatio) {
1962 status = status && verify_interval(TLABWasteTargetPercent, 1995 status = status && verify_interval(TLABWasteTargetPercent,
1963 1, 100, "TLABWasteTargetPercent"); 1996 1, 100, "TLABWasteTargetPercent");
1964 1997
1965 status = status && verify_object_alignment(); 1998 status = status && verify_object_alignment();
1966 1999
2000 status = status && verify_min_value(ClassMetaspaceSize, 1*M,
2001 "ClassMetaspaceSize");
2002
2003 #ifdef SPARC
2004 if (UseConcMarkSweepGC || UseG1GC) {
2005 // Issue a stern warning if the user has explicitly set
2006 // UseMemSetInBOT (it is known to cause issues), but allow
2007 // use for experimentation and debugging.
2008 if (VM_Version::is_sun4v() && UseMemSetInBOT) {
2009 assert(!FLAG_IS_DEFAULT(UseMemSetInBOT), "Error");
2010 warning("Experimental flag -XX:+UseMemSetInBOT is known to cause instability"
2011 " on sun4v; please understand that you are using at your own risk!");
2012 }
2013 }
2014 #endif // SPARC
2015
2016 if (PrintNMTStatistics) {
2017 #if INCLUDE_NMT
2018 if (MemTracker::tracking_level() == MemTracker::NMT_off) {
2019 #endif // INCLUDE_NMT
2020 warning("PrintNMTStatistics is disabled, because native memory tracking is not enabled");
2021 PrintNMTStatistics = false;
2022 #if INCLUDE_NMT
2023 }
2024 #endif
2025 }
1967 #ifdef GRAAL 2026 #ifdef GRAAL
1968 if (UseCompressedOops) { 2027 if (UseCompressedOops) {
1969 jio_fprintf(defaultStream::error_stream(), 2028 jio_fprintf(defaultStream::error_stream(),
1970 "CompressedOops are not supported in Graal at the moment\n"); 2029 "CompressedOops are not supported in Graal at the moment\n");
1971 status = false; 2030 status = false;
1972 } 2031 }
1973 if (UseG1GC) { 2032 if (UseG1GC) {
1974 jio_fprintf(defaultStream::error_stream(), 2033 jio_fprintf(defaultStream::error_stream(),
1975 "G1 is not supported in Graal at the moment\n"); 2034 "G1 is not supported in Graal at the moment\n");
1976 status = false; 2035 status = false;
1977 } 2036 }
2037
2038 if (!ScavengeRootsInCode) {
2039 warning("forcing ScavengeRootsInCode non-zero because Graal is enabled");
2040 ScavengeRootsInCode = 1;
2041 }
2042
1978 #endif 2043 #endif
1979
1980 return status; 2044 return status;
1981 } 2045 }
1982 2046
1983 bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore, 2047 bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore,
1984 const char* option_type) { 2048 const char* option_type) {
2305 char *options = NULL; 2369 char *options = NULL;
2306 if(pos != NULL) { 2370 if(pos != NULL) {
2307 size_t len2 = strlen(pos+1) + 1; // options start after ':'. Final zero must be copied. 2371 size_t len2 = strlen(pos+1) + 1; // options start after ':'. Final zero must be copied.
2308 options = (char*)memcpy(NEW_C_HEAP_ARRAY(char, len2, mtInternal), pos+1, len2); 2372 options = (char*)memcpy(NEW_C_HEAP_ARRAY(char, len2, mtInternal), pos+1, len2);
2309 } 2373 }
2310 #ifdef JVMTI_KERNEL 2374 #if !INCLUDE_JVMTI
2311 if ((strcmp(name, "hprof") == 0) || (strcmp(name, "jdwp") == 0)) { 2375 if ((strcmp(name, "hprof") == 0) || (strcmp(name, "jdwp") == 0)) {
2312 warning("profiling and debugging agents are not supported with Kernel VM"); 2376 warning("profiling and debugging agents are not supported in this VM");
2313 } else 2377 } else
2314 #endif // JVMTI_KERNEL 2378 #endif // !INCLUDE_JVMTI
2315 add_init_library(name, options); 2379 add_init_library(name, options);
2316 } 2380 }
2317 // -agentlib and -agentpath 2381 // -agentlib and -agentpath
2318 } else if (match_option(option, "-agentlib:", &tail) || 2382 } else if (match_option(option, "-agentlib:", &tail) ||
2319 (is_absolute_path = match_option(option, "-agentpath:", &tail))) { 2383 (is_absolute_path = match_option(option, "-agentpath:", &tail))) {
2320 if(tail != NULL) { 2384 if(tail != NULL) {
2325 2389
2326 char *options = NULL; 2390 char *options = NULL;
2327 if(pos != NULL) { 2391 if(pos != NULL) {
2328 options = strcpy(NEW_C_HEAP_ARRAY(char, strlen(pos + 1) + 1, mtInternal), pos + 1); 2392 options = strcpy(NEW_C_HEAP_ARRAY(char, strlen(pos + 1) + 1, mtInternal), pos + 1);
2329 } 2393 }
2330 #ifdef JVMTI_KERNEL 2394 #if !INCLUDE_JVMTI
2331 if ((strcmp(name, "hprof") == 0) || (strcmp(name, "jdwp") == 0)) { 2395 if ((strcmp(name, "hprof") == 0) || (strcmp(name, "jdwp") == 0)) {
2332 warning("profiling and debugging agents are not supported with Kernel VM"); 2396 warning("profiling and debugging agents are not supported in this VM");
2333 } else 2397 } else
2334 #endif // JVMTI_KERNEL 2398 #endif // !INCLUDE_JVMTI
2335 add_init_agent(name, options, is_absolute_path); 2399 add_init_agent(name, options, is_absolute_path);
2336 2400
2337 } 2401 }
2338 // -javaagent 2402 // -javaagent
2339 } else if (match_option(option, "-javaagent:", &tail)) { 2403 } else if (match_option(option, "-javaagent:", &tail)) {
2404 #if !INCLUDE_JVMTI
2405 warning("Instrumentation agents are not supported in this VM");
2406 #else
2340 if(tail != NULL) { 2407 if(tail != NULL) {
2341 char *options = strcpy(NEW_C_HEAP_ARRAY(char, strlen(tail) + 1, mtInternal), tail); 2408 char *options = strcpy(NEW_C_HEAP_ARRAY(char, strlen(tail) + 1, mtInternal), tail);
2342 add_init_agent("instrument", options, false); 2409 add_init_agent("instrument", options, false);
2343 } 2410 }
2411 #endif // !INCLUDE_JVMTI
2344 // -Xnoclassgc 2412 // -Xnoclassgc
2345 } else if (match_option(option, "-Xnoclassgc", &tail)) { 2413 } else if (match_option(option, "-Xnoclassgc", &tail)) {
2346 FLAG_SET_CMDLINE(bool, ClassUnloading, false); 2414 FLAG_SET_CMDLINE(bool, ClassUnloading, false);
2347 // -Xincgc: i-CMS 2415 // -Xincgc: i-CMS
2348 } else if (match_option(option, "-Xincgc", &tail)) { 2416 } else if (match_option(option, "-Xincgc", &tail)) {
2470 // -Xoptimize 2538 // -Xoptimize
2471 } else if (match_option(option, "-Xoptimize", &tail)) { 2539 } else if (match_option(option, "-Xoptimize", &tail)) {
2472 // EVM option, ignore silently for compatibility 2540 // EVM option, ignore silently for compatibility
2473 // -Xprof 2541 // -Xprof
2474 } else if (match_option(option, "-Xprof", &tail)) { 2542 } else if (match_option(option, "-Xprof", &tail)) {
2475 #ifndef FPROF_KERNEL 2543 #if INCLUDE_FPROF
2476 _has_profile = true; 2544 _has_profile = true;
2477 #else // FPROF_KERNEL 2545 #else // INCLUDE_FPROF
2478 // do we have to exit? 2546 // do we have to exit?
2479 warning("Kernel VM does not support flat profiling."); 2547 warning("Flat profiling is not supported in this VM.");
2480 #endif // FPROF_KERNEL 2548 #endif // INCLUDE_FPROF
2481 // -Xaprof 2549 // -Xaprof
2482 } else if (match_option(option, "-Xaprof", &tail)) { 2550 } else if (match_option(option, "-Xaprof", &tail)) {
2483 _has_alloc_profile = true; 2551 _has_alloc_profile = true;
2484 // -Xconcurrentio 2552 // -Xconcurrentio
2485 } else if (match_option(option, "-Xconcurrentio", &tail)) { 2553 } else if (match_option(option, "-Xconcurrentio", &tail)) {
2520 // for testing the compiler; turn off all flags that inhibit compilation 2588 // for testing the compiler; turn off all flags that inhibit compilation
2521 set_mode_flags(_comp); 2589 set_mode_flags(_comp);
2522 2590
2523 // -Xshare:dump 2591 // -Xshare:dump
2524 } else if (match_option(option, "-Xshare:dump", &tail)) { 2592 } else if (match_option(option, "-Xshare:dump", &tail)) {
2525 #ifdef TIERED 2593 #if defined(KERNEL)
2526 FLAG_SET_CMDLINE(bool, DumpSharedSpaces, true);
2527 set_mode_flags(_int); // Prevent compilation, which creates objects
2528 #elif defined(COMPILER2)
2529 vm_exit_during_initialization(
2530 "Dumping a shared archive is not supported on the Server JVM.", NULL);
2531 #elif defined(KERNEL)
2532 vm_exit_during_initialization( 2594 vm_exit_during_initialization(
2533 "Dumping a shared archive is not supported on the Kernel JVM.", NULL); 2595 "Dumping a shared archive is not supported on the Kernel JVM.", NULL);
2596 #elif !INCLUDE_CDS
2597 vm_exit_during_initialization(
2598 "Dumping a shared archive is not supported in this VM.", NULL);
2534 #else 2599 #else
2535 FLAG_SET_CMDLINE(bool, DumpSharedSpaces, true); 2600 FLAG_SET_CMDLINE(bool, DumpSharedSpaces, true);
2536 set_mode_flags(_int); // Prevent compilation, which creates objects 2601 set_mode_flags(_int); // Prevent compilation, which creates objects
2537 #endif 2602 #endif
2538 // -Xshare:on 2603 // -Xshare:on
2581 FLAG_SET_CMDLINE(bool, PrintGCTimeStamps, true); 2646 FLAG_SET_CMDLINE(bool, PrintGCTimeStamps, true);
2582 2647
2583 // JNI hooks 2648 // JNI hooks
2584 } else if (match_option(option, "-Xcheck", &tail)) { 2649 } else if (match_option(option, "-Xcheck", &tail)) {
2585 if (!strcmp(tail, ":jni")) { 2650 if (!strcmp(tail, ":jni")) {
2651 #if !INCLUDE_JNI_CHECK
2652 warning("JNI CHECKING is not supported in this VM");
2653 #else
2586 CheckJNICalls = true; 2654 CheckJNICalls = true;
2655 #endif // INCLUDE_JNI_CHECK
2587 } else if (is_bad_option(option, args->ignoreUnrecognized, 2656 } else if (is_bad_option(option, args->ignoreUnrecognized,
2588 "check")) { 2657 "check")) {
2589 return JNI_EINVAL; 2658 return JNI_EINVAL;
2590 } 2659 }
2591 } else if (match_option(option, "vfprintf", &tail)) { 2660 } else if (match_option(option, "vfprintf", &tail)) {
2626 2695
2627 // Make sure that if we have a lot of memory we cap the 32 bit 2696 // Make sure that if we have a lot of memory we cap the 32 bit
2628 // process space. The 64bit VM version of this function is a nop. 2697 // process space. The 64bit VM version of this function is a nop.
2629 initHeapSize = os::allocatable_physical_memory(initHeapSize); 2698 initHeapSize = os::allocatable_physical_memory(initHeapSize);
2630 2699
2631 // The perm gen is separate but contiguous with the
2632 // object heap (and is reserved with it) so subtract it
2633 // from the heap size.
2634 if (initHeapSize > MaxPermSize) {
2635 initHeapSize = initHeapSize - MaxPermSize;
2636 } else {
2637 warning("AggressiveHeap and MaxPermSize values may conflict");
2638 }
2639
2640 if (FLAG_IS_DEFAULT(MaxHeapSize)) { 2700 if (FLAG_IS_DEFAULT(MaxHeapSize)) {
2641 FLAG_SET_CMDLINE(uintx, MaxHeapSize, initHeapSize); 2701 FLAG_SET_CMDLINE(uintx, MaxHeapSize, initHeapSize);
2642 FLAG_SET_CMDLINE(uintx, InitialHeapSize, initHeapSize); 2702 FLAG_SET_CMDLINE(uintx, InitialHeapSize, initHeapSize);
2643 // Currently the minimum size and the initial heap sizes are the same. 2703 // Currently the minimum size and the initial heap sizes are the same.
2644 set_min_heap_size(initHeapSize); 2704 set_min_heap_size(initHeapSize);
2648 FLAG_SET_CMDLINE(uintx, NewSize, 2708 FLAG_SET_CMDLINE(uintx, NewSize,
2649 ((julong)MaxHeapSize / (julong)8) * (julong)3); 2709 ((julong)MaxHeapSize / (julong)8) * (julong)3);
2650 FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize); 2710 FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize);
2651 } 2711 }
2652 2712
2713 #ifndef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD.
2653 FLAG_SET_DEFAULT(UseLargePages, true); 2714 FLAG_SET_DEFAULT(UseLargePages, true);
2715 #endif
2654 2716
2655 // Increase some data structure sizes for efficiency 2717 // Increase some data structure sizes for efficiency
2656 FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize); 2718 FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize);
2657 FLAG_SET_CMDLINE(bool, ResizeTLAB, false); 2719 FLAG_SET_CMDLINE(bool, ResizeTLAB, false);
2658 FLAG_SET_CMDLINE(uintx, TLABSize, 256*K); 2720 FLAG_SET_CMDLINE(uintx, TLABSize, 256*K);
2855 option->optionString); 2917 option->optionString);
2856 describe_range_error(errcode); 2918 describe_range_error(errcode);
2857 return JNI_EINVAL; 2919 return JNI_EINVAL;
2858 } 2920 }
2859 FLAG_SET_CMDLINE(uintx, MaxDirectMemorySize, max_direct_memory_size); 2921 FLAG_SET_CMDLINE(uintx, MaxDirectMemorySize, max_direct_memory_size);
2922 } else if (match_option(option, "-XX:+UseVMInterruptibleIO", &tail)) {
2923 // NOTE! In JDK 9, the UseVMInterruptibleIO flag will completely go
2924 // away and will cause VM initialization failures!
2925 warning("-XX:+UseVMInterruptibleIO is obsolete and will be removed in a future release.");
2926 FLAG_SET_CMDLINE(bool, UseVMInterruptibleIO, true);
2860 } else if (match_option(option, "-XX:", &tail)) { // -XX:xxxx 2927 } else if (match_option(option, "-XX:", &tail)) { // -XX:xxxx
2861 // Skip -XX:Flags= since that case has already been handled 2928 // Skip -XX:Flags= since that case has already been handled
2862 if (strncmp(tail, "Flags=", strlen("Flags=")) != 0) { 2929 if (strncmp(tail, "Flags=", strlen("Flags=")) != 0) {
2863 if (!process_argument(tail, args->ignoreUnrecognized, origin)) { 2930 if (!process_argument(tail, args->ignoreUnrecognized, origin)) {
2864 return JNI_EINVAL; 2931 return JNI_EINVAL;
2881 } 2948 }
2882 } 2949 }
2883 2950
2884 // Change the default value for flags which have different default values 2951 // Change the default value for flags which have different default values
2885 // when working with older JDKs. 2952 // when working with older JDKs.
2886 if (JDK_Version::current().compare_major(6) <= 0 &&
2887 FLAG_IS_DEFAULT(UseVMInterruptibleIO)) {
2888 FLAG_SET_DEFAULT(UseVMInterruptibleIO, true);
2889 }
2890 #ifdef LINUX 2953 #ifdef LINUX
2891 if (JDK_Version::current().compare_major(6) <= 0 && 2954 if (JDK_Version::current().compare_major(6) <= 0 &&
2892 FLAG_IS_DEFAULT(UseLinuxPosixThreadCPUClocks)) { 2955 FLAG_IS_DEFAULT(UseLinuxPosixThreadCPUClocks)) {
2893 FLAG_SET_DEFAULT(UseLinuxPosixThreadCPUClocks, false); 2956 FLAG_SET_DEFAULT(UseLinuxPosixThreadCPUClocks, false);
2894 } 2957 }
3050 3113
3051 void Arguments::set_shared_spaces_flags() { 3114 void Arguments::set_shared_spaces_flags() {
3052 const bool must_share = DumpSharedSpaces || RequireSharedSpaces; 3115 const bool must_share = DumpSharedSpaces || RequireSharedSpaces;
3053 const bool might_share = must_share || UseSharedSpaces; 3116 const bool might_share = must_share || UseSharedSpaces;
3054 3117
3055 // The string table is part of the shared archive so the size must match. 3118 // CompressedOops cannot be used with CDS. The offsets of oopmaps and
3056 if (!FLAG_IS_DEFAULT(StringTableSize)) { 3119 // static fields are incorrect in the archive. With some more clever
3057 // Disable sharing. 3120 // initialization, this restriction can probably be lifted.
3058 if (must_share) { 3121 // ??? UseLargePages might be okay now
3059 warning("disabling shared archive %s because of non-default " 3122 const bool cannot_share = UseCompressedOops ||
3060 "StringTableSize", DumpSharedSpaces ? "creation" : "use"); 3123 (UseLargePages && FLAG_IS_CMDLINE(UseLargePages));
3061 }
3062 if (might_share) {
3063 FLAG_SET_DEFAULT(DumpSharedSpaces, false);
3064 FLAG_SET_DEFAULT(RequireSharedSpaces, false);
3065 FLAG_SET_DEFAULT(UseSharedSpaces, false);
3066 }
3067 return;
3068 }
3069
3070 // Check whether class data sharing settings conflict with GC, compressed oops
3071 // or page size, and fix them up. Explicit sharing options override other
3072 // settings.
3073 const bool cannot_share = UseConcMarkSweepGC || CMSIncrementalMode ||
3074 UseG1GC || UseParNewGC || UseParallelGC || UseParallelOldGC ||
3075 UseCompressedOops || UseLargePages && FLAG_IS_CMDLINE(UseLargePages);
3076 if (cannot_share) { 3124 if (cannot_share) {
3077 if (must_share) { 3125 if (must_share) {
3078 warning("selecting serial gc and disabling large pages %s" 3126 warning("disabling large pages %s"
3079 "because of %s", "" LP64_ONLY("and compressed oops "), 3127 "because of %s", "" LP64_ONLY("and compressed oops "),
3080 DumpSharedSpaces ? "-Xshare:dump" : "-Xshare:on"); 3128 DumpSharedSpaces ? "-Xshare:dump" : "-Xshare:on");
3081 force_serial_gc();
3082 FLAG_SET_CMDLINE(bool, UseLargePages, false); 3129 FLAG_SET_CMDLINE(bool, UseLargePages, false);
3083 LP64_ONLY(FLAG_SET_CMDLINE(bool, UseCompressedOops, false)); 3130 LP64_ONLY(FLAG_SET_CMDLINE(bool, UseCompressedOops, false));
3131 LP64_ONLY(FLAG_SET_CMDLINE(bool, UseCompressedKlassPointers, false));
3084 } else { 3132 } else {
3133 // Prefer compressed oops and large pages to class data sharing
3085 if (UseSharedSpaces && Verbose) { 3134 if (UseSharedSpaces && Verbose) {
3086 warning("turning off use of shared archive because of " 3135 warning("turning off use of shared archive because of large pages%s",
3087 "choice of garbage collector or large pages"); 3136 "" LP64_ONLY(" and/or compressed oops"));
3088 } 3137 }
3089 no_shared_spaces(); 3138 no_shared_spaces();
3090 } 3139 }
3091 } else if (UseLargePages && might_share) { 3140 } else if (UseLargePages && might_share) {
3092 // Disable large pages to allow shared spaces. This is sub-optimal, since 3141 // Disable large pages to allow shared spaces. This is sub-optimal, since
3093 // there may not even be a shared archive to use. 3142 // there may not even be a shared archive to use.
3094 FLAG_SET_DEFAULT(UseLargePages, false); 3143 FLAG_SET_DEFAULT(UseLargePages, false);
3144 }
3145
3146 // Add 2M to any size for SharedReadOnlySize to get around the JPRT setting
3147 if (DumpSharedSpaces && !FLAG_IS_DEFAULT(SharedReadOnlySize)) {
3148 SharedReadOnlySize = 14*M;
3149 }
3150
3151 if (DumpSharedSpaces) {
3152 if (RequireSharedSpaces) {
3153 warning("cannot dump shared archive while using shared archive");
3154 }
3155 UseSharedSpaces = false;
3095 } 3156 }
3096 } 3157 }
3097 3158
3098 // Disable options not supported in this release, with a warning if they 3159 // Disable options not supported in this release, with a warning if they
3099 // were explicitly requested on the command-line 3160 // were explicitly requested on the command-line
3158 if (match_option(option, "-XX:+PrintFlagsInitial", &tail)) { 3219 if (match_option(option, "-XX:+PrintFlagsInitial", &tail)) {
3159 CommandLineFlags::printFlags(tty, false); 3220 CommandLineFlags::printFlags(tty, false);
3160 vm_exit(0); 3221 vm_exit(0);
3161 } 3222 }
3162 if (match_option(option, "-XX:NativeMemoryTracking", &tail)) { 3223 if (match_option(option, "-XX:NativeMemoryTracking", &tail)) {
3224 #if INCLUDE_NMT
3163 MemTracker::init_tracking_options(tail); 3225 MemTracker::init_tracking_options(tail);
3226 #else
3227 warning("Native Memory Tracking is not supported in this VM");
3228 #endif
3164 } 3229 }
3165 3230
3166 3231
3167 #ifndef PRODUCT 3232 #ifndef PRODUCT
3168 if (match_option(option, "-XX:+PrintFlagsWithComments", &tail)) { 3233 if (match_option(option, "-XX:+PrintFlagsWithComments", &tail)) {
3221 3286
3222 #if (defined JAVASE_EMBEDDED || defined ARM) 3287 #if (defined JAVASE_EMBEDDED || defined ARM)
3223 UNSUPPORTED_OPTION(UseG1GC, "G1 GC"); 3288 UNSUPPORTED_OPTION(UseG1GC, "G1 GC");
3224 #endif 3289 #endif
3225 3290
3291 #ifdef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD.
3292 UNSUPPORTED_OPTION(UseLargePages, "-XX:+UseLargePages");
3293 #endif
3294
3295 #if !INCLUDE_ALTERNATE_GCS
3296 if (UseParallelGC) {
3297 warning("Parallel GC is not supported in this VM. Using Serial GC.");
3298 }
3299 if (UseParallelOldGC) {
3300 warning("Parallel Old GC is not supported in this VM. Using Serial GC.");
3301 }
3302 if (UseConcMarkSweepGC) {
3303 warning("Concurrent Mark Sweep GC is not supported in this VM. Using Serial GC.");
3304 }
3305 if (UseParNewGC) {
3306 warning("Par New GC is not supported in this VM. Using Serial GC.");
3307 }
3308 #endif // INCLUDE_ALTERNATE_GCS
3309
3226 #ifndef PRODUCT 3310 #ifndef PRODUCT
3227 if (TraceBytecodesAt != 0) { 3311 if (TraceBytecodesAt != 0) {
3228 TraceBytecodes = true; 3312 TraceBytecodes = true;
3229 } 3313 }
3230 if (CountCompiledCalls) { 3314 if (CountCompiledCalls) {
3249 if (!FLAG_IS_DEFAULT(ScavengeRootsInCode)) { 3333 if (!FLAG_IS_DEFAULT(ScavengeRootsInCode)) {
3250 warning("forcing ScavengeRootsInCode non-zero because EnableInvokeDynamic is true"); 3334 warning("forcing ScavengeRootsInCode non-zero because EnableInvokeDynamic is true");
3251 } 3335 }
3252 ScavengeRootsInCode = 1; 3336 ScavengeRootsInCode = 1;
3253 } 3337 }
3254 if (!JavaObjectsInPerm && ScavengeRootsInCode == 0) {
3255 if (!FLAG_IS_DEFAULT(ScavengeRootsInCode)) {
3256 warning("forcing ScavengeRootsInCode non-zero because JavaObjectsInPerm is false");
3257 }
3258 ScavengeRootsInCode = 1;
3259 }
3260 3338
3261 if (PrintGCDetails) { 3339 if (PrintGCDetails) {
3262 // Turn on -verbose:gc options as well 3340 // Turn on -verbose:gc options as well
3263 PrintGC = true; 3341 PrintGC = true;
3264 } 3342 }
3275 set_object_alignment(); 3353 set_object_alignment();
3276 3354
3277 #ifdef SERIALGC 3355 #ifdef SERIALGC
3278 force_serial_gc(); 3356 force_serial_gc();
3279 #endif // SERIALGC 3357 #endif // SERIALGC
3280 #ifdef KERNEL 3358 #if !INCLUDE_CDS
3281 no_shared_spaces(); 3359 no_shared_spaces();
3282 #endif // KERNEL 3360 #endif // INCLUDE_CDS
3283 3361
3284 // Set flags based on ergonomics. 3362 // Set flags based on ergonomics.
3285 set_ergonomics_flags(); 3363 set_ergonomics_flags();
3286 3364
3287 set_shared_spaces_flags(); 3365 set_shared_spaces_flags();
3299 vm_exit_during_initialization( 3377 vm_exit_during_initialization(
3300 "Incompatible compilation policy selected", NULL); 3378 "Incompatible compilation policy selected", NULL);
3301 } 3379 }
3302 } 3380 }
3303 3381
3304 #ifndef KERNEL
3305 // Set heap size based on available physical memory 3382 // Set heap size based on available physical memory
3306 set_heap_size(); 3383 set_heap_size();
3384
3385 #if INCLUDE_ALTERNATE_GCS
3307 // Set per-collector flags 3386 // Set per-collector flags
3308 if (UseParallelGC || UseParallelOldGC) { 3387 if (UseParallelGC || UseParallelOldGC) {
3309 set_parallel_gc_flags(); 3388 set_parallel_gc_flags();
3310 } else if (UseConcMarkSweepGC) { // should be done before ParNew check below 3389 } else if (UseConcMarkSweepGC) { // should be done before ParNew check below
3311 set_cms_and_parnew_gc_flags(); 3390 set_cms_and_parnew_gc_flags();
3312 } else if (UseParNewGC) { // skipped if CMS is set above 3391 } else if (UseParNewGC) { // skipped if CMS is set above
3313 set_parnew_gc_flags(); 3392 set_parnew_gc_flags();
3314 } else if (UseG1GC) { 3393 } else if (UseG1GC) {
3315 set_g1_gc_flags(); 3394 set_g1_gc_flags();
3316 } 3395 }
3317 #endif // KERNEL 3396 #endif // INCLUDE_ALTERNATE_GCS
3318 3397
3319 #ifdef SERIALGC 3398 #ifdef SERIALGC
3320 assert(verify_serial_gc_flags(), "SerialGC unset"); 3399 assert(verify_serial_gc_flags(), "SerialGC unset");
3321 #endif // SERIALGC 3400 #endif // SERIALGC
3322 3401
3346 #ifdef CC_INTERP 3425 #ifdef CC_INTERP
3347 // Clear flags not supported by the C++ interpreter 3426 // Clear flags not supported by the C++ interpreter
3348 FLAG_SET_DEFAULT(ProfileInterpreter, false); 3427 FLAG_SET_DEFAULT(ProfileInterpreter, false);
3349 FLAG_SET_DEFAULT(UseBiasedLocking, false); 3428 FLAG_SET_DEFAULT(UseBiasedLocking, false);
3350 LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedOops, false)); 3429 LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedOops, false));
3430 LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedKlassPointers, false));
3351 #endif // CC_INTERP 3431 #endif // CC_INTERP
3352 3432
3353 #ifdef COMPILER2 3433 #ifdef COMPILER2
3354 if (!UseBiasedLocking || EmitSync != 0) { 3434 if (!UseBiasedLocking || EmitSync != 0) {
3355 UseOptoBiasInlining = false; 3435 UseOptoBiasInlining = false;