src/share/vm/runtime/globals.hpp

Print this page
rev 4773 : 8005849: JEP 167: Event-Based JVM Tracing
Reviewed-by: acorn, coleenp, sla
Contributed-by: Karen Kinnear <karen.kinnear@oracle.com>, Bengt Rutisson <bengt.rutisson@oracle.com>, Calvin Cheung <calvin.cheung@oracle.com>, Erik Gahlin <erik.gahlin@oracle.com>, Erik Helin <erik.helin@oracle.com>, Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>, Keith McGuigan <keith.mcguigan@oracle.com>, Mattias Tobiasson <mattias.tobiasson@oracle.com>, Markus Gronlund <markus.gronlund@oracle.com>, Mikael Auno <mikael.auno@oracle.com>, Nils Eliasson <nils.eliasson@oracle.com>, Nils Loodin <nils.loodin@oracle.com>, Rickard Backman <rickard.backman@oracle.com>, Staffan Larsen <staffan.larsen@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Yekaterina Kantserova <yekaterina.kantserova@oracle.com>


2294                                                                             \
2295   develop(bool, TraceParallelOldGCMarkingPhase, false,                      \
2296           "Trace parallel old gc marking phase")                            \
2297                                                                             \
2298   develop(bool, TraceParallelOldGCSummaryPhase, false,                      \
2299           "Trace parallel old gc summary phase")                            \
2300                                                                             \
2301   develop(bool, TraceParallelOldGCCompactionPhase, false,                   \
2302           "Trace parallel old gc compaction phase")                         \
2303                                                                             \
2304   develop(bool, TraceParallelOldGCDensePrefix, false,                       \
2305           "Trace parallel old gc dense prefix computation")                 \
2306                                                                             \
2307   develop(bool, IgnoreLibthreadGPFault, false,                              \
2308           "Suppress workaround for libthread GP fault")                     \
2309                                                                             \
2310   product(bool, PrintJNIGCStalls, false,                                    \
2311           "Print diagnostic message when GC is stalled"                     \
2312           "by JNI critical section")                                        \
2313                                                                             \




2314   /* GC log rotation setting */                                             \
2315                                                                             \
2316   product(bool, UseGCLogFileRotation, false,                                \
2317           "Prevent large gclog file for long running app. "                 \
2318           "Requires -Xloggc:<filename>")                                    \
2319                                                                             \
2320   product(uintx, NumberOfGCLogFiles, 0,                                     \
2321           "Number of gclog files in rotation, "                             \
2322           "Default: 0, no rotation")                                        \
2323                                                                             \
2324   product(uintx, GCLogFileSize, 0,                                          \
2325           "GC log file size, Default: 0 bytes, no rotation "                \
2326           "Only valid with UseGCLogFileRotation")                           \
2327                                                                             \
2328   /* JVMTI heap profiling */                                                \
2329                                                                             \
2330   diagnostic(bool, TraceJVMTIObjectTagging, false,                          \
2331           "Trace JVMTI object tagging calls")                               \
2332                                                                             \
2333   diagnostic(bool, VerifyBeforeIteration, false,                            \


3671   product(bool, UseVMInterruptibleIO, false,                                \
3672           "(Unstable, Solaris-specific) Thread interrupt before or with "   \
3673           "EINTR for I/O operations results in OS_INTRPT. The default value"\
3674           " of this flag is true for JDK 6 and earlier")                    \
3675                                                                             \
3676   diagnostic(bool, WhiteBoxAPI, false,                                      \
3677           "Enable internal testing APIs")                                   \
3678                                                                             \
3679   product(bool, PrintGCCause, true,                                         \
3680           "Include GC cause in GC logging")                                 \
3681                                                                             \
3682   product(bool , AllowNonVirtualCalls, false,                               \
3683           "Obey the ACC_SUPER flag and allow invokenonvirtual calls")       \
3684                                                                             \
3685   diagnostic(ccstr, SharedArchiveFile, NULL,                                \
3686           "Override the default location of the CDS archive file")          \
3687                                                                             \
3688   experimental(uintx, ArrayAllocatorMallocLimit,                            \
3689           SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx),                        \
3690           "Allocation less than this value will be allocated "              \
3691           "using malloc. Larger allocations will use mmap.")






