RFR: 8234906: [TESTBUG] TestDivZeroCheckControl fails for client VMs due to Unrecognized VM option LoopUnrollLimit

christoph.goettschkes at microdoc.com christoph.goettschkes at microdoc.com
Wed Dec 4 09:49:55 UTC 2019


Hi Vladimir,

thanks for the explanation and for pointing to the code.

I integrated your suggestions into this new webrev:
https://cr.openjdk.java.net/~cgo/8234906/webrev.02/

I already created the changeset with you as a reviewer, so if you are fine 
with this version, may I ask you to sponsor it and commit it into the 
repository for me?
https://cr.openjdk.java.net/~cgo/8234906/webrev.02/jdk-jdk.changeset

Thanks,
Christoph

Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote on 2019-12-03 19:33:52:

> From: Vladimir Kozlov <vladimir.kozlov at oracle.com>
> To: christoph.goettschkes at microdoc.com
> Cc: hotspot-compiler-dev at openjdk.java.net
> Date: 2019-12-03 19:34
> Subject: Re: RFR: 8234906: [TESTBUG] TestDivZeroCheckControl fails for 
> client VMs due to Unrecognized VM option LoopUnrollLimit
> 
> You don't need to duplicate @bug (it was C2 bug anyway). And don't need
> to check  & !vm.graal.enabled for C2 case (see 
> explanation below)
> 
>  > Could you elaborate how the two flags are related? I though, if graal 
is
>  > used as a JIT, both `vm.graal.enabled` and `vm.compiler2.enabled` are 
set
>  > to true. Is that correct? I don't have a setup with graal, so I can 
not
>  > test this.
> 
> When we enable Graal JIT it is used instead of C2. They are mutually 
exclusive.
> Compiler.isC2Enabled() (which sets vm.compiler2.enabled [1]) returns 
> false when isGraalEnabled() returns true [2].
> 
> Regards,
> Vladimir
> 
> [1] http://hg.openjdk.java.net/jdk/jdk/file/138b0f3fe18c/test/jtreg-
> ext/requires/VMProps.java#l117
> [2] http://hg.openjdk.java.net/jdk/jdk/file/138b0f3fe18c/test/lib/sun/
> hotspot/code/Compiler.java#l80
> 
> 
> On 12/3/19 4:22 AM, christoph.goettschkes at microdoc.com wrote:
> > Hi Vladimir,
> > 
> > could you have a look at my updated webrev regarding this failing 
test?
> > https://cr.openjdk.java.net/~cgo/8234906/webrev.01/
> > 
> > See my inline comments in the mail below.
> > 
> > Thanks,
> > Christpoh
> > 
> > "hotspot-compiler-dev" <hotspot-compiler-dev-bounces at openjdk.java.net>
> > wrote on 2019-11-28 13:44:05:
> > 
> >> From: christoph.goettschkes at microdoc.com
> >> To: Vladimir Kozlov <vladimir.kozlov at oracle.com>
> >> Cc: hotspot-compiler-dev at openjdk.java.net
> >> Date: 2019-11-28 13:46
> >> Subject: Re: RFR: 8234906: [TESTBUG] TestDivZeroCheckControl fails 
for
> >> client VMs due to Unrecognized VM option LoopUnrollLimit
> >> Sent by: "hotspot-compiler-dev"
> > <hotspot-compiler-dev-bounces at openjdk.java.net>
> >>
> >> Hi Vladimir,
> >>
> >> Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote on 2019-11-27
> > 20:54:02:
> >>
> >>> From: Vladimir Kozlov <vladimir.kozlov at oracle.com>
> >>> To: christoph.goettschkes at microdoc.com,
> >> hotspot-compiler-dev at openjdk.java.net
> >>> Date: 2019-11-27 20:54
> >>> Subject: Re: RFR: 8234906: [TESTBUG] TestDivZeroCheckControl fails 
for
> > 
> >>> client VMs due to Unrecognized VM option LoopUnrollLimit
> >>>
> >>> Hi Christoph
> >>>
> >>> I was about suggest IgnoreUnrecognizedVMOptions flag but remembered
> >>> discussion about 8231954 fix.
> >>
> >> Yes, I try to avoid "IgnoreUnrecognizedVMOptions" because of our
> > previous
> >> discussion. I also think that it doesn't make sense to execute tests 
in
> > VM
> >> configurations for which they are not written for. Most of the 
compiler
> >> tests simply have "IgnoreUnrecognizedVMOptions" and probably waste a
> > good
> >> amount of time in certain VM configurations.
> >>
> >>> But I think the test should be run with Graal - it does have OSR
> >>> compilation and we need to test it.
> >>
> >> Sure. I disabled it, because I thought that the flag 
"LoopUnrollLimit"
> > is
> >> required to trigger the faulty behavior, but I don't know much about
> >> optimization in the graal JIT.
> >>
> >>>
> >>> We can do it by splitting test runs (duplicate @test block with
> >>> different run flags) to have 2 tests with different
> >>> flags and conditions. See [1].
> >>>
> >>> For existing @run block we use `@requires vm.compiler2.enabled` and
> > for
> >>> new without LoopUnrollLimit - `vm.graal.enabled`.
> >>
> >> I did the following:
> >>
> >> https://cr.openjdk.java.net/~cgo/8234906/webrev.01/
> >>
> >> Could you elaborate how the two flags are related? I though, if graal 
is
> > 
> >> used as a JIT, both `vm.graal.enabled` and `vm.compiler2.enabled` are
> > set
> >> to true. Is that correct? I don't have a setup with graal, so I can 
not
> >> test this.
> >>
> >> Thanks,
> >> Christoph
> >>
> > 
> 



More information about the hotspot-compiler-dev mailing list