RFR(S): 8065339: Failed compilation does not always trigger a JFR event 'CompilerFailure'
tobias.hartmann at oracle.com
Thu Nov 20 12:11:18 UTC 2014
please review the following patch.
Failures that happen during C2 compilation are recorded by
'Compile::record_failure' and trigger the JFR event 'CompilerFailure'. They are
then passed up to ciEnv by 'C2Compiler::compile_method'. However, failures that
happen in ciEnv do not trigger a CompilerFailure event although compilation
fails. For example, "code cache is full" in 'ciEnv::register_method' does not
trigger a JFR event.
I added the method 'report_failure' to ciEnv to fire the CompilerFailure event.
Instead of firing the JFR event in 'Compile::record_failure' we now call
'ciEnv::report_failure' from 'CompileBroker::invoke_compiler_on_method'.
If we retry compilation in C2, we directly report the error instead of passing
it up to ciEnv.
JFR tests and JPRT
More information about the hotspot-compiler-dev