Details
-
Bug
-
Resolution: Fixed
-
P4
-
17, 21
-
b26
Description
Dependency failures during code installation generally increment the decompile_count. This is true for all dependency failures except Dependencies::call_site_target_value.
ciEnv::validate_compile_task_dependencies explicitly excludes Dependencies::call_site_target_value failures from incrementing the decompile_count by setting a flag _inc_decompile_count_on_failure to false.
JVMCIRuntime::register_method however increments the decompile_count for all dependency failures also ones of Dependencies::call_site_target_value. This means when running with jvmci methods can fall of the PerMethodRecompilationCutoff and be made non compilable. This can be a problem for example for CallSites that frequently change their target and thus fail dependencies. The compiler/jsr292/ContinuousCallSiteTargetChange test shows this problem when run on libgraal.
JDK-8191098 would mostly cover this bug automatically by sharing the same logic for incrementing the decompile_count.
ciEnv::validate_compile_task_dependencies explicitly excludes Dependencies::call_site_target_value failures from incrementing the decompile_count by setting a flag _inc_decompile_count_on_failure to false.
JVMCIRuntime::register_method however increments the decompile_count for all dependency failures also ones of Dependencies::call_site_target_value. This means when running with jvmci methods can fall of the PerMethodRecompilationCutoff and be made non compilable. This can be a problem for example for CallSites that frequently change their target and thus fail dependencies. The compiler/jsr292/ContinuousCallSiteTargetChange test shows this problem when run on libgraal.
JDK-8191098 would mostly cover this bug automatically by sharing the same logic for incrementing the decompile_count.
Attachments
Issue Links
- relates to
-
JDK-8191098 factor out logic duplicated between ciEnv and jvmciEnv
-
- Open
-
- links to
-
Commit openjdk/jdk/2bb19724
-
Review(master) openjdk/jdk/14222