comparison src/share/vm/runtime/globals.hpp @ 4970:33df1aeaebbf

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 13:10:13 +0100
parents f761948a7cd5 cfdfbeac0a5b
children 5715abb8e29a
comparison
equal deleted inserted replaced
4703:2cfb7fb2dce7 4970:33df1aeaebbf
1 /* 1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
24 24
25 #ifndef SHARE_VM_RUNTIME_GLOBALS_HPP 25 #ifndef SHARE_VM_RUNTIME_GLOBALS_HPP
26 #define SHARE_VM_RUNTIME_GLOBALS_HPP 26 #define SHARE_VM_RUNTIME_GLOBALS_HPP
27 27
28 #include "utilities/debug.hpp" 28 #include "utilities/debug.hpp"
29
30 // use this for flags that are true per default in the tiered build
31 // but false in non-tiered builds, and vice versa
32 #ifdef TIERED
33 #define trueInTiered true
34 #define falseInTiered false
35 #else
36 #define trueInTiered false
37 #define falseInTiered true
38 #endif
39
29 #ifdef TARGET_ARCH_x86 40 #ifdef TARGET_ARCH_x86
30 # include "globals_x86.hpp" 41 # include "globals_x86.hpp"
31 #endif 42 #endif
32 #ifdef TARGET_ARCH_sparc 43 #ifdef TARGET_ARCH_sparc
33 # include "globals_sparc.hpp" 44 # include "globals_sparc.hpp"
243 bool is_writeable() const; 254 bool is_writeable() const;
244 bool is_external() const; 255 bool is_external() const;
245 256
246 bool is_unlocker_ext() const; 257 bool is_unlocker_ext() const;
247 bool is_unlocked_ext() const; 258 bool is_unlocked_ext() const;
259 bool is_writeable_ext() const;
260 bool is_external_ext() const;
248 261
249 void print_on(outputStream* st, bool withComments = false ); 262 void print_on(outputStream* st, bool withComments = false );
250 void print_as_flag(outputStream* st); 263 void print_as_flag(outputStream* st);
251 }; 264 };
252 265
322 static bool ccstrAtPut(char* name, size_t len, ccstr* value, FlagValueOrigin origin); 335 static bool ccstrAtPut(char* name, size_t len, ccstr* value, FlagValueOrigin origin);
323 static bool ccstrAtPut(char* name, ccstr* value, FlagValueOrigin origin) { return ccstrAtPut(name, strlen(name), value, origin); } 336 static bool ccstrAtPut(char* name, ccstr* value, FlagValueOrigin origin) { return ccstrAtPut(name, strlen(name), value, origin); }
324 337
325 // Returns false if name is not a command line flag. 338 // Returns false if name is not a command line flag.
326 static bool wasSetOnCmdline(const char* name, bool* value); 339 static bool wasSetOnCmdline(const char* name, bool* value);
327 static void printSetFlags(); 340 static void printSetFlags(outputStream* out);
328 341
329 static void printFlags(bool withComments = false ); 342 static void printFlags(outputStream* out, bool withComments);
330 343
331 static void verify() PRODUCT_RETURN; 344 static void verify() PRODUCT_RETURN;
332 }; 345 };
333 346
334 // use this for flags that are true by default in the debug version but 347 // use this for flags that are true by default in the debug version but
347 #define trueInProduct true 360 #define trueInProduct true
348 #define falseInProduct false 361 #define falseInProduct false
349 #else 362 #else
350 #define trueInProduct false 363 #define trueInProduct false
351 #define falseInProduct true 364 #define falseInProduct true
352 #endif
353
354 // use this for flags that are true per default in the tiered build
355 // but false in non-tiered builds, and vice versa
356 #ifdef TIERED
357 #define trueInTiered true
358 #define falseInTiered false
359 #else
360 #define trueInTiered false
361 #define falseInTiered true
362 #endif 365 #endif
363 366
364 #ifdef JAVASE_EMBEDDED 367 #ifdef JAVASE_EMBEDDED
365 #define falseInEmbedded false 368 #define falseInEmbedded false
366 #else 369 #else
523 "True for register window machines (sparc/ia64)") \ 526 "True for register window machines (sparc/ia64)") \
524 \ 527 \
525 product(intx, UseSSE, 99, \ 528 product(intx, UseSSE, 99, \
526 "Highest supported SSE instructions set on x86/x64") \ 529 "Highest supported SSE instructions set on x86/x64") \
527 \ 530 \
531 product(intx, UseAVX, 99, \
532 "Highest supported AVX instructions set on x86/x64") \
533 \
528 product(intx, UseVIS, 99, \ 534 product(intx, UseVIS, 99, \
529 "Highest supported VIS instructions set on Sparc") \ 535 "Highest supported VIS instructions set on Sparc") \
530 \ 536 \
531 product(uintx, LargePageSizeInBytes, 0, \ 537 product(uintx, LargePageSizeInBytes, 0, \
532 "Large page size (0 to let VM choose the page size") \ 538 "Large page size (0 to let VM choose the page size") \
650 develop(bool, SpecialStringEquals, true, \ 656 develop(bool, SpecialStringEquals, true, \
651 "special version of string equals") \ 657 "special version of string equals") \
652 \ 658 \
653 develop(bool, SpecialArraysEquals, true, \ 659 develop(bool, SpecialArraysEquals, true, \
654 "special version of Arrays.equals(char[],char[])") \ 660 "special version of Arrays.equals(char[],char[])") \
661 \
662 product(bool, CriticalJNINatives, true, \
663 "check for critical JNI entry points") \
664 \
665 notproduct(bool, StressCriticalJNINatives, false, \
666 "Exercise register saving code in critical natives") \
655 \ 667 \
656 product(bool, UseSSE42Intrinsics, false, \ 668 product(bool, UseSSE42Intrinsics, false, \
657 "SSE4.2 versions of intrinsics") \ 669 "SSE4.2 versions of intrinsics") \
658 \ 670 \
659 product(bool, UseCondCardMark, false, \ 671 product(bool, UseCondCardMark, false, \
728 "Trace external suspend wait failures") \ 740 "Trace external suspend wait failures") \
729 \ 741 \
730 product(bool, MaxFDLimit, true, \ 742 product(bool, MaxFDLimit, true, \
731 "Bump the number of file descriptors to max in solaris.") \ 743 "Bump the number of file descriptors to max in solaris.") \
732 \ 744 \
733 notproduct(bool, LogEvents, trueInDebug, \ 745 diagnostic(bool, LogEvents, true, \
734 "Enable Event log") \ 746 "Enable the various ring buffer event logs") \
747 \
748 diagnostic(intx, LogEventsBufferEntries, 10, \
749 "Enable the various ring buffer event logs") \
735 \ 750 \
736 product(bool, BytecodeVerificationRemote, true, \ 751 product(bool, BytecodeVerificationRemote, true, \
737 "Enables the Java bytecode verifier for remote classes") \ 752 "Enables the Java bytecode verifier for remote classes") \
738 \ 753 \
739 product(bool, BytecodeVerificationLocal, false, \ 754 product(bool, BytecodeVerificationLocal, false, \
1037 develop(bool, MemProfiling, false, \ 1052 develop(bool, MemProfiling, false, \
1038 "Write memory usage profiling to log file") \ 1053 "Write memory usage profiling to log file") \
1039 \ 1054 \
1040 notproduct(bool, PrintSystemDictionaryAtExit, false, \ 1055 notproduct(bool, PrintSystemDictionaryAtExit, false, \
1041 "Prints the system dictionary at exit") \ 1056 "Prints the system dictionary at exit") \
1057 \
1058 experimental(intx, PredictedLoadedClassCount, 0, \
1059 "Experimental: Tune loaded class cache starting size.") \
1042 \ 1060 \
1043 diagnostic(bool, UnsyncloadClass, false, \ 1061 diagnostic(bool, UnsyncloadClass, false, \
1044 "Unstable: VM calls loadClass unsynchronized. Custom " \ 1062 "Unstable: VM calls loadClass unsynchronized. Custom " \
1045 "class loader must call VM synchronized for findClass " \ 1063 "class loader must call VM synchronized for findClass " \
1046 "and defineClass.") \ 1064 "and defineClass.") \
1552 "we simulate overflow; a smaller number increases frequency") \ 1570 "we simulate overflow; a smaller number increases frequency") \
1553 \ 1571 \
1554 product(uintx, ParGCDesiredObjsFromOverflowList, 20, \ 1572 product(uintx, ParGCDesiredObjsFromOverflowList, 20, \
1555 "The desired number of objects to claim from the overflow list") \ 1573 "The desired number of objects to claim from the overflow list") \
1556 \ 1574 \
1557 diagnostic(intx, ParGCStridesPerThread, 2, \ 1575 diagnostic(uintx, ParGCStridesPerThread, 2, \
1558 "The number of strides per worker thread that we divide up the " \ 1576 "The number of strides per worker thread that we divide up the " \
1559 "card table scanning work into") \ 1577 "card table scanning work into") \
1560 \ 1578 \
1561 diagnostic(intx, ParGCCardsPerStrideChunk, 256, \ 1579 diagnostic(intx, ParGCCardsPerStrideChunk, 256, \
1562 "The number of cards in each chunk of the parallel chunks used " \ 1580 "The number of cards in each chunk of the parallel chunks used " \
2999 "(0 means none)")) \ 3017 "(0 means none)")) \
3000 \ 3018 \
3001 product(intx, SafepointTimeoutDelay, 10000, \ 3019 product(intx, SafepointTimeoutDelay, 10000, \
3002 "Delay in milliseconds for option SafepointTimeout") \ 3020 "Delay in milliseconds for option SafepointTimeout") \
3003 \ 3021 \
3004 product(intx, NmethodSweepFraction, 4, \ 3022 product(intx, NmethodSweepFraction, 16, \
3005 "Number of invocations of sweeper to cover all nmethods") \ 3023 "Number of invocations of sweeper to cover all nmethods") \
3006 \ 3024 \
3007 product(intx, NmethodSweepCheckInterval, 5, \ 3025 product(intx, NmethodSweepCheckInterval, 5, \
3008 "Compilers wake up every n seconds to possibly sweep nmethods") \ 3026 "Compilers wake up every n seconds to possibly sweep nmethods") \
3009 \ 3027 \
3476 " used with care, as sometimes it can cause performance "\ 3494 " used with care, as sometimes it can cause performance "\
3477 " degradation in the application and/or the entire system. On "\ 3495 " degradation in the application and/or the entire system. On "\
3478 " Linux this policy requires root privilege.") \ 3496 " Linux this policy requires root privilege.") \
3479 \ 3497 \
3480 product(bool, ThreadPriorityVerbose, false, \ 3498 product(bool, ThreadPriorityVerbose, false, \
3481 "print priority changes") \ 3499 "Print priority changes") \
3482 \ 3500 \
3483 product(intx, DefaultThreadPriority, -1, \ 3501 product(intx, DefaultThreadPriority, -1, \
3484 "what native priority threads run at if not specified elsewhere (-1 means no change)") \ 3502 "The native priority at which threads run if not elsewhere " \
3503 "specified (-1 means no change)") \
3485 \ 3504 \
3486 product(intx, CompilerThreadPriority, -1, \ 3505 product(intx, CompilerThreadPriority, -1, \
3487 "what priority should compiler threads run at (-1 means no change)") \ 3506 "The native priority at which compiler threads should run " \
3507 "(-1 means no change)") \
3488 \ 3508 \
3489 product(intx, VMThreadPriority, -1, \ 3509 product(intx, VMThreadPriority, -1, \
3490 "what priority should VM threads run at (-1 means no change)") \ 3510 "The native priority at which the VM thread should run " \
3511 "(-1 means no change)") \
3491 \ 3512 \
3492 product(bool, CompilerThreadHintNoPreempt, true, \ 3513 product(bool, CompilerThreadHintNoPreempt, true, \
3493 "(Solaris only) Give compiler threads an extra quanta") \ 3514 "(Solaris only) Give compiler threads an extra quanta") \
3494 \ 3515 \
3495 product(bool, VMThreadHintNoPreempt, false, \ 3516 product(bool, VMThreadHintNoPreempt, false, \
3504 product(intx, JavaPriority7_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3525 product(intx, JavaPriority7_To_OSPriority, -1, "Map Java priorities to OS priorities") \
3505 product(intx, JavaPriority8_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3526 product(intx, JavaPriority8_To_OSPriority, -1, "Map Java priorities to OS priorities") \
3506 product(intx, JavaPriority9_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3527 product(intx, JavaPriority9_To_OSPriority, -1, "Map Java priorities to OS priorities") \
3507 product(intx, JavaPriority10_To_OSPriority,-1, "Map Java priorities to OS priorities") \ 3528 product(intx, JavaPriority10_To_OSPriority,-1, "Map Java priorities to OS priorities") \
3508 \ 3529 \
3530 experimental(bool, UseCriticalJavaThreadPriority, false, \
3531 "Java thread priority 10 maps to critical scheduling priority") \
3532 \
3533 experimental(bool, UseCriticalCompilerThreadPriority, false, \
3534 "Compiler thread(s) run at critical scheduling priority") \
3535 \
3536 experimental(bool, UseCriticalCMSThreadPriority, false, \
3537 "ConcurrentMarkSweep thread runs at critical scheduling priority")\
3538 \
3509 /* compiler debugging */ \ 3539 /* compiler debugging */ \
3510 notproduct(intx, CompileTheWorldStartAt, 1, \ 3540 notproduct(intx, CompileTheWorldStartAt, 1, \
3511 "First class to consider when using +CompileTheWorld") \ 3541 "First class to consider when using +CompileTheWorld") \
3512 \ 3542 \
3513 notproduct(intx, CompileTheWorldStopAt, max_jint, \ 3543 notproduct(intx, CompileTheWorldStopAt, max_jint, \
3573 \ 3603 \
3574 product(intx, Tier3CompileThreshold, 2000, \ 3604 product(intx, Tier3CompileThreshold, 2000, \
3575 "Threshold at which tier 3 compilation is invoked (invocation " \ 3605 "Threshold at which tier 3 compilation is invoked (invocation " \
3576 "minimum must be satisfied.") \ 3606 "minimum must be satisfied.") \
3577 \ 3607 \
3578 product(intx, Tier3BackEdgeThreshold, 7000, \ 3608 product(intx, Tier3BackEdgeThreshold, 60000, \
3579 "Back edge threshold at which tier 3 OSR compilation is invoked") \ 3609 "Back edge threshold at which tier 3 OSR compilation is invoked") \
3580 \ 3610 \
3581 product(intx, Tier4InvocationThreshold, 5000, \ 3611 product(intx, Tier4InvocationThreshold, 5000, \
3582 "Compile if number of method invocations crosses this " \ 3612 "Compile if number of method invocations crosses this " \
3583 "threshold") \ 3613 "threshold") \
3825 "when constructing method handles, try to improve them") \ 3855 "when constructing method handles, try to improve them") \
3826 \ 3856 \
3827 develop(bool, StressMethodHandleWalk, false, \ 3857 develop(bool, StressMethodHandleWalk, false, \
3828 "Process all method handles with MethodHandleWalk") \ 3858 "Process all method handles with MethodHandleWalk") \
3829 \ 3859 \
3830 diagnostic(bool, UseRicochetFrames, true, \
3831 "use ricochet stack frames for method handle combination, " \
3832 "if the platform supports them") \
3833 \
3834 experimental(bool, TrustFinalNonStaticFields, false, \ 3860 experimental(bool, TrustFinalNonStaticFields, false, \
3835 "trust final non-static declarations for constant folding") \ 3861 "trust final non-static declarations for constant folding") \
3836 \ 3862 \
3837 experimental(bool, AllowInvokeGeneric, false, \ 3863 experimental(bool, AllowInvokeGeneric, false, \
3838 "accept MethodHandle.invoke and MethodHandle.invokeGeneric " \ 3864 "accept MethodHandle.invoke and MethodHandle.invokeGeneric " \
3874 "Number of buckets in the interned String table") \ 3900 "Number of buckets in the interned String table") \
3875 \ 3901 \
3876 product(bool, UseVMInterruptibleIO, false, \ 3902 product(bool, UseVMInterruptibleIO, false, \
3877 "(Unstable, Solaris-specific) Thread interrupt before or with " \ 3903 "(Unstable, Solaris-specific) Thread interrupt before or with " \
3878 "EINTR for I/O operations results in OS_INTRPT. The default value"\ 3904 "EINTR for I/O operations results in OS_INTRPT. The default value"\
3879 " of this flag is true for JDK 6 and earliers") 3905 " of this flag is true for JDK 6 and earlier")
3880 3906
3881 /* 3907 /*
3882 * Macros for factoring of globals 3908 * Macros for factoring of globals
3883 */ 3909 */
3884 3910