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

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Mon Nov 11 15:18:03 UTC 2019


Hi Martin, 

thanks for looking at this, 
and thanks for resolving the patching stub issue!

Best regards,
  Goetz.

> -----Original Message-----
> From: Doerr, Martin <martin.doerr at sap.com>
> Sent: Montag, 11. November 2019 16:07
> To: David Holmes <david.holmes at oracle.com>; 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 Götz,
> 
> the PPC64 code looks good, too.
> Thanks for fixing and improving it.
> 
> Best regards,
> Martin
> 
> 
> > -----Original Message-----
> > From: hotspot-compiler-dev <hotspot-compiler-dev-
> > bounces at openjdk.java.net> On Behalf Of David Holmes
> > Sent: Montag, 11. November 2019 08:56
> > 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,
> >
> > 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-runtime-dev mailing list