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

David Holmes david.holmes at oracle.com
Thu Oct 17 23:37:32 UTC 2019


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-runtime-dev mailing list