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