dragonwell-project / dragonwell11

Alibaba Dragonwell11 JDK
https://www.aliyun.com/product/dragonwell
GNU General Public License v2.0
558 stars 113 forks source link

[riscv64]jdk/incubator/vector/AddTest.java等9个用例超时 #827

Open sendaoYan opened 4 months ago

sendaoYan commented 4 months ago

https://tone.aliyun-inc.com/ws/xesljfzh/test_result/306034?tab=3 【环境准备】

登录环境:
30.220.116.74

BINARY_URL=oss://dragonwell/11.0.23.20.9-test-dragonwell_extended/Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux.tar.gz
TEST_IMAGE=oss://dragonwell/11.0.23.20.9-test-dragonwell_extended/Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux-testimage.tar.gz
JTREG_URL=oss://compiler-ci-bucket/jdk/tools/jtreg-6.1.1.zip
JDK_REPO=git@github.com:dragonwell-project/dragonwell11.git
JDK_BRANCH=dragonwell_extended-11.0.23.20.9
alias oss="/tmp/tone/tone-matrix-compiler/common/ossutil.bin_riscv64 -e oss-cn-hangzhou.aliyuncs.com -u jvm_dev  -b /tmp/tone/run/jtreg/ossutil_bin/ossutil -o download -f -r"

