RFR: 8368722: Vector API intrinsics enabled wrongly on platforms without support for misaligned vector access [v3]

Dingli Zhang dzhang at openjdk.org
Tue Oct 21 13:45:10 UTC 2025


On Thu, 9 Oct 2025 18:51:05 GMT, Hamlin Li <mli at openjdk.org> wrote:

>> src/hotspot/cpu/riscv/vm_version_riscv.cpp line 184:
>> 
>>> 182:     FLAG_SET_DEFAULT(AlignVector,
>>> 183:       unaligned_vector.value() != MISALIGNED_VECTOR_FAST);
>>> 184:   } else if (AlignVector == false) {
>> 
>> Seems these code is not necessary, as when `unaligned_vector` is not retrieved from kernel for any reason, user might want to pass `-XX:-AlignVector`.
>> Your change disable this behaviour.
>
> It seems my advice is the opposite of @iwanowww's, let's see what others think.

Hi @Hamlin-Li @iwanowww
I've added detection logic to cover older kernels without good hwprobe support.
Could you help review it again? Thanks!

Below are some printed logs.
### K1 (kernel 6.6.63)

bianbu at k1:~$ ./jdk-10/bin/java -XX:+UnlockDiagnosticVMOptions -XX:+UseRVV -XX:-AlignVector -version
OpenJDK 64-Bit Server VM warning: Cannot enable UseZvfh, it's missing dependent extension(s) v (disabled), Zfh (enabled)
OpenJDK 64-Bit Server VM warning: Misaligned vector accesses are not supported on this CPU
openjdk version "26-internal" 2026-03-17
OpenJDK Runtime Environment (build 26-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 26-internal-adhoc.zhangdingli.jdk, mixed mode)
bianbu at k1:~$ 
bianbu at k1:~$ ./jdk-10/bin/java -XX:+UnlockDiagnosticVMOptions -XX:+UseRVV -XX:+AlignVector -version
OpenJDK 64-Bit Server VM warning: Cannot enable UseZvfh, it's missing dependent extension(s) v (disabled), Zfh (enabled)
openjdk version "26-internal" 2026-03-17
OpenJDK Runtime Environment (build 26-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 26-internal-adhoc.zhangdingli.jdk, mixed mode)


### K1 (kernel 6.15.2)

┌─[zhangdingli at bredos]─(~)
└─[21:20]-(^_^)-[$] ./jdk-10/bin/java -XX:-AlignVector -version
OpenJDK 64-Bit Server VM warning: Misaligned vector accesses are not supported on this CPU
openjdk version "26-internal" 2026-03-17
OpenJDK Runtime Environment (build 26-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 26-internal-adhoc.zhangdingli.jdk, mixed mode)

┌─[zhangdingli at bredos]─(~)
└─[21:22]-(^_^)-[$] ./jdk-10/bin/java -XX:+AlignVector -version
openjdk version "26-internal" 2026-03-17
OpenJDK Runtime Environment (build 26-internal-adhoc.zhangdingli.jdk)
OpenJDK 64-Bit Server VM (build 26-internal-adhoc.zhangdingli.jdk, mixed mode)

I also conducted tests on QEMU w/ and w/o `RISCV_HWPROBE_KEY_MISALIGNED_VECTOR_PERF`, and the results were as expected.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27506#discussion_r2448374184


More information about the hotspot-dev mailing list