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
Mon Jan 30 20:37:46 UTC 2017
Thanks for the Review Lois. For the public record there's a conversation
happening around what to do with the PermSize flags.
Can I please get additional Reviews - this affects code in all teams.
We need to get the JDK 10 forest buildable as JDK 10 ASAP.
Thanks,
David
On 27/01/2017 11:46 PM, Lois Foltan wrote:
>
> 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