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

Refactor logged card refinement support in G1DirtyCardQueueSet

XMLWordPrintable

    • gc
    • b14

      Concurrent and STW refinement are currently implemented via some shared code in G1DirtyCardQueueSet, with an externally provided closure for the STW case. As a result of this structure

      * STW refinement needs to go through the DCQS lock and deal with the head/tail/count in the DCQS list representation.

      * STW refinement performs a useless stop_at check.

      * The yield to safepoint request handling in the concurrent case is embedded in the closure and reported by the bool return value, making for some awkwardness and ambiguity in the shared helper code as to whether the current card was processed or not.

      * STW refinement needs to have a closure that returns bool but always returns a true value.

      Separating these two cases could make both cases simpler and easier to understand, and might provide some small performance benefit by avoiding a lock in STW refinement.

            kbarrett Kim Barrett
            kbarrett Kim Barrett
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: