Thu, 29 Sep 2011 23:09:54 -0700
7096639: Tiered: Incorrect counter overflow handling for inlined methods
Summary: Enable invocation events for inlinees
Reviewed-by: kvn
src/share/vm/c1/c1_LIRGenerator.cpp | file | annotate | diff | comparison | revisions | |
src/share/vm/runtime/globals.hpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/c1/c1_LIRGenerator.cpp Thu Sep 29 13:47:57 2011 -0700 1.2 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp Thu Sep 29 23:09:54 2011 -0700 1.3 @@ -2970,8 +2970,8 @@ 1.4 // accessors are also always mature. 1.5 if (!x->inlinee()->is_accessor()) { 1.6 CodeEmitInfo* info = state_for(x, x->state(), true); 1.7 - // Increment invocation counter, don't notify the runtime, because we don't inline loops, 1.8 - increment_event_counter_impl(info, x->inlinee(), 0, InvocationEntryBci, false, false); 1.9 + // Notify the runtime very infrequently only to take care of counter overflows 1.10 + increment_event_counter_impl(info, x->inlinee(), (1 << Tier23InlineeNotifyFreqLog) - 1, InvocationEntryBci, false, true); 1.11 } 1.12 } 1.13
2.1 --- a/src/share/vm/runtime/globals.hpp Thu Sep 29 13:47:57 2011 -0700 2.2 +++ b/src/share/vm/runtime/globals.hpp Thu Sep 29 23:09:54 2011 -0700 2.3 @@ -3521,6 +3521,9 @@ 2.4 "C1 with MDO profiling (tier 3) invocation notification " \ 2.5 "frequency.") \ 2.6 \ 2.7 + product(intx, Tier23InlineeNotifyFreqLog, 20, \ 2.8 + "Inlinee invocation (tiers 2 and 3) notification frequency") \ 2.9 + \ 2.10 product(intx, Tier0BackedgeNotifyFreqLog, 10, \ 2.11 "Interpreter (tier 0) invocation notification frequency.") \ 2.12 \