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

G1 does not expand marking stack when mark stack overflow happens during concurrent marking

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 10
    • 9
    • hotspot
    • gc
    • b21
    • generic
    • generic

      Attached is the spreadsheet summarizing Intel's experiment increasing MarkStackSize manually vs count of
      '[GC concurrent-mark-reset-for-overflow]'

      The observation is we do not expand MarkStackSize to MarkStackSizeMax when concurrent-mark-overflow happens. They have to increase it manually.

      The expand flag is set when concurrent-mark-reset-for-overflow happens.
      The issue is we try to expand markStack in void ConcurrentMark::checkpointRootsFinal(bool clear_all_soft_refs)
      If there is no overflow, at the end, we call set_non_marking_state(); then try to expand markStack.

      set_non_marking_state() calls reset_marking_state and reset expand based on _cm->has_overflown(_cm overflow is cleaned during marking). So when we check if (_markStack.should_expand()), it is always false.

            aharlap Alexander Harlap (Inactive)
            yuzhang Jenny Zhang (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: