RFR: 8261447: MethodInvocationCounters frequently run into overflow
Lutz Schmidt
lucy at openjdk.java.net
Thu Feb 11 13:35:43 UTC 2021
On Thu, 11 Feb 2021 08:33:40 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Dear community,
>> may I please request reviews for this fix, improving the usefulness of method invocation counters.
>> - aggregation counters are retyped as uint64_t, shifting the overflow probability way out (185 days in case of a 1 GHz counter update frequency).
>> - counters for individual methods are interpreted as (unsigned int), in contrast to their declaration as int. This gives us a factor of two before the counters overflow.
>> - as a special case, "compiled_invocation_counter" is retyped as long, because it has a higher update frequency than other counters.
>> - before/after sample output is attached to the bug description.
>>
>> Thank you!
>> Lutz
>
> src/hotspot/share/oops/method.hpp line 106:
>
>> 104: struct {
>> 105: int _compiled_invocation_count; // Number of nmethod invocations so far (for perf. debugging)
>> 106: // Must preserve this as int. Is used outside the jdk by SA.
>
> Why not update the SA code to access 64 bit?
Two reasons: scope limitation and lack of expertise in SA code. Don't we need the 32bit decl anyway because it is contained in vmstructs.cpp?
-------------
PR: https://git.openjdk.java.net/jdk/pull/2511
More information about the hotspot-dev
mailing list