request(S): 7066339: Tiered: policy should make consistent decisions about osr levels
tom.rodriguez at oracle.com
Thu Jul 14 12:42:50 PDT 2011
On Jul 13, 2011, at 6:49 PM, Igor Veresov wrote:
> After my fix for 7058689 it is possible that the AdvancedThresholdPolicy will make a different decision as to what compilation level for osr is appropriate in loop_event() and call_event() from what happens in method_back_branch_event(). In method_back_branch_event() in case the OSR compilation level is CompLevel_limited_profile we change it to CompLevel_full_profile but we don't do the same in call_event() and loop_event() to determine whether the existing OSR methods are current. The solution would be to move this level fixup in form of disabling the tier 3 delay feedback in common() for OSRs.
> There was also bad interaction between the in-queue level change optimization with TieredStopAtLevel option set to 3, which caused compilation loops between level 2 and 3. Now it will be disabled if TieredStopAtLevel < 4.
> Also moved handling of TieredStopAtLevel to common(), because when it was in compile() it could lead to unnecessary OSR compiles with TieredStopAtLevel < 4.
> Webrev: http://cr.openjdk.java.net/~iveresov/7066339/webrev.00/
More information about the hotspot-compiler-dev