RFR: 8322170: Update deprecated/obsolete/expired flags table for GC

Kim Barrett kbarrett at openjdk.org
Tue Dec 19 14:00:50 UTC 2023


On Sat, 16 Dec 2023 13:36:37 GMT, Lei Zaakjyu <duke at openjdk.org> wrote:

> 8322170: Update deprecated/obsolete/expired flags table for GC

I've run out of time for archeology on these options.  That's also work that
properly should be done by someone proposing these kinds of changes, with the
results described with the proposed change.

src/hotspot/share/runtime/arguments.cpp line 516:

> 514:   { "G1ConcRefinementThresholdStep", JDK_Version::undefined(), JDK_Version::jdk(20), JDK_Version::jdk(23) },
> 515:   { "G1UseAdaptiveConcRefinement",  JDK_Version::undefined(), JDK_Version::jdk(20), JDK_Version::jdk(23) },
> 516:   { "G1ConcRefinementServiceIntervalMillis", JDK_Version::undefined(), JDK_Version::jdk(20), JDK_Version::jdk(23) },

I think removing G1ConcRefinement* and G1UseAdaptiveConcRefinement is fine.
Those were obsoleted in 20, with associated tuning guide updates to remove
mention of them also made in 20. The CSR describes them as being obsoleted
because they are no longer meaningful. I believe the intent was that they
would survive in the obsolete state across an LTS version. That's done now, so
they can be removed.

src/hotspot/share/runtime/arguments.cpp line 523:

> 521:   { "MetaspaceReclaimPolicy",       JDK_Version::undefined(), JDK_Version::jdk(21), JDK_Version::undefined() },
> 522: 
> 523:   { "MaxGCMinorPauseMillis",        JDK_Version::jdk(8), JDK_Version::jdk(23), JDK_Version::jdk(24) },

MaxGCMinorPauseMillis was deprecated a long time ago; I didn't find a CSR for
it. Moving it to obsolete and removing the functionality in 23 seems fine.
Internet search found no occurrences. The associated warning says it would
likely be removed in a future release. Perhaps it should remain in the
obsolete state through an LTS release?  I don't know whether this needs a CSR.

src/hotspot/share/runtime/arguments.cpp line 528:

> 526:   { "InitialRAMFraction",           JDK_Version::jdk(10),  JDK_Version::jdk(23), JDK_Version::jdk(24) },
> 527: 
> 528:   { "DefaultMaxRAMFraction",        JDK_Version::jdk(8),  JDK_Version::jdk(23), JDK_Version::jdk(24) },

DefaultMaxRAMFraction is a deprecated alias for MaxRAMFraction (also
deprecated). Transitioning it to obsolete should include removal from the
alias table (aliased_jvm_flags).  It was deprecated a long time ago; I didn't
find a CSR for it. Internet search finds a fair number of occurrences.  This
seems like something that might warrant a CSR and having in the obsolete state
across an LTS release.

src/hotspot/share/runtime/arguments.cpp line 529:

> 527: 
> 528:   { "DefaultMaxRAMFraction",        JDK_Version::jdk(8),  JDK_Version::jdk(23), JDK_Version::jdk(24) },
> 529:   { "TLABStats",                    JDK_Version::jdk(12), JDK_Version::jdk(23), JDK_Version::jdk(24) },

Transitioning a flag from deprecated to obsolete should be accompanied by removal of the associated
functionality.

-------------

Changes requested by kbarrett (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/17135#pullrequestreview-1788835383
PR Review Comment: https://git.openjdk.org/jdk/pull/17135#discussion_r1431384259
PR Review Comment: https://git.openjdk.org/jdk/pull/17135#discussion_r1431414418
PR Review Comment: https://git.openjdk.org/jdk/pull/17135#discussion_r1431437741
PR Review Comment: https://git.openjdk.org/jdk/pull/17135#discussion_r1431390512


More information about the hotspot-gc-dev mailing list