3692 
3693 /*
3694  *  Macros for factoring of globals
3695  */
3696 
3697 // Interface macros
3698 #define DECLARE_PRODUCT_FLAG(type, name, value, doc)    extern "C" type name;
3699 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc)        extern "C" type name;
3700 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
3701 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
3702 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
3703 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
3704 #ifdef PRODUCT
3705 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc)  const type name = value;
3706 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)      const type name = pd_##name;
3707 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)
3708 #else
3709 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc)  extern "C" type name;
3710 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)      extern "C" type name;
3711 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)  extern "C" type name;




2294                                                                             \
2295   develop(bool, TraceParallelOldGCMarkingPhase, false,                      \
2296           "Trace parallel old gc marking phase")                            \
2297                                                                             \
2298   develop(bool, TraceParallelOldGCSummaryPhase, false,                      \
2299           "Trace parallel old gc summary phase")                            \
2300                                                                             \
2301   develop(bool, TraceParallelOldGCCompactionPhase, false,                   \
2302           "Trace parallel old gc compaction phase")                         \
2303                                                                             \
2304   develop(bool, TraceParallelOldGCDensePrefix, false,                       \
2305           "Trace parallel old gc dense prefix computation")                 \
2306                                                                             \
2307   develop(bool, IgnoreLibthreadGPFault, false,                              \
2308           "Suppress workaround for libthread GP fault")                     \
2309                                                                             \
2310   product(bool, PrintJNIGCStalls, false,                                    \
2311           "Print diagnostic message when GC is stalled"                     \
2312           "by JNI critical section")                                        \
2313                                                                             \
2314   experimental(double, ObjectCountCutOffPercent, 0.5,                       \
2315           "The percentage of the used heap that the instances of a class "  \
2316           "must occupy for the class to generate a trace event.")           \
2317                                                                             \
2318   /* GC log rotation setting */                                             \
2319                                                                             \
2320   product(bool, UseGCLogFileRotation, false,                                \
2321           "Prevent large gclog file for long running app. "                 \
2322           "Requires -Xloggc:<filename>")                                    \
2323                                                                             \
2324   product(uintx, NumberOfGCLogFiles, 0,                                     \
2325           "Number of gclog files in rotation, "                             \
2326           "Default: 0, no rotation")                                        \
2327                                                                             \
2328   product(uintx, GCLogFileSize, 0,                                          \
2329           "GC log file size, Default: 0 bytes, no rotation "                \
2330           "Only valid with UseGCLogFileRotation")                           \
2331                                                                             \
2332   /* JVMTI heap profiling */                                                \
2333                                                                             \
2334   diagnostic(bool, TraceJVMTIObjectTagging, false,                          \
2335           "Trace JVMTI object tagging calls")                               \
2336                                                                             \
2337   diagnostic(bool, VerifyBeforeIteration, false,                            \


3675   product(bool, UseVMInterruptibleIO, false,                                \
3676           "(Unstable, Solaris-specific) Thread interrupt before or with "   \
3677           "EINTR for I/O operations results in OS_INTRPT. The default value"\
3678           " of this flag is true for JDK 6 and earlier")                    \
3679                                                                             \
3680   diagnostic(bool, WhiteBoxAPI, false,                                      \
3681           "Enable internal testing APIs")                                   \
3682                                                                             \
3683   product(bool, PrintGCCause, true,                                         \
3684           "Include GC cause in GC logging")                                 \
3685                                                                             \
3686   product(bool , AllowNonVirtualCalls, false,                               \
3687           "Obey the ACC_SUPER flag and allow invokenonvirtual calls")       \
3688                                                                             \
3689   diagnostic(ccstr, SharedArchiveFile, NULL,                                \
3690           "Override the default location of the CDS archive file")          \
3691                                                                             \
3692   experimental(uintx, ArrayAllocatorMallocLimit,                            \
3693           SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx),                        \
3694           "Allocation less than this value will be allocated "              \
3695           "using malloc. Larger allocations will use mmap.")                \
3696                                                                             \
3697   product(bool, EnableTracing, false,                                       \
3698           "Enable event-based tracing")                                     \
3699   product(bool, UseLockedTracing, false,                                    \
3700           "Use locked-tracing when doing event-based tracing")
3701 
3702 
3703 /*
3704  *  Macros for factoring of globals
3705  */
3706 
3707 // Interface macros
3708 #define DECLARE_PRODUCT_FLAG(type, name, value, doc)    extern "C" type name;
3709 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc)        extern "C" type name;
3710 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
3711 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
3712 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
3713 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
3714 #ifdef PRODUCT
3715 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc)  const type name = value;
3716 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)      const type name = pd_##name;
3717 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)
3718 #else
3719 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc)  extern "C" type name;
3720 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)      extern "C" type name;
3721 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)  extern "C" type name;