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

Shenandoah: Allocation failure after concurrent mark throws out marking progress

XMLWordPrintable

    • gc
    • generic
    • generic

      The Shenandoah control thread checks for cancellation after concurrent mark completes, but before the final mark safe point. Though there isn't much code for the thread to execute between the last cancellation check and the final mark safepoint, an allocation failure here will have final mark throw out the marking progress and the next cycle will be degenerated as though the allocation failure occurred outside the cycle - the entire mark will happen again on the safepoint.

      If the final mark operation did _nothing_ for the cancellation case and the control thread checks for cancellation _after_ the final mark operation, the degeneration point could be _degenerated_mark and the degenerated cycle would not have to remark the live objects.

            Unassigned Unassigned
            wkemper William Kemper
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: