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

Feilong Jiang fjiang at openjdk.org
Mon Nov 28 11:39:53 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 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
- HiFive Unmatched board (sv39)

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

Commit messages:
 - Add detection of satp mode

Changes: https://git.openjdk.org/jdk/pull/11388/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11388&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8297697
  Stats: 43 lines in 3 files changed: 42 ins; 0 del; 1 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