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
Tue Jan 31 00:35:57 UTC 2017


Thanks for reviewing Mikael!

On 31/01/2017 10:12 AM, Mikael Vidstedt wrote:
>
> Looks like the UseFastAccessorMethods and UseFastEmptyMethods are still in active use on ZERO, so they should not be removed. Apart from that it looks good.

Good catch! Yes I have reverted the Zero changes, other than deleting 
the flags from the table. So the following files no longer appear in the 
webrev:

src/cpu/zero/vm/cppInterpreterGenerator_zero.cpp
src/cpu/zero/vm/globals_zero.hpp
src/share/vm/prims/jvmtiManageCapabilities.cpp

I've also changed the PermSize and MaxPermSize so that they have an 
unspecified expiration version.

Webrev updated at:

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

but I intend to push the changes as described

> And thanks for taking over the work!

Didn't know what I'd let myself in for :)

Thanks,
David

> Cheers,
> Mikael
>
>> On Jan 30, 2017, at 12:37 PM, David Holmes <david.holmes at oracle.com> wrote:
>>
>> 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