[9] RFR(S): 8065339: Failed compilation does not always trigger a JFR event 'CompilerFailure'

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Nov 20 19:46:29 UTC 2014

Looks good.


On 11/20/14 4:11 AM, Tobias Hartmann wrote:
> Hi,
> please review the following patch.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8065339
> Webrev: http://cr.openjdk.java.net/~thartmann/8065339/webrev.00/
> Problem:
> 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.
> Solution:
> 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.
> Testing:
> JFR tests and JPRT
> Thanks,
> Tobias

More information about the hotspot-compiler-dev mailing list