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

CSR: JEP 379: Shenandoah: A Low-Pause-Time Garbage Collector (Production)

    XMLWordPrintable

    Details

    • Type: CSR
    • Status: Closed
    • Priority: P4
    • Resolution: Approved
    • Fix Version/s: 15
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
      gc
    • Compatibility Kind:
      behavioral
    • Compatibility Risk:
      minimal
    • Compatibility Risk Description:
      These turn a few runtime flags to product. No change in semantics.
    • Interface Kind:
      add/remove/modify command line option
    • Scope:
      JDK

      Description

      Summary

      Change the Shenandoah garbage collector from an experimental feature into a product feature.

      Problem

      Shenandoah GC is currently an experimental feature enabled via the command-line options -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC. JEP 379 proposes to make Shenandoah GC a product (non-experimental) feature, meaning it should be possible to enable without using -XX:+UnlockExperimentalVMOptions.

      Solution

      The following existing command-line options will be changed from experimental to product. Their default values will remain unchanged.

      • UseShenandoahGC
      • ShenandoahGCMode
      • ShenandoahGCHeuristics

      Specification

      diff -r 35eacefe265d src/hotspot/share/gc/shared/gc_globals.hpp
      --- a/src/hotspot/share/gc/shared/gc_globals.hpp        Mon May 11 14:38:25 2020 +0200
      +++ b/src/hotspot/share/gc/shared/gc_globals.hpp        Mon May 11 14:54:32 2020 +0200
      @@ -167,7 +167,7 @@
         product(bool, UseZGC, false,                                              \
                 "Use the Z garbage collector")                                    \
                                                                                   \
      -  experimental(bool, UseShenandoahGC, false,                                \
      +  product(bool, UseShenandoahGC, false,                                     \
                 "Use the Shenandoah garbage collector")                           \
                                                                                   \
         product(uint, ParallelGCThreads, 0,                                       \
      diff -r 35eacefe265d src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp
      --- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp    Mon May 11 14:38:25 2020 +0200
      +++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp    Mon May 11 14:54:32 2020 +0200
      @@ -63,14 +63,14 @@
                 "This also caps the maximum TLAB size.")                          \
                 range(1, 100)                                                     \
                                                                                   \
      -  experimental(ccstr, ShenandoahGCMode, "satb",                             \
      +  product(ccstr, ShenandoahGCMode, "satb",                                  \
                 "GC mode to use.  Among other things, this defines which "        \
                 "barriers are in in use. Possible values are:"                    \
                 " satb - snapshot-at-the-beginning concurrent GC (three pass mark-evac-update);"  \
                 " iu - incremental-update concurrent GC (three pass mark-evac-update);"  \
                 " passive - stop the world GC only (either degenerated or full)") \
                                                                                   \
      -  experimental(ccstr, ShenandoahGCHeuristics, "adaptive",                   \
      +  product(ccstr, ShenandoahGCHeuristics, "adaptive",                        \
                 "GC heuristics to use. This fine-tunes the GC mode selected, "    \
                 "by choosing when to start the GC, how much to process on each "  \
                 "cycle, and what other features to automatically enable. "        \

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              shade Aleksey Shipilev
              Reporter:
              shade Aleksey Shipilev
              Reviewed By:
              Roman Kennke
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: