[9] RFR(S): 8065339: Failed compilation does not always trigger a JFR event 'CompilerFailure'
Tobias Hartmann
tobias.hartmann at oracle.com
Fri Nov 21 08:06:29 UTC 2014
Thanks, Vladimir.
Best,
Tobias
On 20.11.2014 20:46, Vladimir Kozlov wrote:
> Looks good.
>
> Thanks,
> Vladimir
>
> 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