< prev index next >
src/share/vm/runtime/vmThread.cpp
Print this page
@@ -23,12 +23,14 @@
*/
#include "precompiled.hpp"
#include "compiler/compileBroker.hpp"
#include "gc_interface/collectedHeap.hpp"
+#if INCLUDE_JFR
#include "jfr/jfrEvents.hpp"
#include "jfr/support/jfrThreadId.hpp"
+#endif
#include "memory/resourceArea.hpp"
#include "oops/method.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/interfaceSupport.hpp"
#include "runtime/mutexLocker.hpp"
@@ -358,10 +360,11 @@
st->print("\"%s\" ", name());
Thread::print_on(st);
st->cr();
}
+#if INCLUDE_JFR
static void post_vm_operation_event(EventExecuteVMOperation* event, VM_Operation* op) {
assert(event != NULL, "invariant");
assert(event->should_commit(), "invariant");
assert(op != NULL, "invariant");
const bool is_concurrent = op->evaluate_concurrently();
@@ -374,10 +377,11 @@
// This is because the caller thread could have exited already.
event->set_caller(is_concurrent ? 0 : JFR_THREAD_ID(op->calling_thread()));
event->set_safepointId(evaluate_at_safepoint ? SafepointSynchronize::safepoint_counter() : 0);
event->commit();
}
+#endif
void VMThread::evaluate_operation(VM_Operation* op) {
ResourceMark rm;
{
@@ -389,15 +393,19 @@
HOTSPOT_VMOPS_BEGIN(
(char *) op->name(), strlen(op->name()),
op->evaluation_mode());
#endif /* USDT2 */
+#if INCLUDE_JFR
EventExecuteVMOperation event;
+#endif
op->evaluate();
+#if INCLUDE_JFR
if (event.should_commit()) {
post_vm_operation_event(&event, op);
}
+#endif
#ifndef USDT2
HS_DTRACE_PROBE3(hotspot, vmops__end, op->name(), strlen(op->name()),
op->evaluation_mode());
#else /* USDT2 */
< prev index next >