7096639: Tiered: Incorrect counter overflow handling for inlined methods

Thu, 29 Sep 2011 23:09:54 -0700

author
iveresov
date
Thu, 29 Sep 2011 23:09:54 -0700
changeset 3160
dc45ae774613
parent 3159
098acdf97f09
child 3161
ae839d1e7d4c

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                                                                              \

mercurial