src/share/vm/compiler/compileBroker.cpp

changeset 7183
dd89808e49ba
parent 7179
7301840ea20e
child 7203
966205f0e717
     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);

mercurial