1.1 --- a/src/share/vm/compiler/compileBroker.cpp Mon Jul 14 03:24:35 2014 -0700 1.2 +++ b/src/share/vm/compiler/compileBroker.cpp Mon Jul 14 03:26:52 2014 -0700 1.3 @@ -287,6 +287,7 @@ 1.4 _hot_count = hot_count; 1.5 _time_queued = 0; // tidy 1.6 _comment = comment; 1.7 + _failure_reason = NULL; 1.8 1.9 if (LogCompilation) { 1.10 _time_queued = os::elapsed_counter(); 1.11 @@ -565,6 +566,11 @@ 1.12 methodHandle method(thread, this->method()); 1.13 ResourceMark rm(thread); 1.14 1.15 + if (!_is_success) { 1.16 + const char* reason = _failure_reason != NULL ? _failure_reason : "unknown"; 1.17 + log->elem("failure reason='%s'", reason); 1.18 + } 1.19 + 1.20 // <task_done ... stamp='1.234'> </task> 1.21 nmethod* nm = code(); 1.22 log->begin_elem("task_done success='%d' nmsize='%d' count='%d'", 1.23 @@ -714,6 +720,7 @@ 1.24 for (CompileTask* task = head; task != NULL; ) { 1.25 CompileTask* next_task = task->next(); 1.26 CompileTaskWrapper ctw(task); // Frees the task 1.27 + task->set_failure_reason("stale task"); 1.28 task = next_task; 1.29 } 1.30 } 1.31 @@ -1788,6 +1795,7 @@ 1.32 } else { 1.33 // After compilation is disabled, remove remaining methods from queue 1.34 method->clear_queued_for_compilation(); 1.35 + task->set_failure_reason("compilation is disabled"); 1.36 } 1.37 } 1.38 } 1.39 @@ -1975,6 +1983,7 @@ 1.40 compilable = ci_env.compilable(); 1.41 1.42 if (ci_env.failing()) { 1.43 + task->set_failure_reason(ci_env.failure_reason()); 1.44 const char* retry_message = ci_env.retry_message(); 1.45 if (_compilation_log != NULL) { 1.46 _compilation_log->log_failure(thread, task, ci_env.failure_reason(), retry_message);