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

Lois Foltan lois.foltan at oracle.com
Fri Jan 27 13:46:43 UTC 2017


On 1/27/2017 12:13 AM, David Holmes wrote:
> 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.

Hi David,

This looks good.  However, please do not remove PermSize and MaxPermSize 
in the special flag table in src/share/vm/runtime/arguments.cpp.  We 
recently added these options back in JDK 9 for ease of migration, see 
JDK-8167446.  I would rather see these two options put back in the table 
and have their expiration bumped to 11 until we decide going forward 
what is the correct course of action.  Feel free to enter a new JDK 10 
specific bug to address the issue of these two options specifically.

Thanks,
Lois

>
> 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