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

Allow using a subset of worker threads even when UseDynamicNumberOfGCThreads is false

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 12
    • 12
    • hotspot
    • gc
    • b09

      When UseDynamicNumberOfGCThreads is not set, AbstractWorkGang requires all worker threads to be used when starting a task. For example, calling update_active_workers(5) on a WorkGang with 10 worker threads results in an failed assert. ZGC does not dynamically re-calculate the number of workers to use each GC cycle (except for the boost-mode), in the way that UseDynamicNumberOfGCThreads suggests. However, it shares a single WorkGang for both STW and concurrent phases, where the concurrent phases typically want to use fewer workers than the STW phases. Today, ZGC is forced to set UseDynamicNumberOfGCThreads to true to avoid the assert in update_active_workers(). I propose that we remove this assert, making AbstractWorkGang slightly more flexible on this point.

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

              Created:
              Updated:
              Resolved: