RFR 8130459(M): Add additional validation after heap creation

sangheon.kim sangheon.kim at oracle.com
Wed Jul 15 15:02:24 UTC 2015

Hi Eric,

Thanks for looking at this.
My answers are below.

On 07/15/2015 06:49 AM, Eric Caspole wrote:
> Hi Sangheon,
> In commandLineFlagConstraintsGC.cpp, the error string uses 
> "PLAB::min_size" and "PLAB::max_size" but I think those strings should 
> be something that relates to command line options so it is more clear 
> to the user what is wrong in terms of what was set on the command line.
You are right.
Do you have any recommendation? How about 'ergonomic PLAB 
minimum/maximum size'?

> I will try this patch with the test for 8078904, I think it fixes it.
Do you mean you will manually add 'MinTLABSize' flag constraint functions?
I thought 'MinTLABSize' flag is making a problem on 8078904.


> Thanks,
> Eric
> On 07/15/2015 03:33 AM, sangheon.kim wrote:
>> Hi all,
>> Please review this change of adding additional validation on
>> command-line flag checking framework.
>> Recently we introduced Command-line flag checking framework (JDK-8059557
>> <https://bugs.openjdk.java.net/browse/JDK-8059557>, JEP 245: Validate
>> JVM Command-Line Flag Arguments ) for ranges and constraints.
>> And most cases this works great.
>> Unfortunately there are some flags which can be checked after heap
>> creation and these flags are hard to be checked under current framework.
>> In this regard, I suggest to have an additional constraint checking.
>> This suggestion adds one more constraint checking stage after memory
>> initialization.
>> And if we need more validations we can extend it.
>> There are 2 big changes.
>> 1. Flag declaration.
>> 'constraint(FUNC)' -> 'constraint(FUNC,TYPE)'
>> This webrev has 3 types, Anytime, AfterParse and AfterMemoryInit.
>> - Anytime: current constraint functions which don't use
>> CommandLineFlags::finishedInitializing().
>> - AfterParse: constraint functions which use
>> CommandLineFlags::finishedInitializing().
>> - AfterMemoryInit: I added only YoungPLABSize as an example.
>>    * All GC related flags will be covered by JDK-8078555
>> <https://bugs.openjdk.java.net/browse/JDK-8078555>: GC: implement ranges
>> (optionally constraints) for those flags that have them missing.
>> 2. Previous constraint functions have to use
>> 'CommandLineFlags::finishedInitializing()' if the flag needs to be
>> checked after Argument::parse().
>> However, with this suggestion there's no need to call the function.
>> Instead framework will decide when the constraint function is needed to
>> be called.
>> And previously constraint functions are called twice while this change
>> will call each constraint function only one time.
>> CR: https://bugs.openjdk.java.net/browse/JDK-8130459
>> webrev: http://cr.openjdk.java.net/~sangheki/8130459/webrev.00/
>> Testing: JPRT, UTE(vm.quick-pcl) and tests at test/runtime/CommandLine.
>> Thanks,
>> Sangheon

More information about the hotspot-dev mailing list