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
Wed Feb 1 00:14:14 UTC 2017


Thanks for the review Dan!

MinSleepInterval should have been deprecated in 9 but we missed it. I 
don't think it is worth trying to do that now given where we are in the 
release cycle.

David

On 1/02/2017 8:14 AM, Daniel D. Daugherty wrote:
> On 1/30/17 5:47 PM, David Holmes wrote:
>> Just realized I still need a JDK 10 Reviewer to look at this.
>>
>> http://cr.openjdk.java.net/~dholmes/8173421/webrev.hotspot.v2/
>
> src/cpu/aarch64/vm/c1_globals_aarch64.hpp
>     No comments.
>
> src/cpu/aarch64/vm/c2_globals_aarch64.hpp
>     No comments.
>
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java
>     No comments.
>
> src/os/solaris/vm/os_solaris.cpp
>     No comments.
>
> src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp
>     No comments.
>
> src/share/vm/oops/method.cpp
>     No comments.
>
> src/share/vm/prims/jvm.cpp
>     The JVM_Sleep() changes had me confused for second,
>     but I think they're okay...
>
>     No other comments.
>
> src/share/vm/runtime/arguments.cpp
>     MinSleepInterval - are you going to deprecate this in JDK9?
>
>     No other comments.
>
> src/share/vm/runtime/arguments.hpp
>     No comments.
>
> src/share/vm/runtime/globals.hpp
>     No comments.
>
> test/TEST.groups
>     No comments.
>
> test/gc/arguments/TestSelectDefaultGC.java
>     No comments.
>
> test/runtime/CommandLine/ObsoleteFlagErrorMessage.java
>     No comments.
>
> test/runtime/CommandLine/VMAliasOptions.java
>     No comments.
>
> test/runtime/CommandLine/VMDeprecatedOptions.java
>     No comments.
>
> test/gc/arguments/TestExplicitGCInvokesConcurrentAndUnloadsClasses.java
> test/gc/startup_warnings/TestDefNewCMS.java
> test/gc/startup_warnings/TestParNewCMS.java
> test/gc/startup_warnings/TestParNewSerialOld.java
> test/gc/startup_warnings/TestUseAutoGCSelectPolicy.java
> test/runtime/NMT/AutoshutdownNMT.java
>     No comments on the deleted files.
>
> Thumbs up!
>
> Dan
>
>
>>
>> Thanks,
>> David
>>
>> On 31/01/2017 10:42 AM, David Holmes wrote:
>>> Forgot to add that I'm no longer deleting the test:
>>>
>>>  test/runtime/CommandLine/PermGenFlagsTest.java
>>>
>>> David
>>>
>>> On 31/01/2017 10:35 AM, David Holmes wrote:
>>>> 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