-
Bug
-
Resolution: Fixed
-
P5
-
25
-
b16
-
riscv
-
linux
After 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:
```
$ 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)
```
```
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:
```
$ 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)
```
- relates to
-
JDK-8348384 RISC-V: Disable auto-enable Vector on buggy kernels
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/a81250c5
-
Review(master) openjdk/jdk/24182