changeset 9465:88e29f735f12

8266723: JFR periodic events are causing extra allocations Reviewed-by: adinn
author jbachorik
date Fri, 07 May 2021 17:37:05 +0200
parents 362d99aef38e
children 25016dd2c4cd
files src/share/vm/jfr/jni/jfrJniMethod.cpp src/share/vm/jfr/jni/jfrJniMethod.hpp src/share/vm/jfr/jni/jfrJniMethodRegistration.cpp src/share/vm/jfr/utilities/jfrJavaLog.cpp src/share/vm/jfr/utilities/jfrJavaLog.hpp
diffstat 5 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/jfr/jni/jfrJniMethod.cpp	Wed May 12 11:32:26 2021 +0100
+++ b/src/share/vm/jfr/jni/jfrJniMethod.cpp	Fri May 07 17:37:05 2021 +0200
@@ -238,6 +238,10 @@
  JfrJavaLog::log(tag_set, level, message, thread);
 JVM_END
 
+JVM_ENTRY_NO_ENV(jboolean, jfr_should_log(JNIEnv* env, jobject jvm, jint level))
+ return JfrJavaLog::should_log(level, thread) ? JNI_TRUE : JNI_FALSE;
+JVM_END
+
 JVM_ENTRY_NO_ENV(void, jfr_subscribe_log_level(JNIEnv* env, jobject jvm, jobject log_tag, jint id))
  JfrJavaLog::subscribe_log_level(log_tag, id, thread);
 JVM_END
--- a/src/share/vm/jfr/jni/jfrJniMethod.hpp	Wed May 12 11:32:26 2021 +0100
+++ b/src/share/vm/jfr/jni/jfrJniMethod.hpp	Fri May 07 17:37:05 2021 +0200
@@ -67,6 +67,8 @@
 
 void JNICALL jfr_log(JNIEnv* env, jobject jvm, jint tag_set, jint level, jstring message);
 
+jboolean JNICALL jfr_should_log(JNIEnv* env, jobject jvm, jint level);
+
 void JNICALL jfr_retransform_classes(JNIEnv* env, jobject jvm, jobjectArray classes);
 
 void JNICALL jfr_set_enabled(JNIEnv* env, jobject jvm, jlong event_type_id, jboolean enabled);
--- a/src/share/vm/jfr/jni/jfrJniMethodRegistration.cpp	Wed May 12 11:32:26 2021 +0100
+++ b/src/share/vm/jfr/jni/jfrJniMethodRegistration.cpp	Fri May 07 17:37:05 2021 +0200
@@ -49,6 +49,7 @@
       (char*)"getTicksFrequency", (char*)"()J", (void*)jfr_elapsed_frequency,
       (char*)"subscribeLogLevel", (char*)"(Ljdk/jfr/internal/LogTag;I)V", (void*)jfr_subscribe_log_level,
       (char*)"log", (char*)"(IILjava/lang/String;)V", (void*)jfr_log,
+      (char*)"shouldLog", (char*)"(I)Z", (void*)jfr_should_log,
       (char*)"retransformClasses", (char*)"([Ljava/lang/Class;)V", (void*)jfr_retransform_classes,
       (char*)"setEnabled", (char*)"(JZ)V", (void*)jfr_set_enabled,
       (char*)"setFileNotification", (char*)"(J)V", (void*)jfr_set_file_notification,
--- a/src/share/vm/jfr/utilities/jfrJavaLog.cpp	Wed May 12 11:32:26 2021 +0100
+++ b/src/share/vm/jfr/utilities/jfrJavaLog.cpp	Fri May 07 17:37:05 2021 +0200
@@ -139,3 +139,7 @@
   // log_tag_sets[tag_set].log_tag_set->log((LogLevelType)level, s);
   tty->print_cr("JFR: %s", s);
 }
+
+bool JfrJavaLog::should_log(jint level, TRAPS) {
+  return LogJFR;
+}
--- a/src/share/vm/jfr/utilities/jfrJavaLog.hpp	Wed May 12 11:32:26 2021 +0100
+++ b/src/share/vm/jfr/utilities/jfrJavaLog.hpp	Fri May 07 17:37:05 2021 +0200
@@ -43,6 +43,7 @@
  public:
   static void subscribe_log_level(jobject log_tag, jint id, TRAPS);
   static void log(jint tag_set, jint level, jstring message, TRAPS);
+  static bool should_log(jint level, TRAPS);
 };
 
 #endif // SHARE_VM_JFR_UTILITIES_JFRJAVALOG_HPP