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

JEP 173: Retire Some Rarely-Used GC Combinations

XMLWordPrintable

    • Icon: JEP JEP
    • Resolution: Delivered
    • Icon: P4 P4
    • 8
    • hotspot
    • None
    • Bengt Rutisson
    • Feature
    • Open
    • gc
    • JDK
    • hotspot dash gc dash dev at openjdk dot java dot net
    • XS
    • XS
    • 173

      Summary

      Remove three rarely-used combinations of garbage collectors in order to reduce ongoing development, maintenance, and testing costs.

      Goals

      There are three GC combinations that are currently not used enough to warrant future support:

      • DefNew + CMS
      • ParNew + SerialOld
      • Incremental CMS

      These combinations add extra complexity to the GC code base and consume valuable testing resources while adding very little value to the users. To simplify the GC code base and improve testing and sustainability we propose to remove these combinations.

      Motivation

      There is a large cost to keep all the existing GC combinations. There are not enough resources to test all of them. New features take longer to implement and test due to the complexity of the GC code base. As a first step towards a simpler, more stable, and faster code base we need to remove some of the rarely used combinations.

      Description

      The DefNew + CMS and ParNew + SerialOld combinations and the Incremental Mode of CMS will be deprecated (logging a warning message). This is to be interpreted as that these GC combinations will be removed in some upcoming major release.

      The following combinations of command-line flags will be affected:

      Flags GC Configuration
      -XX:-UseParNewGC
      -XX:+UseConcMarkSweepGC
      DefNew + CMS
      -XX:+UseParNewGC ParNew + SerialOld
      -Xincgc ParNew + iCMS
      -XX:+CMSIncrementalMode
      -XX:+UseConcMarkSweepGC
      ParNew + iCMS
      -XX:+CMSIncrementalMode
      -XX:+UseConcMarkSweepGC
      -XX:-UseParNewGC
      DefNew + iCMS

      Alternatives

      Continue to support untested GC combinations.

      Testing

      • Tests to verify that the corresponding command line flags produce warnings and error messages as appropriate.

      • Make sure that all remaining GC combinations are subject to continuous testing.

      Risks and Assumptions

      There are basically three assumptions about the GC combinations in question:

      • Most users that are currently using Incremental CMS will benefit from switching over to "normal" CMS.

      • Users using DefNew + CMS will benefit from using ParNew + CMS instead.

      • Users using ParNew + SerialOld will benefit from using ParallelScavenge + SerialOld instead

      There is a risk that one or more of these assumptions don't hold up. As far as we can tell at the moment the risk is small.

      Impact

      • Compatibility: We will be deprecating command-line options.

      • User experience: Some users may have to change their currently selected GC. Hopefully this will be a change for the better.

      • Documentation: Since command-line options are changed the corresponding documentation needs to be updated. We also need to add release notes.

            brutisso Bengt Rutisson (Inactive)
            brutisso Bengt Rutisson (Inactive)
            Bengt Rutisson Bengt Rutisson (Inactive)
            Jesper Wilhelmsson, John Coomes (Inactive), Jon Masamitsu (Inactive)
            Mikael Vidstedt
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: