Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8153224 Monitor deflation prolong safepoints
  3. JDK-8217659

monitor_logging updates from Async Monitor Deflation project

XMLWordPrintable

    • Icon: Sub-task Sub-task
    • Resolution: Fixed
    • Icon: P3 P3
    • 13
    • 13
    • hotspot
    • b07
    • generic
    • generic

      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
        deflations.
      - 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/MonitorInflationTest.java 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).

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

              Created:
              Updated:
              Resolved: