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

Shenandoah: Allocation failure after concurrent mark throws out marking progress

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: New
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: 11.0.1, 15
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc
    • CPU:
      generic
    • OS:
      generic

      Description

      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.

        Attachments

          Activity

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            wkemper William Kemper
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated: