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:47:43 UTC 2017


Just realized I still need a JDK 10 Reviewer to look at this.

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

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