Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8043473

JEP 234: Additional Run-Time Compiler JVM Trace Events

    Details

    • Type: JEP
    • Status: Candidate
    • Priority: P4
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
    • Author:
      Igor Ignatyev
    • JEP Type:
      Feature
    • Exposure:
      Open
    • Subcomponent:
    • Scope:
      Implementation
    • Discussion:
      hotspot dash compiler dash dev at openjdk dot java dot net
    • Effort:
      M
    • Duration:
      M
    • Alert Status:
       Green
    • JEP Number:
      234

      Description

      Summary

      Extend the set of JVM trace events generated by the run-time compilers.

      Success Metrics

      • No measurable performance overhead when not enabled.

      Motivation

      JEP 167 added infrastructure for detailed tracing of the JVM. It introduced a basic set of useful run-time compiler events but that set doesn't provide any information about which optimizations were used, what the optimizations did, why compilation failed, and so forth.

      Description

      Define additional events that will add more detail to the workings of the run-time compilers, useful for testing as well as profiling.

      Some compilation phase events are already emitted by C2; we will extend C1 to emit them as well, if needed.

      Compilation phase events will provide information including a compilation identifier and a representation of the method being compiled, or its relevant characteristics, and be emitted at the end of a phase. If a compilation phase fails then an event describing the failure will emitted. Phases for which we will consider adding events are:

      • Parsing
      • High-level graph
      • Low-level Intermediate Representation
      • Machine-independent code
      • Assembly

      Events about applied optimizations will include a compilation identifier and describe the transformations performed. The events will be emitted when an optimization is completed. Events will be defined for, at least, all high-level optimizations, e.g.,

      • Inlining
      • Loop unrolling
      • Loop peeling

      Other events which affect compilation and execution of a compiled method will also be emitted, e.g.,

      • Deoptimization events
      • Uncommon trap events
      • Abnormal events for:
        • Node max limit hit
        • Maximum recursion depth hit

      Alternatives

      The white-box testing API can be used to get this information but it has no facility for recording events for later analysis.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                iignatyev Igor Ignatyev
                Reporter:
                iignatyev Igor Ignatyev
                Owner:
                Igor Ignatyev
                Reviewed By:
                Aleksandre Iline, Mikael Vidstedt, Vladimir Kozlov
                Endorsed By:
                Mikael Vidstedt
              • Votes:
                0 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated: