RFR(XS): 8213410: UseCompressedOops @requirement check fails fails on 32-bit system

Boris Ulasevich boris.ulasevich at bell-sw.com
Wed Nov 7 09:07:24 UTC 2018


Hi David,

 > Let me make enquiries with jtreg-use at openjdk.java.net

Ok!

 > Aside: if the UseCompressOops checks is preceded by a 64-bit check
 > does it still fail?

Jtreg test fails with "invalid boolean value" message:
@requires vm.bits == "64" & vm.opt.final.UseCompressedOops

Boris

On 07.11.2018 11:54, David Holmes wrote:
> Hi Boris,
> 
> On 7/11/2018 6:06 PM, Boris Ulasevich wrote:
>> Hi David,
>>
>>    Yes, at first glance it is weird. We have actually three states for 
>> vm.opt.final.UseCompressedOops: true, false and null. Null means "not 
>> applicable" - when current VM does not support the option with the 
>> given name. Here is another approach for the issue (I am not sure it 
>> is a good one):
>>    http://cr.openjdk.java.net/~bulasevich/8213410/webrev.01/
> 
> I like that approach! I'm just not sure everyone else will necessarily 
> agree :) This proposal might need a wider audience than just hotspot-dev.
> 
> Let me make enquiries with jtreg-use at openjdk.java.net and see what the 
> general intent was here.
> 
> Aside: if the UseCompressOops checks is preceded by a 64-bit check does 
> it still fail? (Just wondering whether jtreg does short-circuit 
> evaluation for these @require statements.)
> 
> Thanks,
> David
> 
>> thank you,
>> Boris
>>
>> On 07.11.2018 1:36, David Holmes wrote:
>>> Hi Boris,
>>>
>>> I'm somewhat perplexed as to what the difference is between:
>>>
>>> @requires vm.opt.final.UseCompressedOops
>>>
>>> and
>>>
>>> @requires vm.opt.final.UseCompressedOops == true
>>>
>>> if they are indeed different then that seems to be a bug in the 
>>> requirement handling in the jtreg support code.
>>>
>>> I'm also wondering whether any such requirement should always be 
>>> proceeded by a check for 64-bits?
>>>
>>> Otherwise I would expect
>>>
>>> @requires vm.opt.final.UseCompressedOops
>>>
>>> to be false in 32-bit, so again a problem with the jtreg support code.
>>>
>>> Thanks,
>>> David
>>>
>>> On 7/11/2018 12:43 AM, Boris Ulasevich wrote:
>>>> Hi all,
>>>>
>>>> Please review this patch to fix jtreg @requires 
>>>> vm.opt.final.UseCompressedOops flag evaluation fail reproduced on 
>>>> ARM32: "invalid boolean value: null for expression 
>>>> vm.opt.final.UseCompressedOops".
>>>>
>>>> http://cr.openjdk.java.net/~bulasevich/8213410/webrev.00/
>>>> https://bugs.openjdk.java.net/browse/JDK-8213410
>>>>
>>>> The fix was checked on ARM32 (tests disabled) and AARCH64 (works Ok 
>>>> by default, and becomes disabled with 
>>>> -javaoptions:"-XX:-UseCompressedOops" jtreg option).
>>>>
>>>> Thanks,
>>>> Boris Ulasevich


More information about the hotspot-dev mailing list