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

Mikael Vidstedt mikael.vidstedt at oracle.com
Tue Jan 31 00:12:48 UTC 2017


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.

And thanks for taking over the work!

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