JDK 10 RFR: 8173421: Obsolete and expired flags for JDK 10 need to be removed and related tests updated

David Holmes david.holmes at oracle.com
Fri Jan 27 05:13:53 UTC 2017


Bug: https://bugs.openjdk.java.net/browse/JDK-8173421

When we try to bump the JDK version to 10 we trigger all the warnings 
(and an assert) surrounding the VM deprecated/obsolete/expired flag 
handling. In short anything that expires in 10 must now be removed; 
anything now obsolete in 10 must go in a different table. Related 
changes required to source code and tests. Gory details below.

webrev: http://cr.openjdk.java.net/~dholmes/8173421/webrev/

Testing: JPRT (in progress)
          Manual runs of affected regression tests

This will be pushed to jdk10/jdk10 along with the actual change to bump 
the major version number.

There are some Zero and Aarch64 code tweaks that should have been 
handled in JDK 9 but got overlooked somehow. Nothing significant.

Thanks,
David
---

Non-aliased flags:

AutoGCSelectPauseMillis (def: 5000) has now expired and is removed 
completely from the source code.

UseAutoGCSelectPolicy (def: false) has now expired and is removed 
completely from the source code as-if replaced by false.

UseParNewGC (def: false) expired. However it is expected/required to be 
true whenever UseConcMarkSweepGC is true, and UseConcMarkSweepGC has not 
been deprecated. So we must remove all uses as-if it were true, not false.

ExplicitGCInvokesConcurrentAndUnloadsClasses (def: false) has now 
expired and is removed completely from the source as-if replaced by false.

ConvertSleepToYield (def: true) is now obsolete. It is moved to the 
obsolete table and is removed completely from the source code as-if 
replaced by true.

ConvertYieldToSleep (def: false) is now obsolete. It is moved to the 
obsolete table and is removed completely from the source code as-if 
replaced by false.

As a result of the above MinSleepInterval is no longer used (it should 
have also been deprecated in 9) and is also marked as obsolete.

---

Aliased options that have expired:

CMSMarkStackSizeMax is an alias and has expired. It is removed from the 
alias and obsolete flag tables.

CMSMarkStackSize is an alias and has expired. It is removed from the 
alias and obsolete flag tables.

G1MarkStackSize is an alias and has expired. It is removed from the 
alias and obsolete flag tables.

ParallelMarkingThreads is an alias and has expired. It is removed from 
the alias and obsolete flag tables.

ParallelCMSThreads is an alias and has expired. It is removed from the 
alias and obsolete flag tables.

---

The following flags all expire in 10 and exist (except where noted) only 
in the special-flag table (from which they are now removed). Any other 
uses of the flag are removed.

UseOldInlining
SafepointPollOffset (defined in ./cpu/aarch64/vm/c1_globals_aarch64.hpp)
UseBoundThreads (comments in os_solaris.cpp)
DefaultThreadPriority
NoYieldsInMicrolock
BackEdgeThreshold (defined in c1/2_globals_aarch64.hpp)
UseNewReflection
ReflectionWrapResolutionErrors
VerifyReflectionBytecodes
AutoShutdownNMT
NmethodSweepFraction
NmethodSweepCheckInterval
CodeCacheMinimumFreeSpace
UseFastAccessorMethods (ZERO) (still used in 
ccpInterpreterGenerator_zero.cpp, jvmtiManageCapabilities.cpp)
UseFastEmptyMethods (ZERO) (still used in 
ccpInterpreterGenerator_zero.cpp, jvmtiManageCapabilities.cpp)
UseCompilerSafepoints
AdaptiveSizePausePolicy
ParallelGCRetainPLAB
ThreadSafetyMargin
LazyBootClassLoader
StarvationMonitorInterval
PreInflateSpin
JNIDetachReleasesMonitors
UseAltSigs
SegmentedHeapDumpThreshold
PrintOopAddress (comment in method.cpp)
PermSize
MaxPermSize

---

Tests modified:

runtime/CommandLine/
   ObsoleteFlagErrorMessage.java
   VMDeprecatedOptions.java
   VMAliasOptions.java

gc/arguments/TestSelectDefaultGC.java

---

Tests removed (TEST.groups updated as needed):

gc/startup_warnings/
   TestUseAutoGCSelectPolicy.java
   TestParNewSerialOld.java
   TestParNewCMS.java
   TestDefNewCMS.java
gc/arguments/TestExplicitGCInvokesConcurrentAndUnloadsClasses.java

runtime/CommandLine/PermGenFlagsTest.java
runtime/NMT/AutoshutdownNMT.java


More information about the hotspot-dev mailing list