1.1 --- a/src/share/vm/runtime/globals.hpp Wed Oct 14 16:43:13 2020 +0800 1.2 +++ b/src/share/vm/runtime/globals.hpp Wed Oct 14 17:44:48 2020 +0800 1.3 @@ -216,6 +216,10 @@ 1.4 1.5 #endif // no compilers 1.6 1.7 +#if !INCLUDE_JFR 1.8 +#define LogJFR false 1.9 +#endif 1.10 + 1.11 // string type aliases used only in this file 1.12 typedef const char* ccstr; 1.13 typedef const char* ccstrlist; // represents string arguments which accumulate 1.14 @@ -377,33 +381,33 @@ 1.15 1.16 class CommandLineFlags { 1.17 public: 1.18 - static bool boolAt(const char* name, size_t len, bool* value); 1.19 - static bool boolAt(const char* name, bool* value) { return boolAt(name, strlen(name), value); } 1.20 + static bool boolAt(const char* name, size_t len, bool* value, bool allow_locked = false, bool return_flag = false); 1.21 + static bool boolAt(const char* name, bool* value, bool allow_locked = false, bool return_flag = false) { return boolAt(name, strlen(name), value, allow_locked, return_flag); } 1.22 static bool boolAtPut(const char* name, size_t len, bool* value, Flag::Flags origin); 1.23 static bool boolAtPut(const char* name, bool* value, Flag::Flags origin) { return boolAtPut(name, strlen(name), value, origin); } 1.24 1.25 - static bool intxAt(const char* name, size_t len, intx* value); 1.26 - static bool intxAt(const char* name, intx* value) { return intxAt(name, strlen(name), value); } 1.27 + static bool intxAt(const char* name, size_t len, intx* value, bool allow_locked = false, bool return_flag = false); 1.28 + static bool intxAt(const char* name, intx* value, bool allow_locked = false, bool return_flag = false) { return intxAt(name, strlen(name), value, allow_locked, return_flag); } 1.29 static bool intxAtPut(const char* name, size_t len, intx* value, Flag::Flags origin); 1.30 static bool intxAtPut(const char* name, intx* value, Flag::Flags origin) { return intxAtPut(name, strlen(name), value, origin); } 1.31 1.32 - static bool uintxAt(const char* name, size_t len, uintx* value); 1.33 - static bool uintxAt(const char* name, uintx* value) { return uintxAt(name, strlen(name), value); } 1.34 + static bool uintxAt(const char* name, size_t len, uintx* value, bool allow_locked = false, bool return_flag = false); 1.35 + static bool uintxAt(const char* name, uintx* value, bool allow_locked = false, bool return_flag = false) { return uintxAt(name, strlen(name), value, allow_locked, return_flag); } 1.36 static bool uintxAtPut(const char* name, size_t len, uintx* value, Flag::Flags origin); 1.37 static bool uintxAtPut(const char* name, uintx* value, Flag::Flags origin) { return uintxAtPut(name, strlen(name), value, origin); } 1.38 1.39 - static bool uint64_tAt(const char* name, size_t len, uint64_t* value); 1.40 - static bool uint64_tAt(const char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); } 1.41 + static bool uint64_tAt(const char* name, size_t len, uint64_t* value, bool allow_locked = false, bool return_flag = false); 1.42 + static bool uint64_tAt(const char* name, uint64_t* value, bool allow_locked = false, bool return_flag = false) { return uint64_tAt(name, strlen(name), value, allow_locked, return_flag); } 1.43 static bool uint64_tAtPut(const char* name, size_t len, uint64_t* value, Flag::Flags origin); 1.44 static bool uint64_tAtPut(const char* name, uint64_t* value, Flag::Flags origin) { return uint64_tAtPut(name, strlen(name), value, origin); } 1.45 1.46 - static bool doubleAt(const char* name, size_t len, double* value); 1.47 - static bool doubleAt(const char* name, double* value) { return doubleAt(name, strlen(name), value); } 1.48 + static bool doubleAt(const char* name, size_t len, double* value, bool allow_locked = false, bool return_flag = false); 1.49 + static bool doubleAt(const char* name, double* value, bool allow_locked = false, bool return_flag = false) { return doubleAt(name, strlen(name), value, allow_locked, return_flag); } 1.50 static bool doubleAtPut(const char* name, size_t len, double* value, Flag::Flags origin); 1.51 static bool doubleAtPut(const char* name, double* value, Flag::Flags origin) { return doubleAtPut(name, strlen(name), value, origin); } 1.52 1.53 - static bool ccstrAt(const char* name, size_t len, ccstr* value); 1.54 - static bool ccstrAt(const char* name, ccstr* value) { return ccstrAt(name, strlen(name), value); } 1.55 + static bool ccstrAt(const char* name, size_t len, ccstr* value, bool allow_locked = false, bool return_flag = false); 1.56 + static bool ccstrAt(const char* name, ccstr* value, bool allow_locked = false, bool return_flag = false) { return ccstrAt(name, strlen(name), value, allow_locked, return_flag); } 1.57 // Contract: Flag will make private copy of the incoming value. 1.58 // Outgoing value is always malloc-ed, and caller MUST call free. 1.59 static bool ccstrAtPut(const char* name, size_t len, ccstr* value, Flag::Flags origin); 1.60 @@ -3994,15 +3998,35 @@ 1.61 "Allocation less than this value will be allocated " \ 1.62 "using malloc. Larger allocations will use mmap.") \ 1.63 \ 1.64 - product(bool, EnableTracing, false, \ 1.65 - "Enable event-based tracing") \ 1.66 - \ 1.67 - product(bool, UseLockedTracing, false, \ 1.68 - "Use locked-tracing when doing event-based tracing") \ 1.69 - \ 1.70 product_pd(bool, PreserveFramePointer, \ 1.71 "Use the FP register for holding the frame pointer " \ 1.72 - "and not as a general purpose register.") 1.73 + "and not as a general purpose register.") \ 1.74 + \ 1.75 + product(bool, EnableTracing, false, \ 1.76 + "Enable event-based tracing" \ 1.77 + "Deprecated: use FlightRecorder instead") \ 1.78 + \ 1.79 + product(bool, UseLockedTracing, false, \ 1.80 + "Use locked-tracing when doing event-based tracing" \ 1.81 + "Deprecated: use FlightRecorder instead") \ 1.82 + \ 1.83 + JFR_ONLY(product(bool, FlightRecorder, false, \ 1.84 + "Enable Flight Recorder")) \ 1.85 + \ 1.86 + JFR_ONLY(product(ccstr, FlightRecorderOptions, NULL, \ 1.87 + "Flight Recorder options")) \ 1.88 + \ 1.89 + JFR_ONLY(product(ccstr, StartFlightRecording, NULL, \ 1.90 + "Start flight recording with options")) \ 1.91 + \ 1.92 + JFR_ONLY(product(bool, UnlockCommercialFeatures, false, \ 1.93 + "This flag is ignored. Left for compatibility")) \ 1.94 + \ 1.95 + experimental(bool, UseFastUnorderedTimeStamps, false, \ 1.96 + "Use platform unstable time where supported for timestamps only") \ 1.97 + \ 1.98 + JFR_ONLY(product(bool, LogJFR, false, \ 1.99 + "Enable JFR logging (consider +Verbose)")) \ 1.100 1.101 /* 1.102 * Macros for factoring of globals