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
Tue Jan 31 22:14:19 UTC 2017


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