[16] RFR(M) 8250233: -XX:+CITime triggers guarantee(events != NULL) in jvmci.cpp:173

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Jul 31 02:54:28 UTC 2020


https://cr.openjdk.java.net/~kvn/8250233/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8250233

Main issue was missing EnableJVMCI flag check when calling JVMCICompiler::print_compilation_timers(). I addition to 
fixinf that I did next refactoring.

The code which collects and print statistics per compiler was guarded by #if INCLUDE_JVMCI but not by any JVMCI flags.
As result it is default code used by all JIT compilers since JVMCI was added in JDK 9.

I decided to make it not JVMCI specific and used it on all platforms.

I also added statistic per compilation tier which provides more useful information than combined date for C1.

Removed in CompileBroker::print_times() code which calculate total values based on data in compiler's statistic. Such 
data is already collected in CompileBroker's static fields.

Added checks for 0 values in print statements to avoid division by 0 (whioch produced NaN values for doubles).

Don't print empty data in JVMCICompiler::print_compilation_timers() but print total compilation time in 
JVMCICompiler::print_timers().

Tested hs-tier1-3.

Thanks,
Vladimir

Beginning of CITime new output:

Individual compiler times (for compiled methods only)
------------------------------------------------

   C1 {speed: 49626.710 bytes/s; standard:  0.037 s, 1842 bytes, 35 methods; osr:  0.000 s, 0 bytes, 0 methods; 
nmethods_size: 51096 bytes; nmethods_code_size: 30880 bytes}
   C2 {speed: 1451.769 bytes/s; standard:  0.001 s, 2 bytes, 2 methods; osr:  0.000 s, 0 bytes, 0 methods; 
nmethods_size: 288 bytes; nmethods_code_size: 128 bytes}

Individual compilation Tier times (for compiled methods only)
------------------------------------------------

   Tier1 {speed: 21162.963 bytes/s; standard:  0.002 s, 47 bytes, 10 methods; osr:  0.000 s, 0 bytes, 0 methods; 
nmethods_size: 3160 bytes; nmethods_code_size: 1504 bytes}
   Tier2 {speed:  0.000 bytes/s; standard:  0.000 s, 0 bytes, 0 methods; osr:  0.000 s, 0 bytes, 0 methods; 
nmethods_size: 0 bytes; nmethods_code_size: 0 bytes}
   Tier3 {speed: 51438.195 bytes/s; standard:  0.035 s, 1795 bytes, 25 methods; osr:  0.000 s, 0 bytes, 0 methods; 
nmethods_size: 47936 bytes; nmethods_code_size: 29376 bytes}
   Tier4 {speed: 1451.769 bytes/s; standard:  0.001 s, 2 bytes, 2 methods; osr:  0.000 s, 0 bytes, 0 methods; 
nmethods_size: 288 bytes; nmethods_code_size: 128 bytes}

Accumulated compiler times
----------------------------------------------------------
   Total compilation time   :   0.038 s
     Standard compilation   :   0.038 s, Average : 0.001 s
     Bailed out compilation :   0.000 s, Average : 0.000 s
     On stack replacement   :   0.000 s, Average : 0.000 s
     Invalidated            :   0.000 s, Average : 0.000 s


More information about the hotspot-compiler-dev mailing list