RFR 8241458: [JVMCI] add mark value to expose CodeOffsets::Frame_Complete

Tom Rodriguez tom.rodriguez at oracle.com
Mon Mar 23 17:51:25 UTC 2020


http://cr.openjdk.java.net/~never/8241458/webrev
https://bugs.openjdk.java.net/browse/JDK-8241458

While investigating JFR profiles with Graal we noticed that Graal had 
many fewer samples as compared to C2. It appears more recent versions of 
JFR checks CodeBlob::is_frame_complete_at and skips any frames where 
this return false. JVMCI doesn't provide any way to set this value so it 
always returns false for JVMCI compiled methods and stubs.  The graal 
side changes are simply to record a mark after the frame prolog.  I can 
include those (very small) changes in this webrev if that's helpful.

This was tested by comparing before and after profiles with Graal and 
running the Graal gate with the changes.

While looking at this I also noticed that the JFR stack walk seems to 
give up quite a lot.  For instance avrora gives up about 75% of the time 
when it's looking at thread_in_Java thread with C2 in JDK11.  That seems 
like a very high failure rate.  A 10-15% failure rate seem pretty normal 
and even than seems kind of high to me for a profiler.  Has any one done 
any recent investigation into the quality of the JFR samples?  I think 
the major issues are related to walking of stubs and leaf C frames.

tom


More information about the hotspot-compiler-dev mailing list