• Type: Sub-task
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 13
    • Fix Version/s: 13
    • Component/s: hotspot
    • Subcomponent:
    • Resolved In Build:
    • CPU:
    • OS:


      This sub-task captures updates and additions to the
      baseline monitor logging code.

      The updates and additions include:

      - The '-XX:+TraceMonitorInflation' option now maps to LogLevel::Trace
        instead of LogLevel::Debug. The existing 'monitorinflation' logging is
        about per-object ObjectMonitor inflation and deflation so it is way too
        verbose for LogLevel::Debug.
      - Add support for calling ObjectSynchronizer::audit_and_print_stats()
        at LogLevel::Info when the VM is exiting and at LogLevel::Debug
        when ObjectSynchronizer::finish_deflate_idle_monitors() is called
        at the end of that safepoint cleanup phase.
        - With 'info' level logging, you get output at the end of the VM's life.
        - With 'debug' level logging, you get output at each safepoint.
      - Add DeflateMonitorCounters::perThreadScavenged to track the
        number of monitors scavenged per-thread.
      - Add 'deflating global idle monitors' log output that includes deflated_count
        and how long it took; non-zero global deflation counts are reported at
        LogLevel::Info and zero global deflation counts are reported at
        LogLevel::Debug. Global deflations are much more rare than per-thread
      - Added 'deflating per-thread idle monitors' log output that's in the same
        style as the new 'deflating global idle monitors' log output.
      - Add per-thread deflation count output to the existing "safepoint+cleanup"
        logging; reporting times without counts seemed silly to me...
      - Add audit_and_print_stats() to verify the global monitor lists and the
        per-thread monitor lists. Also reports info about the various lists. I'm
        planning to add output for the monitor subsystem perf-counters, but
        I haven't gotten there yet.
      - Update runtime/logging/ to match the new
        '-Xlog:monitorinflation=' level ('trace' instead of 'debug').

      I've also added a new diagnostic option for enabling extra output about
      in-use monitors: '-XX:+IncludeInUseMonitorDetailsInLogMsgs'. I did it
      this way to help debug an object pinning bug in my port of the prototype
      and I didn't want to be overwhelmed with output. However, adding another
      diagnostic option is not a good idea so this choice doesn't sit well with me
      (and I wrote it).




            • Assignee:
              dcubed Daniel Daugherty
              dcubed Daniel Daugherty
            • Votes:
              0 Vote for this issue
              1 Start watching this issue


              • Created: