RFR: 8352673: RISC-V: Vector can't be turned on with -XX:+UseRVV
Dingli Zhang
dzhang at openjdk.org
Mon Mar 24 07:43:09 UTC 2025
Hi all,
After [JDK-8348384](https://bugs.openjdk.org/browse/JDK-8348384), Vector can't be turned on with -XX:+UseRVV when Linux kernels before 6.8.5, which does not match the printed log:
log.info("Linux kernels before 6.8.5 (current %ld.%ld.%ld) have a known bug when using Vector and signals.", major, minor, patch);
log.info("Vector not enabled automatically via hwprobe, but can be turned on with -XX:+UseRVV.");
Testing on QEMU before this PR:
$ uname -a
Linux ubuntu 6.8.0-52-generic #53.1-Ubuntu SMP PREEMPT_DYNAMIC Sun Jan 26 04:38:25 UTC 2025 riscv64 riscv64 riscv64 GNU/Linux
$ ./java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -version | grep UseRVV
bool UseRVV = false {ARCH diagnostic} {default}
openjdk version "25-internal" 2025-09-16
OpenJDK Runtime Environment (build 25-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 25-internal-adhoc.zhangdingli.jdk, mixed mode)
$ ./java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -XX:+UseRVV -version | grep UseRVV
OpenJDK 64-Bit Server VM warning: RVV is not supported on this CPU
bool UseRVV = false {ARCH diagnostic} {command line}
openjdk version "25-internal" 2025-09-16
OpenJDK Runtime Environment (build 25-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 25-internal-adhoc.zhangdingli.jdk, mixed mode)
$ ./java -XX:+UnlockDiagnosticVMOptions -XX:+UseRVV -Xlog:os=info -version
[0.024s][info][os] Use of CLOCK_MONOTONIC is supported
[0.026s][info][os] Use of pthread_condattr_setclock is supported
[0.026s][info][os] Relative timed-wait using pthread_cond_timedwait is associated with CLOCK_MONOTONIC
[0.027s][info][os] HotSpot is running with glibc 2.39, NPTL 2.39
[0.027s][info][os] Glibc stack size guard page adjustment is not needed
[0.029s][info][os] SafePoint Polling address, bad (protected) page:0x00007ff8a7349000, good (unprotected) page:0x00007ff8a734a000
[0.044s][info][os] attempting shared library load of /home/ubuntu/jdk-rvv-before/lib/libjava.so
[0.047s][info][os] shared library load of /home/ubuntu/jdk-rvv-before/lib/libjava.so was successful
[0.052s][info][os] Linux kernels before 6.8.5 (current 6.8.0) have a known bug when using Vector and signals.
[0.052s][info][os] Vector not enabled automatically via hwprobe, but can be turned on with -XX:+UseRVV.
OpenJDK 64-Bit Server VM warning: RVV is not supported on this CPU
[0.748s][info][os] Initialized VM with process ID 33279
openjdk version "25-internal" 2025-09-16
OpenJDK Runtime Environment (build 25-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 25-internal-adhoc.zhangdingli.jdk, mixed mode)
Testing on QEMU after this PR:
$ uname -a
Linux ubuntu 6.8.0-52-generic #53.1-Ubuntu SMP PREEMPT_DYNAMIC Sun Jan 26 04:38:25 UTC 2025 riscv64 riscv64 riscv64 GNU/Linux
$ ./java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -version | grep UseRVV
bool UseRVV = false {ARCH diagnostic} {default}
openjdk version "25-internal" 2025-09-16
OpenJDK Runtime Environment (build 25-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 25-internal-adhoc.zhangdingli.jdk, mixed mode)
$ ./java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -XX:+UseRVV -version | grep UseRVV
bool UseRVV = true {ARCH diagnostic} {command line}
openjdk version "25-internal" 2025-09-16
OpenJDK Runtime Environment (build 25-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 25-internal-adhoc.zhangdingli.jdk, mixed mode)
In addition, manual tested 6.11 as expected.
-------------
Commit messages:
- 8352673: RISC-V: Vector can't be turned on with -XX:+UseRVV
Changes: https://git.openjdk.org/jdk/pull/24182/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24182&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8352673
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/24182.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/24182/head:pull/24182
PR: https://git.openjdk.org/jdk/pull/24182
More information about the hotspot-runtime-dev
mailing list