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

G1: Shared SATB queue never enabled

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P5
    • 9
    • hs25, 9
    • hotspot
    • gc
    • b03
    • generic
    • generic

    Backports

      Description

        As part of implementing String deduplication for G1 (JDK-8029075) I discovered that the shared SATB queue is never enabled (ever). In the current G1 implementation this bug has no side effect (as far as I can tell) because we do not depend on that queue for anything. This queue is only used when non-Java threads overwrites a object reference while concurrent marking is running. We don't have any such threads at the moment (the VM thread and concurrent marking thread actually overwrites references during reference processing, but they do it as part of a prepend to a list, so the original reference becomes the next value so it's not detached from the list).

        The fix is simple, the function SATBMarkQueueSet::set_active_all_threads() needs to call shared_satb_queue()->set_active().

        Since this bug has no side effect it's currently not a problem. However, this needs to be fixed before JDK-8029075 can be completed.

        Current ILW = LLL = P5
        However, this bug is blocking JDK-8029075, which at some point will change it to ILW = HMH = P1

        Attachments

          Issue Links

            Activity

              People

                pliden Per Liden (Inactive)
                pliden Per Liden (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: