RFC: 8269342: CICrashAt=1 does not always catch first Java method

dean.long at oracle.com dean.long at oracle.com
Fri Jul 23 21:07:42 UTC 2021


The CICrashAt flag is used by some cireplay tests to force a dump of 
replay data for the test method.  To make sure it crashes on the correct 
method, it uses -XX:CompileOnly and sets CICrashAt=1. However, native 
methods, including method handle intrinsics, can get assigned compile_id 
1, which breaks things.

I'd like suggestions on the best way to fix this problem.  My first idea 
was to set the compile_id to 0 for method handle intrinsics, but maybe 
that would confuse some log parser?  It's a slightly incompatible change.

I also considered introducing a new -XX:CompileCommand=crash that would 
solve the problem for the replay tests, but still doesn't make 
CICrashAt=1 work as intended.

A third option is to reintroduce this ancient flag (from jdk 1.5):

     develop(bool, CICountNative, false, \
             "use a separate counter when assigning ids to native 
"            \
"compilations") \


which could allow CICrashAt=1 to crash on the first c1/c2 Java method.

dl




More information about the hotspot-compiler-dev mailing list