RFR: 8297697: RISC-V: Add support for SATP mode detection [v2]

Feilong Jiang fjiang at openjdk.org
Tue Nov 29 01:41:48 UTC 2022


> RISC-V gets sv57-based virtual memory support since Linux 5.18 [1]. There are some reports of the OpenJDK RISC-V port crashing on Linux 5.18+ with QEMU-system 7.10+ when sv57 was enabled [2][3] as currently RISC-V port only supports up to sv48.
> As discussed in [3], given the fact that there are no existing boards or hardware even support anything more than sv48,
> we decide to add detection for SATP (Supervisor Address Translation and Protection) mode at JVM startup time if possible and explicitly issue a warning and stop early when sv57 is enabled.
> 
> When sv57 is enabled, the output of java -version would be:
> 
> 
> root at qemuriscv64:~# jdk/bin/java -version
> Error occurred during initialization of VM
> Unsupported satp mode: 10
> 
> 
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aa5b537b0ecc16992577b013f11112d54c7ce869
> [2] https://mail.openjdk.org/pipermail/riscv-port-dev/2022-September/000639.html
> [3] https://mail.openjdk.org/pipermail/riscv-port-dev/2022-November/000681.html
> 
> Testing:
> 
> - QEMU-system with sv48/sv57-enabled Linux image `-version` test
> - HiFive Unmatched board (sv39) `-version` test

Feilong Jiang has updated the pull request incrementally with one additional commit since the last revision:

  print vm mode string instead of vm mode code

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/11388/files
  - new: https://git.openjdk.org/jdk/pull/11388/files/c41738c8..abfa5f97

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=11388&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11388&range=00-01

  Stats: 4 lines in 1 file changed: 0 ins; 1 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/11388.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11388/head:pull/11388

PR: https://git.openjdk.org/jdk/pull/11388


More information about the hotspot-dev mailing list