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