review(XS): 7058689 Tiered: Reprofiling doesn't happen in presence	of level 4 OSR methods
    Igor Veresov 
    igor.veresov at oracle.com
       
    Thu Jun 23 17:14:16 PDT 2011
    
    
  
When we deopt from a C2-compiled method and request reprofiling (we're 
at level 0 at this point) natually we would want to start reprofiling in 
the interpreter and queue up a level 3 compile and continue profiling at 
level 3 when it arrives. However, when we decide to which level to 
switch we check the max comp level of the OSR versions of the method. If 
a the level is 4 and there's been more than one profiled invocation we 
would choose to compile at level 4. This was initroduced to avoid deopt 
loops when we deopt and switch to a higher level OSR method.
So, with reprofiling we need to handle the situation differently. The 
solution is to check at which level an OSR would be even possible at the 
moment (by calling the transition function with a loop predicate), which 
will take into account the fact the we need to reprofile and return 
either level 2 or 3; and then checking what OSR methods are currently 
available and taking the minimum level.
Webrev: http://cr.openjdk.java.net/~iveresov/7058689/webrev.00/
Thanks,
igor
    
    
More information about the hotspot-compiler-dev
mailing list