Mercurial > hg > truffle
diff src/share/vm/compiler/compileBroker.cpp @ 20469:dd89808e49ba
8049530: Provide descriptive failure reason for compilation tasks removed for the queue
Reviewed-by: roland, iveresov
author | vlivanov |
---|---|
date | Mon, 14 Jul 2014 03:26:52 -0700 |
parents | 7301840ea20e |
children | 966205f0e717 |
line wrap: on
line diff
--- a/src/share/vm/compiler/compileBroker.cpp Mon Jul 14 03:24:35 2014 -0700 +++ b/src/share/vm/compiler/compileBroker.cpp Mon Jul 14 03:26:52 2014 -0700 @@ -287,6 +287,7 @@ _hot_count = hot_count; _time_queued = 0; // tidy _comment = comment; + _failure_reason = NULL; if (LogCompilation) { _time_queued = os::elapsed_counter(); @@ -565,6 +566,11 @@ methodHandle method(thread, this->method()); ResourceMark rm(thread); + if (!_is_success) { + const char* reason = _failure_reason != NULL ? _failure_reason : "unknown"; + log->elem("failure reason='%s'", reason); + } + // <task_done ... stamp='1.234'> </task> nmethod* nm = code(); log->begin_elem("task_done success='%d' nmsize='%d' count='%d'", @@ -714,6 +720,7 @@ for (CompileTask* task = head; task != NULL; ) { CompileTask* next_task = task->next(); CompileTaskWrapper ctw(task); // Frees the task + task->set_failure_reason("stale task"); task = next_task; } } @@ -1788,6 +1795,7 @@ } else { // After compilation is disabled, remove remaining methods from queue method->clear_queued_for_compilation(); + task->set_failure_reason("compilation is disabled"); } } } @@ -1975,6 +1983,7 @@ compilable = ci_env.compilable(); if (ci_env.failing()) { + task->set_failure_reason(ci_env.failure_reason()); const char* retry_message = ci_env.retry_message(); if (_compilation_log != NULL) { _compilation_log->log_failure(thread, task, ci_env.failure_reason(), retry_message);