comparison src/share/vm/runtime/globals.hpp @ 20804:7848fc12602b

Merge with jdk8u40-b25
author Gilles Duboscq <gilles.m.duboscq@oracle.com>
date Tue, 07 Apr 2015 14:58:49 +0200
parents 104304a54b0c fa6adc194d48
children 8d4496e10a51
comparison
equal deleted inserted replaced
20184:84105dcdb05b 20804:7848fc12602b
326 bool is_unlocker_ext() const; 326 bool is_unlocker_ext() const;
327 bool is_unlocked_ext() const; 327 bool is_unlocked_ext() const;
328 bool is_writeable_ext() const; 328 bool is_writeable_ext() const;
329 bool is_external_ext() const; 329 bool is_external_ext() const;
330 330
331 void unlock_diagnostic();
332
331 void get_locked_message(char*, int) const; 333 void get_locked_message(char*, int) const;
332 void get_locked_message_ext(char*, int) const; 334 void get_locked_message_ext(char*, int) const;
333 335
334 void print_on(outputStream* st, bool withComments = false ); 336 void print_on(outputStream* st, bool withComments = false );
335 void print_kind(outputStream* st); 337 void print_kind(outputStream* st);
376 }; 378 };
377 379
378 380
379 class CommandLineFlags { 381 class CommandLineFlags {
380 public: 382 public:
381 static bool boolAt(char* name, size_t len, bool* value); 383 static bool boolAt(const char* name, size_t len, bool* value);
382 static bool boolAt(char* name, bool* value) { return boolAt(name, strlen(name), value); } 384 static bool boolAt(const char* name, bool* value) { return boolAt(name, strlen(name), value); }
383 static bool boolAtPut(char* name, size_t len, bool* value, Flag::Flags origin); 385 static bool boolAtPut(const char* name, size_t len, bool* value, Flag::Flags origin);
384 static bool boolAtPut(char* name, bool* value, Flag::Flags origin) { return boolAtPut(name, strlen(name), value, origin); } 386 static bool boolAtPut(const char* name, bool* value, Flag::Flags origin) { return boolAtPut(name, strlen(name), value, origin); }
385 387
386 static bool intxAt(char* name, size_t len, intx* value); 388 static bool intxAt(const char* name, size_t len, intx* value);
387 static bool intxAt(char* name, intx* value) { return intxAt(name, strlen(name), value); } 389 static bool intxAt(const char* name, intx* value) { return intxAt(name, strlen(name), value); }
388 static bool intxAtPut(char* name, size_t len, intx* value, Flag::Flags origin); 390 static bool intxAtPut(const char* name, size_t len, intx* value, Flag::Flags origin);
389 static bool intxAtPut(char* name, intx* value, Flag::Flags origin) { return intxAtPut(name, strlen(name), value, origin); } 391 static bool intxAtPut(const char* name, intx* value, Flag::Flags origin) { return intxAtPut(name, strlen(name), value, origin); }
390 392
391 static bool uintxAt(char* name, size_t len, uintx* value); 393 static bool uintxAt(const char* name, size_t len, uintx* value);
392 static bool uintxAt(char* name, uintx* value) { return uintxAt(name, strlen(name), value); } 394 static bool uintxAt(const char* name, uintx* value) { return uintxAt(name, strlen(name), value); }
393 static bool uintxAtPut(char* name, size_t len, uintx* value, Flag::Flags origin); 395 static bool uintxAtPut(const char* name, size_t len, uintx* value, Flag::Flags origin);
394 static bool uintxAtPut(char* name, uintx* value, Flag::Flags origin) { return uintxAtPut(name, strlen(name), value, origin); } 396 static bool uintxAtPut(const char* name, uintx* value, Flag::Flags origin) { return uintxAtPut(name, strlen(name), value, origin); }
395 397
396 static bool uint64_tAt(char* name, size_t len, uint64_t* value); 398 static bool uint64_tAt(const char* name, size_t len, uint64_t* value);
397 static bool uint64_tAt(char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); } 399 static bool uint64_tAt(const char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); }
398 static bool uint64_tAtPut(char* name, size_t len, uint64_t* value, Flag::Flags origin); 400 static bool uint64_tAtPut(const char* name, size_t len, uint64_t* value, Flag::Flags origin);
399 static bool uint64_tAtPut(char* name, uint64_t* value, Flag::Flags origin) { return uint64_tAtPut(name, strlen(name), value, origin); } 401 static bool uint64_tAtPut(const char* name, uint64_t* value, Flag::Flags origin) { return uint64_tAtPut(name, strlen(name), value, origin); }
400 402
401 static bool doubleAt(char* name, size_t len, double* value); 403 static bool doubleAt(const char* name, size_t len, double* value);
402 static bool doubleAt(char* name, double* value) { return doubleAt(name, strlen(name), value); } 404 static bool doubleAt(const char* name, double* value) { return doubleAt(name, strlen(name), value); }
403 static bool doubleAtPut(char* name, size_t len, double* value, Flag::Flags origin); 405 static bool doubleAtPut(const char* name, size_t len, double* value, Flag::Flags origin);
404 static bool doubleAtPut(char* name, double* value, Flag::Flags origin) { return doubleAtPut(name, strlen(name), value, origin); } 406 static bool doubleAtPut(const char* name, double* value, Flag::Flags origin) { return doubleAtPut(name, strlen(name), value, origin); }
405 407
406 static bool ccstrAt(char* name, size_t len, ccstr* value); 408 static bool ccstrAt(const char* name, size_t len, ccstr* value);
407 static bool ccstrAt(char* name, ccstr* value) { return ccstrAt(name, strlen(name), value); } 409 static bool ccstrAt(const char* name, ccstr* value) { return ccstrAt(name, strlen(name), value); }
408 static bool ccstrAtPut(char* name, size_t len, ccstr* value, Flag::Flags origin); 410 // Contract: Flag will make private copy of the incoming value.
409 static bool ccstrAtPut(char* name, ccstr* value, Flag::Flags origin) { return ccstrAtPut(name, strlen(name), value, origin); } 411 // Outgoing value is always malloc-ed, and caller MUST call free.
412 static bool ccstrAtPut(const char* name, size_t len, ccstr* value, Flag::Flags origin);
413 static bool ccstrAtPut(const char* name, ccstr* value, Flag::Flags origin) { return ccstrAtPut(name, strlen(name), value, origin); }
410 414
411 // Returns false if name is not a command line flag. 415 // Returns false if name is not a command line flag.
412 static bool wasSetOnCmdline(const char* name, bool* value); 416 static bool wasSetOnCmdline(const char* name, bool* value);
413 static void printSetFlags(outputStream* out); 417 static void printSetFlags(outputStream* out);
414 418
608 "Highest supported SSE instructions set on x86/x64") \ 612 "Highest supported SSE instructions set on x86/x64") \
609 \ 613 \
610 product(bool, UseAES, false, \ 614 product(bool, UseAES, false, \
611 "Control whether AES instructions can be used on x86/x64") \ 615 "Control whether AES instructions can be used on x86/x64") \
612 \ 616 \
617 product(bool, UseSHA, false, \
618 "Control whether SHA instructions can be used on SPARC") \
619 \
613 product(uintx, LargePageSizeInBytes, 0, \ 620 product(uintx, LargePageSizeInBytes, 0, \
614 "Large page size (0 to let VM choose the page size)") \ 621 "Large page size (0 to let VM choose the page size)") \
615 \ 622 \
616 product(uintx, LargePageHeapSizeThreshold, 128*M, \ 623 product(uintx, LargePageHeapSizeThreshold, 128*M, \
617 "Use large pages if maximum heap is at least this big") \ 624 "Use large pages if maximum heap is at least this big") \
713 product(bool, UseSSE42Intrinsics, false, \ 720 product(bool, UseSSE42Intrinsics, false, \
714 "SSE4.2 versions of intrinsics") \ 721 "SSE4.2 versions of intrinsics") \
715 \ 722 \
716 product(bool, UseAESIntrinsics, false, \ 723 product(bool, UseAESIntrinsics, false, \
717 "Use intrinsics for AES versions of crypto") \ 724 "Use intrinsics for AES versions of crypto") \
725 \
726 product(bool, UseSHA1Intrinsics, false, \
727 "Use intrinsics for SHA-1 crypto hash function") \
728 \
729 product(bool, UseSHA256Intrinsics, false, \
730 "Use intrinsics for SHA-224 and SHA-256 crypto hash functions") \
731 \
732 product(bool, UseSHA512Intrinsics, false, \
733 "Use intrinsics for SHA-384 and SHA-512 crypto hash functions") \
718 \ 734 \
719 product(bool, UseCRC32Intrinsics, false, \ 735 product(bool, UseCRC32Intrinsics, false, \
720 "use intrinsics for java.util.zip.CRC32") \ 736 "use intrinsics for java.util.zip.CRC32") \
721 \ 737 \
722 develop(bool, TraceCallFixup, false, \ 738 develop(bool, TraceCallFixup, false, \
942 "Native memory tracking options") \ 958 "Native memory tracking options") \
943 \ 959 \
944 diagnostic(bool, PrintNMTStatistics, false, \ 960 diagnostic(bool, PrintNMTStatistics, false, \
945 "Print native memory tracking summary data if it is on") \ 961 "Print native memory tracking summary data if it is on") \
946 \ 962 \
947 diagnostic(bool, AutoShutdownNMT, true, \
948 "Automatically shutdown native memory tracking under stress " \
949 "situations. When set to false, native memory tracking tries to " \
950 "stay alive at the expense of JVM performance") \
951 \
952 diagnostic(bool, LogCompilation, false, \ 963 diagnostic(bool, LogCompilation, false, \
953 "Log compilation activity in detail to LogFile") \ 964 "Log compilation activity in detail to LogFile") \
954 \ 965 \
955 product(bool, PrintCompilation, false, \ 966 product(bool, PrintCompilation, false, \
956 "Print compilations") \ 967 "Print compilations") \
1084 "Verify protection domain before resolution in system dictionary")\ 1095 "Verify protection domain before resolution in system dictionary")\
1085 \ 1096 \
1086 product(bool, ClassUnloading, true, \ 1097 product(bool, ClassUnloading, true, \
1087 "Do unloading of classes") \ 1098 "Do unloading of classes") \
1088 \ 1099 \
1100 product(bool, ClassUnloadingWithConcurrentMark, true, \
1101 "Do unloading of classes with a concurrent marking cycle") \
1102 \
1089 develop(bool, DisableStartThread, false, \ 1103 develop(bool, DisableStartThread, false, \
1090 "Disable starting of additional Java threads " \ 1104 "Disable starting of additional Java threads " \
1091 "(for debugging only)") \ 1105 "(for debugging only)") \
1092 \ 1106 \
1093 develop(bool, MemProfiling, false, \ 1107 develop(bool, MemProfiling, false, \
1218 "Restore MXCSR when returning from JNI calls") \ 1232 "Restore MXCSR when returning from JNI calls") \
1219 \ 1233 \
1220 product(bool, CheckJNICalls, false, \ 1234 product(bool, CheckJNICalls, false, \
1221 "Verify all arguments to JNI calls") \ 1235 "Verify all arguments to JNI calls") \
1222 \ 1236 \
1237 product(bool, CheckEndorsedAndExtDirs, false, \
1238 "Verify the endorsed and extension directories are not used") \
1239 \
1223 product(bool, UseFastJNIAccessors, true, \ 1240 product(bool, UseFastJNIAccessors, true, \
1224 "Use optimized versions of Get<Primitive>Field") \ 1241 "Use optimized versions of Get<Primitive>Field") \
1242 \
1243 product(intx, MaxJNILocalCapacity, 65536, \
1244 "Maximum allowable local JNI handle capacity to " \
1245 "EnsureLocalCapacity() and PushLocalFrame(), " \
1246 "where <= 0 is unlimited, default: 65536") \
1225 \ 1247 \
1226 product(bool, EagerXrunInit, false, \ 1248 product(bool, EagerXrunInit, false, \
1227 "Eagerly initialize -Xrun libraries; allows startup profiling, " \ 1249 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
1228 "but not all -Xrun libraries may support the state of the VM " \ 1250 "but not all -Xrun libraries may support the state of the VM " \
1229 "at this time") \ 1251 "at this time") \
1945 "concurrent GC cycle. It is used by GCs that trigger a " \ 1967 "concurrent GC cycle. It is used by GCs that trigger a " \
1946 "concurrent GC cycle based on the occupancy of the entire heap, " \ 1968 "concurrent GC cycle based on the occupancy of the entire heap, " \
1947 "not just one of the generations (e.g., G1). A value of 0 " \ 1969 "not just one of the generations (e.g., G1). A value of 0 " \
1948 "denotes 'do constant GC cycles'.") \ 1970 "denotes 'do constant GC cycles'.") \
1949 \ 1971 \
1972 manageable(intx, CMSTriggerInterval, -1, \
1973 "Commence a CMS collection cycle (at least) every so many " \
1974 "milliseconds (0 permanently, -1 disabled)") \
1975 \
1950 product(bool, UseCMSInitiatingOccupancyOnly, false, \ 1976 product(bool, UseCMSInitiatingOccupancyOnly, false, \
1951 "Only use occupancy as a criterion for starting a CMS collection")\ 1977 "Only use occupancy as a criterion for starting a CMS collection")\
1952 \ 1978 \
1953 product(uintx, CMSIsTooFullPercentage, 98, \ 1979 product(uintx, CMSIsTooFullPercentage, 98, \
1954 "An absolute ceiling above which CMS will always consider the " \ 1980 "An absolute ceiling above which CMS will always consider the " \
2309 "Print date stamps at garbage collection") \ 2335 "Print date stamps at garbage collection") \
2310 \ 2336 \
2311 manageable(bool, PrintGCTimeStamps, false, \ 2337 manageable(bool, PrintGCTimeStamps, false, \
2312 "Print timestamps at garbage collection") \ 2338 "Print timestamps at garbage collection") \
2313 \ 2339 \
2340 manageable(bool, PrintGCID, false, \
2341 "Print an identifier for each garbage collection") \
2342 \
2314 product(bool, PrintGCTaskTimeStamps, false, \ 2343 product(bool, PrintGCTaskTimeStamps, false, \
2315 "Print timestamps for individual gc worker thread tasks") \ 2344 "Print timestamps for individual gc worker thread tasks") \
2316 \ 2345 \
2317 develop(intx, ConcGCYieldTimeout, 0, \ 2346 develop(intx, ConcGCYieldTimeout, 0, \
2318 "If non-zero, assert that GC threads yield within this " \ 2347 "If non-zero, assert that GC threads yield within this " \
2331 develop(bool, TraceFinalizerRegistration, false, \ 2360 develop(bool, TraceFinalizerRegistration, false, \
2332 "Trace registration of final references") \ 2361 "Trace registration of final references") \
2333 \ 2362 \
2334 notproduct(bool, TraceScavenge, false, \ 2363 notproduct(bool, TraceScavenge, false, \
2335 "Trace scavenge") \ 2364 "Trace scavenge") \
2365 \
2366 product(bool, IgnoreEmptyClassPaths, false, \
2367 "Ignore empty path elements in -classpath") \
2368 \
2369 product(bool, TraceClassPaths, false, \
2370 "Trace processing of class paths") \
2336 \ 2371 \
2337 product_rw(bool, TraceClassLoading, false, \ 2372 product_rw(bool, TraceClassLoading, false, \
2338 "Trace all classes loaded") \ 2373 "Trace all classes loaded") \
2339 \ 2374 \
2340 product(bool, TraceClassLoadingPreorder, false, \ 2375 product(bool, TraceClassLoadingPreorder, false, \
3792 "used in future JVM runs") \ 3827 "used in future JVM runs") \
3793 \ 3828 \
3794 product(bool, PrintSharedSpaces, false, \ 3829 product(bool, PrintSharedSpaces, false, \
3795 "Print usage of shared spaces") \ 3830 "Print usage of shared spaces") \
3796 \ 3831 \
3832 product(bool, PrintSharedArchiveAndExit, false, \
3833 "Print shared archive file contents") \
3834 \
3835 product(bool, PrintSharedDictionary, false, \
3836 "If PrintSharedArchiveAndExit is true, also print the shared " \
3837 "dictionary") \
3838 \
3797 product(uintx, SharedReadWriteSize, NOT_LP64(12*M) LP64_ONLY(16*M), \ 3839 product(uintx, SharedReadWriteSize, NOT_LP64(12*M) LP64_ONLY(16*M), \
3798 "Size of read-write space for metadata (in bytes)") \ 3840 "Size of read-write space for metadata (in bytes)") \
3799 \ 3841 \
3800 product(uintx, SharedReadOnlySize, NOT_LP64(12*M) LP64_ONLY(16*M), \ 3842 product(uintx, SharedReadOnlySize, NOT_LP64(12*M) LP64_ONLY(16*M), \
3801 "Size of read-only space for metadata (in bytes)") \ 3843 "Size of read-only space for metadata (in bytes)") \
3811 "Address to allocate shared memory region for class data") \ 3853 "Address to allocate shared memory region for class data") \
3812 \ 3854 \
3813 diagnostic(bool, EnableInvokeDynamic, true, \ 3855 diagnostic(bool, EnableInvokeDynamic, true, \
3814 "support JSR 292 (method handles, invokedynamic, " \ 3856 "support JSR 292 (method handles, invokedynamic, " \
3815 "anonymous classes") \ 3857 "anonymous classes") \
3858 \
3859 diagnostic(bool, IgnoreUnverifiableClassesDuringDump, false, \
3860 "Do not quit -Xshare:dump even if we encounter unverifiable " \
3861 "classes. Just exclude them from the shared dictionary.") \
3816 \ 3862 \
3817 diagnostic(bool, PrintMethodHandleStubs, false, \ 3863 diagnostic(bool, PrintMethodHandleStubs, false, \
3818 "Print generated stub code for method handles") \ 3864 "Print generated stub code for method handles") \
3819 \ 3865 \
3820 develop(bool, TraceMethodHandles, false, \ 3866 develop(bool, TraceMethodHandles, false, \
3901 "Enable internal testing APIs") \ 3947 "Enable internal testing APIs") \
3902 \ 3948 \
3903 product(bool, PrintGCCause, true, \ 3949 product(bool, PrintGCCause, true, \
3904 "Include GC cause in GC logging") \ 3950 "Include GC cause in GC logging") \
3905 \ 3951 \
3952 experimental(intx, SurvivorAlignmentInBytes, 0, \
3953 "Default survivor space alignment in bytes") \
3954 \
3906 product(bool , AllowNonVirtualCalls, false, \ 3955 product(bool , AllowNonVirtualCalls, false, \
3907 "Obey the ACC_SUPER flag and allow invokenonvirtual calls") \ 3956 "Obey the ACC_SUPER flag and allow invokenonvirtual calls") \
3908 \ 3957 \
3958 product(ccstr, DumpLoadedClassList, NULL, \
3959 "Dump the names all loaded classes, that could be stored into " \
3960 "the CDS archive, in the specified file") \
3961 \
3962 product(ccstr, SharedClassListFile, NULL, \
3963 "Override the default CDS class list") \
3964 \
3909 diagnostic(ccstr, SharedArchiveFile, NULL, \ 3965 diagnostic(ccstr, SharedArchiveFile, NULL, \
3910 "Override the default location of the CDS archive file") \ 3966 "Override the default location of the CDS archive file") \
3967 \
3968 product(ccstr, ExtraSharedClassListFile, NULL, \
3969 "Extra classlist for building the CDS archive file") \
3911 \ 3970 \
3912 experimental(uintx, ArrayAllocatorMallocLimit, \ 3971 experimental(uintx, ArrayAllocatorMallocLimit, \
3913 SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx), \ 3972 SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx), \
3914 "Allocation less than this value will be allocated " \ 3973 "Allocation less than this value will be allocated " \
3915 "using malloc. Larger allocations will use mmap.") \ 3974 "using malloc. Larger allocations will use mmap.") \