[11u] RFR: 8259227: C2 crashes with SIGFPE due to a division that floats above its zero check

Doerr, Martin martin.doerr at sap.com
Mon Mar 22 13:15:13 UTC 2021


Hi,

thanks, Roland, for reviewing my JDK-8257822 backport!

JDK-8259227 is a follow-up fix which applies cleanly, but I had to remove "randomness" and the flag "-XX:StressSeed" from 2 tests for jdk11u as mentioned in my previous RFR email which I included below.

Please review
http://cr.openjdk.java.net/~mdoerr/8259227_C2_SIGFPE2_11u/webrev.00/

Bug:
https://bugs.openjdk.java.net/browse/JDK-8259227

Original change:
https://git.openjdk.java.net/jdk16/commit/c1fb5216

Best regards,
Martin


> -----Original Message-----
> From: jdk-updates-dev <jdk-updates-dev-retn at openjdk.java.net> On
> Behalf Of Doerr, Martin
> Sent: Freitag, 19. März 2021 17:46
> To: jdk-updates-dev at openjdk.java.net
> Cc: Langer, Christoph <christoph.langer at sap.com>; Lindenmaier, Goetz
> <goetz.lindenmaier at sap.com>
> Subject: [CAUTION] [11u] RFR: 8257822: C2 crashes with SIGFPE due to a
> division that floats above its zero check
> 
> Hi,
> 
> JDK-8257822 is backported to 11.0.12-oracle. I'd like to backport it for parity
> and push it together with the follow-up fixes (which apply cleanly on top of
> this one):
> https://bugs.openjdk.java.net/browse/JDK-8258505
> https://bugs.openjdk.java.net/browse/JDK-8259227
> https://bugs.openjdk.java.net/browse/JDK-8260284
> This one doesn't apply cleanly because of an unrelated context difference
> ("set_early_ctrl" has an additional parameter in 16). So it was trivial to
> resolve.
> 
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8257822
> 
> Original change:
> https://git.openjdk.java.net/jdk16/commit/ce36aeaa
> 
> 11u backport:
> http://cr.openjdk.java.net/~mdoerr/8257822_C2_SIGFPE_11u/webrev.00/
> 
> I couldn't get the new jtreg tests passing without removing the key
> "randomness" and the flag "-XX:StressSeed". I'd like to remove them from
> TestDivZeroWithSplitIf.java and TestDivZeroDominatedBy.java with JDK-
> 8259227:
> http://cr.openjdk.java.net/~mdoerr/8259227_C2_SIGFPE2_11u/webrev.00/
> That one has applied cleanly, but I've removed these parts (also see below).
> Reason for doing it in that change is that the first 3 patches modify the same
> tests.
> 
> Please review.
> 
> Best regards,
> Martin
> 
> 
> diff -r 2150c70198e1
> test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java
> --- a/test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java
> Thu Jan 07 15:02:45 2021 +0000
> +++ b/test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java
> Fri Mar 19 17:24:00 2021 +0100
> @@ -24,12 +24,12 @@
> 
> /*
>   * @test
> - * @key stress randomness
> + * @key stress
>   * @bug 8259227
>   * @summary Verify that zero check is executed before division/modulo
> operation.
>   * @requires vm.compiler2.enabled
>   * @run main/othervm -Xcomp -XX:-TieredCompilation -
> XX:CompileOnly=compiler/loopopts/TestDivZeroDominatedBy::test
> - *                   -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM -
> XX:StressSeed=917280111 compiler.loopopts.TestDivZeroDominatedBy
> + *                   -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM
> compiler.loopopts.TestDivZeroDominatedBy
>   * @run main/othervm -Xcomp -XX:-TieredCompilation -
> XX:CompileOnly=compiler/loopopts/TestDivZeroDominatedBy::test
>   *                   -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM
> compiler.loopopts.TestDivZeroDominatedBy
>   */
> diff -r 2150c70198e1
> test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java
> --- a/test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java  Thu
> Jan 07 15:02:45 2021 +0000
> +++ b/test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java  Fri
> Mar 19 17:24:00 2021 +0100
> @@ -24,12 +24,12 @@
> 
> /*
>   * @test
> - * @key stress randomness
> + * @key stress
>   * @bug 8257822
>   * @summary Verify that zero check is executed before division/modulo
> operation.
>   * @requires vm.compiler2.enabled
>   * @run main/othervm -Xcomp -XX:-TieredCompilation -
> XX:CompileOnly=compiler/loopopts/TestDivZeroWithSplitIf::test
> - *                   -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM -
> XX:StressSeed=873732072 compiler.loopopts.TestDivZeroWithSplitIf
> + *                   -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM
> compiler.loopopts.TestDivZeroWithSplitIf
>   * @run main/othervm -Xcomp -XX:-TieredCompilation -
> XX:CompileOnly=compiler/loopopts/TestDivZeroWithSplitIf::test
>   *                   -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM
> compiler.loopopts.TestDivZeroWithSplitIf
>   */



More information about the jdk-updates-dev mailing list