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

-XX:+PrintInterpreter: instructions should only be printed if printing all InterpreterCodelets

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 24
    • None
    • hotspot
    • b19
    • generic
    • generic

      With -XX:+PrintInterpreter the instructions of the generated interpreter are printed at startup.

      But it is possible that after startup other traces are flooded with repeatedly decoded interpreter sections.

      For instance -Xlog:continuations=trace suffers from this.

      Reproduce:

      - Download the attached Simple.java

      - run the command
        java -XX:+PrintInterpreter -Xlog:continuations=trace Simple.java > out.log
        
      - Search for "Interpreted frame" in out.log

      - You will see that at each occurence the "return entry points" are decoded again and again

      This is a stacktrace where the repeated printing happens:

      InterpreterCodelet::print_on(outputStream *)
      frame::print_value_on(outputStream *)
      FreezeBase::after_freeze_java_frame(const frame &, bool)

      InterpreterCodelet::print_on(outputStream *) decodes the instructions repeadedly because the decoding depends directly on PrintInterpreter.

      The attached partial_out.log is an excerpt from the continuations trace. The decoded "return entry points" codelet is a significant part of the trace. It occurs repeatedly and is redundant because the interpreter was printed at startup.

            rrich Richard Reingruber
            rrich Richard Reingruber
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: