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

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Fri Nov 8 15:32:48 UTC 2019


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