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

G1: Incorrect reference discovery MT degree in concurrent marking

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 18
    • None
    • hotspot
    • gc
    • b06

      In `src/hotspot/share/gc/g1/g1CollectedHeap.cpp`:

      ```
      _ref_processor_cm =
          new ReferenceProcessor(&_is_subject_to_discovery_cm,
                                 ParallelGCThreads, // degree of mt processing
                                 (ParallelGCThreads > 1) || (ConcGCThreads > 1), // mt discovery
                                 MAX2(ParallelGCThreads, ConcGCThreads), // degree of mt discovery
                                 false, // Reference discovery is not atomic
                                 &_is_alive_closure_cm); // is alive closure
      ```

      CM ref processor does ref discovery during concurrent marking, which use `ConcGCThreads` GC threads. Therefore, the MT degree is determined by `ConcGCThreads`; `ParallelGCThreads` should not be used.

            ayang Albert Yang
            ayang Albert Yang
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: