[riscv-port-jdk17u:riscv-port] RFR: 8296448: RISC-V: Fix temp usages of heapbase register killed by MacroAssembler::en/decode_klass_not_null
Dingli Zhang
dzhang at openjdk.org
Sat Mar 11 10:03:48 UTC 2023
Please review this backport to riscv-port-jdk17u.
Backport of [JDK-8296448](https://bugs.openjdk.org/browse/JDK-8296448).
Compared to the original patch, 17u does not have the patches [JDK-8295457](https://bugs.openjdk.org/browse/JDK-8295457) and [JDK-8293290](https://bugs.openjdk.org/browse/JDK-8293290), so some parameters will be slightly different.
The same problem was reproduced using the same method as in the original issue:
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/stackValue.cpp:139
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/zhangdingli/riscv-port-jdk17u/src/hotspot/share/runtime/stackValue.cpp:139), pid=1963135, tid=1963872
# assert(oopDesc::is_oop_or_null(val, false)) failed: bad oop found
#
# JRE version: OpenJDK Runtime Environment (17.0.7) (fastdebug build 17.0.7-internal+0-adhoc.zhangdingli.riscv-port-jdk17u)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 17.0.7-internal+0-adhoc.zhangdingli.riscv-port-jdk17u, mixed mode, sharing, compressed class ptrs, g1 gc, linux-riscv64)
# Problematic frame:
# V [libjvm.so+0x12057b0] StackValue::create_stack_value(frame const*, RegisterMap const*, ScopeValue*)+0x9e2
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/zhangdingli/riscv-port-jdk17u/hs_err_pid1963135.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
Aborted
To reproduce using a cross-compiled build:
<java> -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -Xshare:dump -Xlog:cds* -version
<java> -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -Xshare:on -XX:-TieredCompilation \
-Xlog:cds* -Xlog:gc+metaspace=info -jar renaissance-gpl-0.14.1.jar -r 1 movie-lens
The problem was solved after this patch.
Testing:
- Tier1 passed without new failure on unmacthed (release).
-------------
Commit messages:
- 8296448: RISC-V: Fix temp usages of heapbase register killed by MacroAssembler::en/decode_klass_not_null
Changes: https://git.openjdk.org/riscv-port-jdk17u/pull/12/files
Webrev: https://webrevs.openjdk.org/?repo=riscv-port-jdk17u&pr=12&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8296448
Stats: 52 lines in 8 files changed: 7 ins; 6 del; 39 mod
Patch: https://git.openjdk.org/riscv-port-jdk17u/pull/12.diff
Fetch: git fetch https://git.openjdk.org/riscv-port-jdk17u pull/12/head:pull/12
PR: https://git.openjdk.org/riscv-port-jdk17u/pull/12
More information about the riscv-port-dev
mailing list