RFR: 8371869: RISC-V: too many warnings when build on BPI-F3 SBC

Hamlin Li mli at openjdk.org
Tue Nov 18 15:08:03 UTC 2025


On Sun, 16 Nov 2025 15:24:04 GMT, Fei Yang <fyang at openjdk.org> wrote:

> Hi, please consider this riscv-specific change.
> 
> I witnessed 400+ warning messages when doing a native build on BPI-F3 SBC running kernel 6.6.63:
> 
> `OpenJDK 64-Bit Server VM warning: Cannot enable UseZvfh, it's missing dependent extension(s) v (disabled), Zfh (enabled)`
> 
> The warning messages indicate that we won't auto-enable extensions like `Zvfh` due to lack of vector support on old kernels.
> I think these warning messages could be confusing to people. It might be more reasonable to just log these messages.
> This also unifies the way of logging prefering `log_info`. It doesn't seem necessary to me to use `log_debug` in this case.
> 
> After this change, the log on BPI-F3 SBC looks like:
> 
> $ java -Xlog:all -version
> 
> ......
> [0.011s][info][os         ] Linux kernels before 6.8.5 (current 6.6.63) have a known bug when using Vector and signals.
> [0.011s][info][os         ] Vector not enabled automatically via hwprobe, but can be turned on with -XX:+UseRVV.
> [0.011s][info][os,cpu     ] Enabled RV64 feature "a"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "c"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "d"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "f"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "i"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "m"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "Zba"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "Zbb"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "Zbs"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "Zfh"
> [0.011s][info][os,cpu     ] Enabled RV64 feature "Zfhmin"
> [0.011s][info][os,cpu     ] Disabled RV64 feature "Zvfh" (missing dependent extension(s): v (disabled), Zfh (enabled))
> [0.011s][info][os,cpu     ] Enabled RV64 feature "marchid" (-9223372035378380799)
> [0.011s][info][os,cpu     ] Enabled RV64 feature "mimpid" (1152921505839391232)
> [0.011s][info][os,cpu     ] Enabled RV64 feature "mvendorid" (1808)
> [0.011s][info][os,cpu     ] Enabled RV64 feature "satp_mode" (39)
> [0.011s][info][os,cpu     ] Enabled RV64 feature "unaligned_scalar" (3)
> [0.011s][info][os,cpu     ] Enabled RV64 feature "zicboz_block_size" (64)
> [0.011s][info][os,cpu     ] Zifencei not found, required by Linux, enabling.
> [0.012s][info][os,cpu     ] CPU: total 8 (initial active 8) spacemit,x60 rv64 rva rvc rvd rvf rvi rvm zba zbb zbs zfh zfhmin
> ......

Thanks for fixing this.
Have some minor comments.

src/hotspot/os_cpu/linux_riscv/vm_version_linux_riscv.cpp line 110:

> 108: }
> 109: 
> 110: void VM_Version::RVExtFeatureValue::log_disabled(const char* reason) {

Seems we don't need to distinguish whether `reason` is nullptr or not? as `log_disabled` is called only when it's disabled because of depenency check failure.

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

PR Review: https://git.openjdk.org/jdk/pull/28340#pullrequestreview-3478282171
PR Review Comment: https://git.openjdk.org/jdk/pull/28340#discussion_r2538551213


More information about the hotspot-dev mailing list