Re: RFR: 8261447: MethodInvocationCounters frequently run into overflow [v3]

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: RFR: 8261447: MethodInvocationCounters frequently run into overflow [v3]

Lutz Schmidt
> 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

Lutz Schmidt has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:

 - expand remaining counters to 64-bit, remove 64 suffix
 - 8261447: requested changes by TobiHartmann
 - JDK-8261447: MethodInvocationCounters frequently run into overflow
 - expand remaining counters to 64-bit, remove 64 duffix
 - 8261447: requested changes by TobiHartmann
 - JDK-8261447: MethodInvocationCounters frequently run into overflow

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/2511/files
  - new: https://git.openjdk.java.net/jdk/pull/2511/files/bfd60a3c..67fb3f7d

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2511&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2511&range=01-02

  Stats: 8620 lines in 332 files changed: 4163 ins; 2472 del; 1985 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2511.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2511/head:pull/2511

PR: https://git.openjdk.java.net/jdk/pull/2511
Reply | Threaded
Open this post in threaded view
|

Re: RFR: 8261447: MethodInvocationCounters frequently run into overflow [v3]

Lutz Schmidt
On Fri, 12 Feb 2021 11:58:47 GMT, Lutz Schmidt <[hidden email]> wrote:

>> I introduced the *64 suffixes to not break anything that still uses the old calls. As old uses disappear step by step, I'm more than happy to remove the suffixes. I will have a look into SA and try to make it 64bit counter ready. There may be no new version before the weekend is over.
>
> This is a request for help. Could someone with SA knowledge please check if my assumption is correct?
>
> In hotspot code, the field Method::_compiled_invocation_count is annotated with a comment that it is used by SA. The field is also exposed via vmStructs.cpp to enable such use. I have scanned SA code in OpenJDK11 and OpenJDK head but found no evidence that this particular field is accessed. Is this finding/assumption correct?
>
> If so, I could just stop exposing the field, making my life easier. Thanks!

Looks like I have completely messed up my pull request. Please disregard for now. I'm trying to find a way how to clean up. Maybe I'll just start over.

-------------

PR: https://git.openjdk.java.net/jdk/pull/2511