[riscv-port] RFR: 8277968: riscv: Detect vector extension with vcsr [v2]

kuaiwei duke at openjdk.java.net
Tue Nov 30 11:30:23 UTC 2021


On Tue, 30 Nov 2021 08:04:52 GMT, kuaiwei <duke at openjdk.java.net> wrote:

>> UseRVV could cause crash on D1 board(RISCV-C906).
>> 
>> It seems that though the D1 board is equipped with RVV-0.7.1[1] . In our test, VLENB CSR can return value of 16 on D1 board. So JDK will assume it can support RVV extension and crash in vector instructions when  UseRVV is enabled.  
>> 
>> RVV-0.9 and above[2] introduce a new VCSR CSR register, it will raise SIGILL on D1 board. So we can check it to detect vext support.
>> 
>> 
>> [1] https://github.com/riscv/riscv-v-spec/blob/0a24d0f61b5cd3f1f9265e8c40ab211daa865ede/v-spec.adoc#vector-extension-programmers-model
>> [2] https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#vector-extension-programmers-model
>
> kuaiwei has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR.

> 

Thanks for your comment. My first thinking is to check /proc/cpuinfo . But it doesn't provide cpu model information. Below is /proc/cpuinfo from Fedora31 on D1:

[riscv at fedora-riscv ~]$ cat /proc/cpuinfo
processor       : 0
hart            : 0
isa             : rv64imafdcvu
mmu             : sv39

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

PR: https://git.openjdk.java.net/riscv-port/pull/18


More information about the riscv-port-dev mailing list