部署二进制:
oss $BINARY_URL -l ${BINARY_URL##*/}
mkdir binary-download;tar -xf ${BINARY_URL##*/} -C binary-download
oss $TEST_IMAGE-l ${TEST_IMAGE##*/}
mkdir test-images;tar -xf ${BINARY_URL##*/} -C test-images

cd binary-download/dragonwell-11.0.22.19+7-ga/ && export JAVA_HOME=$PWD ; export PATH=$JAVA_HOME/bin:$PATH ; export TEST_JDK_HOME=$JAVA_HOME && cd -

部署jtreg工具:
oss $JTREG_URL -l ${JTREG_URL##*/};unzip ${JTREG_URL##*/}
cd jtreg ;export JT_HOME=$PWD ; export PATH=$PWD/bin:$PATH;cd -

部署用例repo
git clone -b $JDK_BRANCH $JDK_REPO ajdk-repo

执行以下命令:
test="jdk/incubator/vector/AddTest.java"
args="-Djdk.lang.processReaperUseDefaultStackSize=true -Dtest.wisp.socketAddress=www.alibabacloud.com -Xmixed -ea -esa"
native=-nativepath:test-images/dragonwell-11.0.22.19+7-ga-test-image/hotspot/jtreg/native
jtreg  -nr -v:fail,error -w tmp  $args $native  $test

涉及9个用例 jdk-repo/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java jdk-repo/test/jdk/java/util/concurrent/ConcurrentHashMap/ConcurrentContainsKeyTest.java jdk-repo/test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java jdk-repo/test/jdk/jdk/incubator/vector/AddTest.java jdk-repo/test/jdk/jdk/incubator/vector/Vector128ConversionTests.java jdk-repo/test/jdk/jdk/incubator/vector/Vector256ConversionTests.java jdk-repo/test/jdk/jdk/incubator/vector/Vector64ConversionTests.java jdk-repo/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java jdk-repo/test/jdk/jdk/incubator/vector/VectorReshapeTests.java

-timeoutFactor 6.0 5.0 4.0
用例执行结果 pass 10%概率fail fail
用例执行时间 9m25s 9m5s 8m29s

【对比测试】 dragonwell release 同样问题 oss://dragonwell/11.0.22.19.7/Alibaba_Dragonwell_Extended_11.0.22.19.7_riscv64_linux.tar.gz

[root@fedora-riscv jtreg]#  bin-release/dragonwell-11.0.22.19+7-ga/bin/java -version
openjdk version "11.0.22.19" 2024-01-16
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.22.19+7)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.22.19+7, mixed mode)
[root@fedora-riscv jtreg]#  bin-release/dragonwell-11.0.22.19+7-ga/bin/java -Xinternalversion
OpenJDK 64-Bit Server VM (11.0.22.19+7) for linux-riscv64 JRE (11.0.22.19+7), built on Mar  5 2024 04:12:27 by "" with gcc 9.2.0

【用例日志】 完整日志: 2.log 部分日志:

STDERR:
warning: using incubating module(s): jdk.incubator.vector
1 warning

ACTION: main -- Error. Program `/tmp/tone/run/jtreg/binary-download/dragonwell-11.0.22.19+7-ga/bin/java' timed out (timeout set to 480000ms, elapsed time including timeout handling was 483748ms).
REASON: Assumed action based on file name: run main AddTest 
TIME:   483.757 seconds
messages:
command: main AddTest
reason: Assumed action based on file name: run main AddTest 
Mode: othervm [test requires non-default system module]
Additional options from @modules: --add-modules jdk.incubator.vector
Timeout information:
Running jstack on process 2633723
2024-04-29 17:34:34
Full thread dump OpenJDK 64-Bit Server VM (11.0.23.19+7 mixed mode):

Threads class SMR info:
_java_thread_list=0x0000003f30000c40, length=11, elements={
0x0000003fac027800, 0x0000003fac322800, 0x0000003fac32a800, 0x0000003fac34a000,
0x0000003fac34c000, 0x0000003fac34e800, 0x0000003fac350800, 0x0000003fac352800,
0x0000003fac3fa800, 0x0000003fac488800, 0x0000003f30001000
}

"main" #1 prio=5 os_prio=0 cpu=1335.33ms elapsed=483.66s tid=0x0000003fac027800 nid=0x282ffe in Object.wait()  [0x0000003fb11fe000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(java.base@11.0.23.19/Native Method)
    - waiting on <0x0000000413400000> (a java.lang.Thread)
    at java.lang.Thread.join(java.base@11.0.23.19/Thread.java:1450)
    - waiting to re-lock in wait() <0x0000000413400000> (a java.lang.Thread)
    at java.lang.Thread.join(java.base@11.0.23.19/Thread.java:1525)
    at com.sun.javatest.regtest.agent.MainWrapper.main(MainWrapper.java:74)

"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=3.35ms elapsed=483.40s tid=0x0000003fac322800 nid=0x283013 waiting on condition  [0x0000003f602e4000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.ref.Reference.waitForReferencePendingList(java.base@11.0.23.19/Native Method)
    at java.lang.ref.Reference.processPendingReferences(java.base@11.0.23.19/Reference.java:241)
    at java.lang.ref.Reference$ReferenceHandler.run(java.base@11.0.23.19/Reference.java:213)

"Finalizer" #3 daemon prio=8 os_prio=0 cpu=1.98ms elapsed=483.40s tid=0x0000003fac32a800 nid=0x283014 in Object.wait()  [0x0000003f577fe000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(java.base@11.0.23.19/Native Method)
    - waiting on <0x0000000413400928> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(java.base@11.0.23.19/ReferenceQueue.java:155)
    - waiting to re-lock in wait() <0x0000000413400928> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(java.base@11.0.23.19/ReferenceQueue.java:176)
    at java.lang.ref.Finalizer$FinalizerThread.run(java.base@11.0.23.19/Finalizer.java:170)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=2.21ms elapsed=483.32s tid=0x0000003fac34a000 nid=0x283016 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #5 daemon prio=9 os_prio=0 cpu=0.71ms elapsed=483.31s tid=0x0000003fac34c000 nid=0x283017 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #6 daemon prio=9 os_prio=0 cpu=1357.12ms elapsed=483.31s tid=0x0000003fac34e800 nid=0x283018 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #18 daemon prio=9 os_prio=0 cpu=1198.47ms elapsed=483.31s tid=0x0000003fac350800 nid=0x283019 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Sweeper thread" #24 daemon prio=9 os_prio=0 cpu=0.68ms elapsed=483.31s tid=0x0000003fac352800 nid=0x28301a runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #25 daemon prio=8 os_prio=0 cpu=8.62ms elapsed=482.90s tid=0x0000003fac3fa800 nid=0x283035 in Object.wait()  [0x0000003f56bfe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(java.base@11.0.23.19/Native Method)
    - waiting on <0x0000000413402c70> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(java.base@11.0.23.19/ReferenceQueue.java:155)
    - waiting to re-lock in wait() <0x0000000413402c70> (a java.lang.ref.ReferenceQueue$Lock)
    at jdk.internal.ref.CleanerImpl.run(java.base@11.0.23.19/CleanerImpl.java:148)
    at java.lang.Thread.run(java.base@11.0.23.19/Thread.java:955)
    at jdk.internal.misc.InnocuousThread.run(java.base@11.0.23.19/InnocuousThread.java:161)

"MainThread" #27 prio=5 os_prio=0 cpu=472830.87ms elapsed=482.28s tid=0x0000003fac488800 nid=0x283046 runnable  [0x0000003f565fc000]
   java.lang.Thread.State: RUNNABLE
    at jdk.internal.vm.vector.VectorSupport.binaryOp(java.base@11.0.23.19/VectorSupport.java:243)
    at jdk.incubator.vector.IntVector.lanewiseTemplate(jdk.incubator.vector@11.0.23.19/IntVector.java:633)
    at jdk.incubator.vector.Int256Vector.lanewise(jdk.incubator.vector@11.0.23.19/Int256Vector.java:279)
    at jdk.incubator.vector.Int256Vector.lanewise(jdk.incubator.vector@11.0.23.19/Int256Vector.java:41)
    at jdk.incubator.vector.IntVector.lanewise(jdk.incubator.vector@11.0.23.19/IntVector.java:724)
    at jdk.incubator.vector.IntVector.add(jdk.incubator.vector@11.0.23.19/IntVector.java:1122)
    at jdk.incubator.vector.FloatVector.fromArray(jdk.incubator.vector@11.0.23.19/FloatVector.java:2673)
    at AddTest.workloadIndexMapped(AddTest.java:67)
    at AddTest.main(AddTest.java:84)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@11.0.23.19/Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@11.0.23.19/NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@11.0.23.19/DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(java.base@11.0.23.19/Method.java:566)
    at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
    at java.lang.Thread.run(java.base@11.0.23.19/Thread.java:955)

"Attach Listener" #28 daemon prio=9 os_prio=0 cpu=1.60ms elapsed=0.11s tid=0x0000003f30001000 nid=0x284efa waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

【版本信息】

[root@fedora-riscv bin]# uname -a ; cat /etc/os-release ; free -h ; lscpu | head -n 25 ; ./java -version ; ./java -Xinternalversion
Linux fedora-riscv 6.1.22 #2 SMP Thu May  4 19:24:40 CST 2023 riscv64 GNU/Linux
NAME="Fedora Linux"
VERSION="38 (Workstation Edition)"
ID=fedora
VERSION_ID=38
VERSION_CODENAME=""
PLATFORM_ID="platform:f38"
PRETTY_NAME="Fedora Linux 38 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:38"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f38/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=38
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=38
SUPPORT_END=2024-05-14
VARIANT="Workstation Edition"
VARIANT_ID=workstation
               total        used        free      shared  buff/cache   available
Mem:            62Gi       990Mi        54Gi       6.1Gi       7.3Gi        55Gi
Swap:          8.0Gi          0B       8.0Gi
Architecture:        riscv64
Byte Order:          Little Endian
CPU(s):              64
On-line CPU(s) list: 0-63
NUMA node(s):        4
NUMA node0 CPU(s):   0-7,16-23
NUMA node1 CPU(s):   8-15,24-31
NUMA node2 CPU(s):   32-39,48-55
NUMA node3 CPU(s):   40-47,56-63
openjdk version "11.0.23.19" 2024-04-16
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.23.19+7)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-11.0.22.19+7-ga (build 11.0.23.19+7, mixed mode)
OpenJDK 64-Bit Server VM (11.0.23.19+7) for linux-riscv64 JRE (11.0.23.19+7), built on Apr 26 2024 03:22:06 by "" with gcc 9.2.0
sendaoYan commented 4 months ago

dk/iincubator/vector/Vector128ConversionTests.java -timeoutFactor设置6.0,失败率30%,7.0和8.0都会成功

jdk/incubator/vector/VectorMaxConversionTests.java -timeoutFactor设置11.0,失败率50%,12.0才会成功

sendaoYan commented 4 months ago

https://code.alibaba-inc.com/os-quality/tone-matrix-compiler/codereview/16786952