review(XS): 7058689 Tiered: Reprofiling doesn't happen in presence of level 4 OSR methods

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Jun 24 08:50:50 PDT 2011


Looks good.

Vladimir

Igor Veresov wrote:
> 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