RFR: 8298935: fix cyclic dependency bug in create_pack logic in SuperWord::find_adjacent_refs

Emanuel Peter epeter at openjdk.org
Tue Feb 21 07:35:27 UTC 2023


On Mon, 13 Feb 2023 01:43:49 GMT, Fei Gao <fgao at openjdk.org> wrote:

>>> @fg1417 Do you have the possibility to test on arm32?
>> 
>> Sure. I'll do the testing with a 32-bit docker container on a 64-bit host.
>
>> > @fg1417 Do you have the possibility to test on arm32?
>> 
>> Sure. I'll do the testing with a 32-bit docker container on a 64-bit host.
> 
> The testing for tier 1 - 3 and jcstress looks good. No new failures on arm32. Thanks.

Thanks @fg1417 for running my two `Test.java`. He got a crash from the `byte` case. And my patch seems to fix it.

Quoting him:


As mentioned in arm manual, E2.6.2 Unaligned data access, vldr doesn’t support unaligned data access. We use fldd(vldr, see K8.1.1 Pre-UAL instruction syntax for the A32 base instructions) for 8-byte vector load.


This is the crash he got:

...
After filter_packs
packset
Pack: 0
 align: 0        809  StoreB  === 820 823 810 812  [[ 807 808 ]]  {230:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=720,643,230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 1        807  StoreB  === 820 809 814 808  [[ 805 806 ]]  {230:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=717,230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 2        805  StoreB  === 820 807 813 806  [[ 802 803 ]]  {230:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=643,230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 3        802  StoreB  === 820 805 811 803  [[ 720 721 ]]  {230:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 4        720  StoreB  === 820 802 815 721  [[ 717 718 ]]  {230:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=643,230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 5        717  StoreB  === 820 720 804 718  [[ 643 644 ]]  {230:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 6        643  StoreB  === 820 717 722 644  [[ 463 230 211 ]]  {230:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=230,658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 7        230  StoreB  === 820 643 719 211  [[ 823 459 238 ]]  {230:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Memory: @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; !orig=658 !jvms: TestByte::lambda$test$0 @ bci:7 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
Pack: 1
 align: 0        812  LoadB  === 470 823 813  [[ 809 ]]  {211:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Type:byte !orig=721,644,211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 1        808  LoadB  === 470 809 811  [[ 807 ]]  {211:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Type:byte !orig=718,211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 2        806  LoadB  === 470 807 815  [[ 805 ]]  {211:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Type:byte !orig=644,211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 3        803  LoadB  === 470 805 804  [[ 802 ]]  {211:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Type:byte !orig=211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 4        721  LoadB  === 470 802 722  [[ 720 ]]  {211:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Type:byte !orig=644,211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 5        718  LoadB  === 470 720 719  [[ 717 ]]  {211:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Type:byte !orig=211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 6        644  LoadB  === 470 717 645  [[ 643 ]]  {211:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Type:byte !orig=211 !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)
 align: 7        211  LoadB  === 470 643 207  [[ 230 ]]  {211:0}  @byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any *, idx=10;  Type:byte !jvms: TestByte::lambda$test$0 @ bci:6 (line 26) TestByte$$Lambda$1/0xb1400cc8::accept @ bci:5 java.util.stream.Streams$RangeIntSpliterator::forEachRemaining @ bci:44 (line 104)

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0xf47cbb9c, pid=188025, tid=188026
#
# JRE version: OpenJDK Runtime Environment (21.0) (slowdebug build 21-internal-git-43c71ddf9)
# Java VM: OpenJDK Server VM (slowdebug 21-internal-git-43c71ddf9, mixed mode, sharing, g1 gc, linux-arm)
# Problematic frame:
# J 14 c2 java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Ljava/util/function/IntConsumer;)V java.base at 21-internal (65 bytes) @ 0xf47cbb9c [0xf47cb980+0x0000021c]
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/ent-user/ci-scripts/core.188025)
#
# An error report file with more information is saved as:
# /home/ent-user/ci-scripts/hs_err_pid188025.log
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

-------------

PR: https://git.openjdk.org/jdk/pull/12350


More information about the hotspot-compiler-dev mailing list