RFR (T) 8228855: Test runtime/CommandLine/OptionsValidation/TestOptionsWithRanges fails after JDK-8227123

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Wed Jul 31 21:57:22 UTC 2019



On 7/31/19 5:30 PM, David Holmes wrote:
> On 31/07/2019 11:39 pm, coleen.phillimore at oracle.com wrote:
>> On 7/31/19 9:25 AM, coleen.phillimore at oracle.com wrote:
>>> On 7/31/19 9:12 AM, David Holmes wrote:
>>>> I haven't seen Coleen's original mail turn up yet, so I'll respond 
>>>> here.
>>
>> I haven't gotten the email yet either.
>>>>
>>>> Shouldn't the range be handled by the constraint function:
>>>
>>> It is not handled that way in ObjAlignmentInBytes.
>>
>> What I meant is that ObjectAlignmentInBytes has the constraint 
>> function AND the range.  SurvivorAlignmentInBytes should be the 
>> same.  The constraint function tests that it's > ObjectAlignmentInBytes.
>>
>>   158   lp64_product(intx, ObjectAlignmentInBytes, 
>> 8,                             \
>>   159           "Default object alignment in bytes, 8 is 
>> minimum")                \
>>   160           range(8, 
>> 256)                                                     \
>>   161 constraint(ObjectAlignmentInBytesConstraintFunc,AtParse) \
>
> Okay, so specifying the range is reasonable and I guess specifying the 
> same range as ObjectAlignmentInBytes is also reasonable.
>
> Note however that the default value for SurvivorAlignmentInBytes is 0 
> which is outside of the specified range, so I'm not sure if that makes 
> sense. AFAICS the constraint function only applies if the flag is 
> explicitly set so that default value is ignored. I don't know if that 
> is the case for the range check ??

I think the range check is applied after ergonomics, and the code in 
arguments has:

   if (SurvivorAlignmentInBytes == 0) {
     SurvivorAlignmentInBytes = ObjectAlignmentInBytes;
   }

Probably the default should be changed to 8, and this code removed. Or 
maybe not, maybe it should be:

if (FLAG_IS_DEFAULT(SurvivorAlignmentInBytes)) {
    SurvivorAlignmentInBytes = ObjectAlignmentInBytes;
}

But I don't know.  Maybe we should have a P5 RFE to clean this up.

>
> But given the dependency between these two flags the test won't be 
> able to adjust SurvivorAlignmentInBytes independently of 
> ObjectAlignmentInBytes.

If both options are supplied, there's a test that S >= O.

Thanks,
Coleen
>
> David
> -----
>
>>
>> Coleen
>>>
>>> Coleen
>>>>
>>>>  SurvivorAlignmentInBytesConstraintFunc
>>>>
>>>> ?
>>>>
>>>> David (signing off for the night)
>>>>
>>>> On 31/07/2019 11:04 pm, Aleksey Shipilev wrote:
>>>>> On 7/31/19 2:56 PM, coleen.phillimore at oracle.com wrote:
>>>>>> open webrev at 
>>>>>> http://cr.openjdk.java.net/~coleenp/2019/8228855.01/webrev
>>>>>> bug link https://bugs.openjdk.java.net/browse/JDK-8228855
>>>>>
>>>>> Looks good and trivial.
>>>>>
>>>
>>



More information about the hotspot-dev mailing list