8158033: Notify_tracing() misplaced for intended purpose

Reviewed-by: egahlin, dholmes
This commit is contained in:
Markus Grönlund 2016-06-13 11:48:11 +02:00
parent 9eeb285818
commit de7ab979ec
5 changed files with 13 additions and 21 deletions

View file

@ -446,6 +446,14 @@ void before_exit(JavaThread* thread) {
os::infinite_sleep(); os::infinite_sleep();
} }
EventThreadEnd event;
if (event.should_commit()) {
event.set_thread(THREAD_TRACE_ID(thread));
event.commit();
}
TRACE_VM_EXIT();
// Stop the WatcherThread. We do this before disenrolling various // Stop the WatcherThread. We do this before disenrolling various
// PeriodicTasks to reduce the likelihood of races. // PeriodicTasks to reduce the likelihood of races.
if (PeriodicTask::num_tasks() > 0) { if (PeriodicTask::num_tasks() > 0) {
@ -484,13 +492,6 @@ void before_exit(JavaThread* thread) {
JvmtiExport::post_thread_end(thread); JvmtiExport::post_thread_end(thread);
} }
EventThreadEnd event;
if (event.should_commit()) {
event.set_thread(THREAD_TRACE_ID(thread));
event.commit();
}
// Always call even when there are not JVMTI environments yet, since environments // Always call even when there are not JVMTI environments yet, since environments
// may be attached late and JVMTI must track phases of VM execution // may be attached late and JVMTI must track phases of VM execution
JvmtiExport::post_vm_death(); JvmtiExport::post_vm_death();

View file

@ -48,9 +48,6 @@ public:
static void on_unloading_classes(void) { static void on_unloading_classes(void) {
} }
static void on_vm_error(bool) {
}
}; };
class TraceThreadData { class TraceThreadData {

View file

@ -43,6 +43,8 @@ extern "C" void JNICALL trace_register_natives(JNIEnv*, jclass);
#define TRACE_REGISTER_NATIVES ((void*)((address_word)(&trace_register_natives))) #define TRACE_REGISTER_NATIVES ((void*)((address_word)(&trace_register_natives)))
#define TRACE_START() JNI_OK #define TRACE_START() JNI_OK
#define TRACE_INITIALIZE() JNI_OK #define TRACE_INITIALIZE() JNI_OK
#define TRACE_VM_EXIT()
#define TRACE_VM_ERROR()
#define TRACE_DEFINE_TRACE_ID_METHODS typedef int ___IGNORED_hs_trace_type1 #define TRACE_DEFINE_TRACE_ID_METHODS typedef int ___IGNORED_hs_trace_type1
#define TRACE_DEFINE_TRACE_ID_FIELD typedef int ___IGNORED_hs_trace_type2 #define TRACE_DEFINE_TRACE_ID_FIELD typedef int ___IGNORED_hs_trace_type2

View file

@ -54,10 +54,6 @@
#include "utilities/macros.hpp" #include "utilities/macros.hpp"
#include "utilities/vmError.hpp" #include "utilities/vmError.hpp"
#if INCLUDE_TRACE
#include "trace/tracing.hpp"
#endif
#include <stdio.h> #include <stdio.h>
#ifndef ASSERT #ifndef ASSERT
@ -306,11 +302,6 @@ void report_out_of_shared_space(SharedSpaceType shared_space) {
exit(2); exit(2);
} }
static void notify_tracing() {
#if INCLUDE_TRACE
Tracing::on_vm_error(true);
#endif
}
void report_insufficient_metaspace(size_t required_size) { void report_insufficient_metaspace(size_t required_size) {
warning("\nThe MaxMetaspaceSize of " SIZE_FORMAT " bytes is not large enough.\n" warning("\nThe MaxMetaspaceSize of " SIZE_FORMAT " bytes is not large enough.\n"
@ -334,8 +325,6 @@ void report_java_out_of_memory(const char* message) {
HeapDumper::dump_heap_from_oome(); HeapDumper::dump_heap_from_oome();
} }
notify_tracing();
if (OnOutOfMemoryError && OnOutOfMemoryError[0]) { if (OnOutOfMemoryError && OnOutOfMemoryError[0]) {
VMError::report_java_out_of_memory(message); VMError::report_java_out_of_memory(message);
} }

View file

@ -39,6 +39,7 @@
#include "runtime/vmThread.hpp" #include "runtime/vmThread.hpp"
#include "runtime/vm_operations.hpp" #include "runtime/vm_operations.hpp"
#include "services/memTracker.hpp" #include "services/memTracker.hpp"
#include "trace/traceMacros.hpp"
#include "utilities/debug.hpp" #include "utilities/debug.hpp"
#include "utilities/decoder.hpp" #include "utilities/decoder.hpp"
#include "utilities/defaultStream.hpp" #include "utilities/defaultStream.hpp"
@ -1165,6 +1166,8 @@ void VMError::report_and_die(int id, const char* message, const char* detail_fmt
// are handled properly. // are handled properly.
reset_signal_handlers(); reset_signal_handlers();
TRACE_VM_ERROR();
} else { } else {
// If UseOsErrorReporting we call this for each level of the call stack // If UseOsErrorReporting we call this for each level of the call stack
// while searching for the exception handler. Only the first level needs // while searching for the exception handler. Only the first level needs