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

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed Feb 1 00:15:12 UTC 2017


Sounds good to me.

Dan


On 1/31/17 5:14 PM, David Holmes wrote:
> 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