8231757: [ppc] Fix VerifyOops. Errors show since 8231058.

David Holmes david.holmes at oracle.com
Mon Nov 11 07:56:21 UTC 2019


Hi Goetz,

Please note I only looked at the test initially and have not reviewed 
this overall fix as I don't know the PPC code.

The updated test seems fine.

Thanks,
David

On 9/11/2019 1:32 am, Lindenmaier, Goetz wrote:
> Hi,
> 
> I waited for https://bugs.openjdk.java.net/browse/JDK-8233081
> which makes one of the fixes unnecessary.
> Also, I had to fix the argument of verify_oop_helper
> from oop to oopDesc* for the fastdebug build.
> 
> New webrev:
> http://cr.openjdk.java.net/~goetz/wr19/8231757-fix_VerifyOops/03/
> 
> Best regards,
>    Goetz.
> 
>> -----Original Message-----
>> From: David Holmes <david.holmes at oracle.com>
>> Sent: Freitag, 18. Oktober 2019 01:38
>> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>; hotspot-runtime-
>> dev at openjdk.java.net; 'hotspot-compiler-dev at openjdk.java.net' <hotspot-
>> compiler-dev at openjdk.java.net>
>> Subject: Re: 8231757: [ppc] Fix VerifyOops. Errors show since 8231058.
>>
>> On 18/10/2019 12:10 am, Lindenmaier, Goetz wrote:
>>> Hi David,
>>>
>>> you are right, thanks for pointing me to that!
>>> Doing one test for vm.bits=64 and one for 32 should fix it:
>>> http://cr.openjdk.java.net/~goetz/wr19/8231757-fix_VerifyOops/01/
>>
>> s/01/02/ :)
>>
>> For the 32-bit case you can delete the line:
>>
>>      * @requires vm.debug & (os.arch != "sparc") & (os.arch != "sparcv9")
>>
>> For the 64-but case you can delete the "sparc" check from the same line.
>>
>> Thanks,
>> David
>>
>>>
>>> Best regards,
>>>     Goetz.
>>>
>>>> -----Original Message-----
>>>> From: David Holmes <david.holmes at oracle.com>
>>>> Sent: Donnerstag, 17. Oktober 2019 13:18
>>>> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>; hotspot-runtime-
>>>> dev at openjdk.java.net; 'hotspot-compiler-dev at openjdk.java.net' <hotspot-
>>>> compiler-dev at openjdk.java.net>
>>>> Subject: Re: 8231757: [ppc] Fix VerifyOops. Errors show since 8231058.
>>>>
>>>> Hi Goetz,
>>>>
>>>> UseCompressedOops is a 64-bit flag only so your change will break the
>>>> test on 32-bit systems.
>>>>
>>>> David
>>>>
>>>> On 17/10/2019 8:55 pm, Lindenmaier, Goetz wrote:
>>>>> Hi,
>>>>>
>>>>> 8231058 introduced a test that enables +VerifyOops.
>>>>> This fails on ppc, because this was not used in a very
>>>>> long time.
>>>>>
>>>>> The crash is caused by passing compressed oops from
>>>>> LIR_Assembler::store() to the checker routine.
>>>>> I fix this by implementing a checker routine verify_coop
>>>>> that first decompresses the coop.  This makes the new
>>>>> test pass.
>>>>>
>>>>> Further testing showed that the additional checker
>>>>> coding makes Patching Stubs overflow. These
>>>>> can not be increased in size to fit the code. I
>>>>> disable generating verify_oop code in LIRAssembler::load()
>>>>> which fixes the issue.
>>>>>
>>>>> Further I extended the message printed when verification
>>>>> of an oop failed. First, I print the location in the source
>>>>> code where the checker code was generated. Second,
>>>>> I print the faulty oop.
>>>>>
>>>>> I also improved the message printed when PatchingStubs
>>>>> overflow.
>>>>>
>>>>> Finally, I improve the test to run with and without compressed
>>>>> Oops.
>>>>>
>>>>> Please review:
>>>>> http://cr.openjdk.java.net/~goetz/wr19/8231757-fix_VerifyOops/01/
>>>>>
>>>>> @runtime as I modify the test introduced there
>>>>> @compiler as the error is in C1.
>>>>>
>>>>> Best regards,
>>>>>      Goetz.
>>>>>


More information about the hotspot-compiler-dev mailing list